资源描述
公交车语音报站系统 电子信息工程专业毕业论文 石家庄铁道大学四方学院毕业设计公交车语音报站系统的设计The Design of the Bus Stop Announcement System 2012 届 电气工程 系 专 业 电子信息工程 学 号 20086288 学生姓名 指导教师 完成日期2012年 5 月 15 日毕业设计成绩单学生姓名范亚静学号20086288班级方0809-1专业电子信息工程毕业设计题目公交车语音报站系统的设计指导教师姓名高迎霞指导教师职称讲师评 定 成 绩指导教师得分评阅人得分答辩小组组长得分成绩: 院长主任 签字: 年 月 日毕业设计任务书题 目公交车语音报站系统的设计学生姓名范亚静学号20086288班级方0809-1专业电子信息工程承担指导任务单位电气工程系导师姓名 高迎霞导师职称讲师一、主要内容 实现单片机与语音控制芯片系统互联,通过按键,系统可播报相应的车站信息或者公益提醒。二、基本要求 1、使用STC89系列单片机配合数字语音芯片、液晶屏开发; 2、ISD4004-08M或者相同性能的数字语音模块; 3、使用Keil C编程。实现相关逻辑控制; 4、电路原理图设计,protel印刷电路图设计; 5、提出系统设计框图,提出相应的解决方案; 6、需单片机和芯片,开发电路板; 7、分为软件和硬件两个部分的开发。三、主要技术指标 1、可实现语音的录放控制; 2、电路原理图; 3、使用说明书撰写; 4、论文正文不少于1万字,查阅文献资料不少于10篇,其中外文文献2篇以上,翻译与课题有关的外文资料不少于3000汉字。四、应收集的资料及参考文献 C语言开发; 关于STC89系列相关单片机开发文档。五、进度计划 第 1 周?第 2周收集资料,完成开题报告 第 3 周?第 4周需求分析,概要设计 第 5 周?第 7周详细设计 第 8 周 中期检查 第 9 周?第12周写论文 第13周?第14周论文审核定稿 第15周?第16周答辩教研室主任签字时 间 年 月 日毕业设计开题报告题目公交车语音报站系统的设计学生姓名范亚静学号20086288班级方0809-1专业电子信息工程一、研究背景 随着国民经济的快速发展,我国城市人口高度集中并大幅增长,私家车拥有量也急剧上升,交通需求不断扩大导致城市道路交通拥挤,乘坐公交车出行是解决我国城市交通发展问题的有效途径,随着近年来城市公交事业迅速发展,以前靠售票员报站的方式已经不能满足实际需要,在到站后能够及时报站的公交车语音报站系统不但能解决这个实际问题也有助于提高公交服务质量。二、国内外研究现状 目前,公交车自动报站主要有以下三种方式:1、通过全球定位系统(GPS)的用户终端接收工作卫星的导航信息,从而解算出车辆的经纬度信息,进而计算出实时坐标,将其与站点坐标相比较,当车辆驶入站点一定距离范围内时,不用人工干预,系统自动报站;2、利用无线射频识别(Radio Frequency Identification)技术,在每一个公交站台设置一个具有唯一ID的射频发射器,采用间歇工作方式发射信号,当公交车即将到达车站时,车载系统接收到站信号并解码出站台的ID号,由单片机控制自动播放对应站台编号的报站语音;3、对车轮轴的转角脉冲进行计数,将计数值和预置值对比,即可确定报站时刻,达到准确报站的目的。 语音报站器的种类也大致分为四类: 1、一般语音报站器 原理是到站前司乘按动进站按钮开始报站,出站时按下出站按钮开始报下站站名,通过序号记录各个站点。优点是成本低,缺点是需要司机时刻关注进站状态分餐司机注意力存在驾车安全隐患问题。 2、门控语音报站 原理是将开门关门时转换信号和语音报站器连接,开关门时自动报站。优点是成本较低,缺点是不能提前报站,报站容易出现错误混乱。 3、无限信标语音报站器 原理是在每个公交车站点设置发射信标点,公交车临近到站点50m 左右会收到信标信号开始报站,出站50m后信号消失预报下一站点。优点是报站准确,缺点是需要为每个站点建立无限发射信标,费用较高公交车数量多时存在频率干扰问题。 4、GPS自动语音报站器 原理是在公交车上安装GPS自动语音报站器自动识别站点并报告站点消息,优点是报站精确无需人工操作,缺点是成本昂贵难以普及。三、研究方案 1、使用STC89系列单片机配合数字语音芯片、液晶屏开发; 2、ISD4004-08M或者相同性能的数字语音模块; 3、使用Keil C编程。实现相关逻辑控制; 4、电路原理图设计,protel印刷电路图设计; 5、提出系统设计框图,提出相应的解决方案; 6、需单片机和芯片,开发电路板; 7、分为软件和硬件两个部分的开发。四、预期结果 当系统进行语音录制时,语音信号通过语音录入电路送给语音合成电路中的语音芯片,由语音芯片进行数据处理,并将生成的数字语音信息存储到语音存储芯片中,从而建立语音库。 当系统进行语音再生时,单片机控制语音合成电路中的语音芯片来读取其外接的存储器内部的语音信息,并合成语音信号,再通过语音输出电路,进行语音报站和提示。同时,单片机通过程序读取文字信息,送入液晶显示模组来进行站数和站名的显示。当汽车到达某站时,司机或乘务人员通过键盘来控制系统进行工作。五、主要技术指标 1、可实现语音的录放控制; 2、电路原理图; 3、使用说明书撰写; 4、论文正文不少于1万字,查阅文献资料不少于10篇,其中外文文献2篇以上,翻译与课题有关的外文资料不少于3000汉字。指导教师签字时 间 年 月 日摘 要 随着国民经济的快速发展,我国城市人口高度集中并大幅增长, 交通需求不断扩大导致城市道路交通拥挤,乘坐公交车出行是解决我国城市交通发展问题和实践低碳环保绿色出行的有效途径,随着近年来城市公交事业迅速发展,之前靠售票员报站的方式已经不能满足实际需要,在到站后能够及时报站的公交车语音报站系统不但能解决这个实际问题也有助于提高公交服务质量。 本设计介绍了基于单片机的公交车语音报站系统的设计,对系统软件设计和硬件实现进行了详细的描述,主要内容是用STC89C52单片机为核心控制元件,ISD4004语音芯片为录音模块,以液晶屏为显示模块,以独立按键K1、K2为输入设备,扬声器为语音输出设备,设计一个带语音报站和液晶显示功能的公交车报站系统。先将语音内容通过录音键录入语音芯片中,当按下放音键时,语音模块进行放音同时通过液晶屏显示对应的文字信息。本系统运行稳定,硬件电路简单,软件功能完善,控制系统可靠,具有一定的实用和参考价值。 关键词: 单片机 语音提示 液晶屏 公交报站Abstract With the take-off of the national economy, Chinas urban population is remarkably exploding. The increasing demand for transports gives rise to traffic congestion in urban areas. Therefore, public bus system is not only an efficient way to solve the problem of traffic congestion but a way to put the “Low-Carbon Transportation” into of date. The recent development of public transportation requires a phonetic system which can automatically announce bus stations. The advanced system is conducive to solving many problems and improving service quality in transportation. This paper introduces the automatic stop announcer based on STC89C52 and aims to explicitly describe the software and hardware applied in the system. The main features of the system are that STC89C52 is used for core controlling components, ISD4004 pronunciation chip for recording, LCD12864 screen for video displays, independent key K1 and K2 for input device, loudspeaker for output device. This is designed for a stop announcement and display system for buses. The voice message is recorded in the pronunciation chip in advance. When the “Play” key is pressed, the voice of station announcement simultaneously appears with the information on the screen. This system enjoys the advantage of stability, simplicity and reliability. The full-featured system is an ideal model and is easily put into use. Key words: Microcontroller Voice prompt LCD screen Bus stop announcer目 录第1章 绪论11.1 课题研究的背景11.2 课题研究的意义11.3 课题研究的主要内容1第2章 系统总体设计方案32.1 功能要求32.2 设计思路32.3 方案选择32.3.1 显示模块选择方案32.3.2 按键选择方案42.3.3 芯片选择方案42.4 总体设计框图5第3章 系统硬件设计63.1 概述63.2 主控模块63.2.1 STC89C52芯片的简介63.2.2 主控模块电路原理图83.3 语音芯片模块93.3.1 ISD4004芯片简介93.3.2 LM386芯片简介133.3.3 语音芯片模块电路原理图153.4 LCD液晶显示模块153.4.1 组成结构163.4.2 引脚功能163.5 按键控制模块183.5.1 按键控制模块电路原理图18第4章 系统软件设计194.1 录音模块设计204.2 放音模块设计204.3 显示模块设计214.4 键盘扫描模块设计22第5章 系统分析与调试24第6章 结论与展望27参考文献28致谢29附录30附录A 外文资料30附录B 硬件原理图45附录C 程序清单46第1章 绪 论1.1 课题研究的背景 随着社会经济的发展,城市化进程越来越快,城市人口急剧增加从而使城市交通压力不断增大,在倡导绿色低碳环保的今天,公交车作为城市公共交通的重要方式,是城市居民出行的重要工具。因为公交车具有方便、快捷、经济实惠等优点。公共汽车为外出的人们提供了方便快捷的服务,而公共汽车的报站直接影响到服务的质量。1.2 课题研究的意义 传统由乘务人员人工报站的方式工作强度大且效果差,并需要大量的人力资源。而通过单片机和语音芯片的结合,使得公交车到站信息及提示信息以语音和显示的方式告知乘客,为市民提供更人性化,完善的服务,并且节省了大量的人力资源。 公交车语音报站系统还可以结合每条线路的特点和实际情况自主设定不同的报站方式和站点设置,在为乘客提供方便的同时也便于公交车的运营和司乘人员的操作。1.3 课题研究的主要内容 本论文主要是对C语言和单片机的一些基本知识、概念的应用学习和研究,以及STC89C52芯片模块、ISD4004语音模块和LCD12864液晶屏的开发设计,该设计的目的是设计一实现单片机与语音控制芯片系统互联,通过按键,系统可播报相应的车站信息或者公益提醒,也可以实现录音和放音功能。本设计的主要工作有以下几个方面: 1、整体方案的设计 方案的选择要符合芯片功能的要求,既要保证操作简单适合公交司机操作,又要体现出本产品的特点,本文研究设计的带录音功能的公交车语音报站系统是采用STC89C52单片机和ISD4004语音芯片,用来实现公交车站信息的播放以及录音和放音功能,用LCD12864带中文字库的液晶显示屏实现公交站名的显示。 2、程序流程图及软件设计 一个程序要想实现其功能,不能没有次序而盲目下手,必须对其有一个全面的了解后画出流程框图,然后逐个模块的实现其功能,最终把模块之间合理的连接起来,构成完整程序。本设计的软件设计主要包括系统的初始化设计、延时子程序的设计、录音子程序的设计、放音子程序的设计、液晶屏的显示设计、中断程序设计、以及主程序设计等。整个系统程序采用模块化结构设计程序相对比较优化易修改和调试,系统软件的开发是用C语言设计的。 3、系统原理图及硬件调试 本设计在进行硬件原理分析后,需要连接实物进行实际操作,检验自己的设计是否可以行得通。需要在protel99SE环境下画出硬件原理图并进行电气测试,检测无异议后进行硬件系统的调试,为了保证系统的可靠性分析查找,硬件的调试分模块分别进行了模拟。第2章 系统总体设计方案2.1 功能要求 1、通过STC89C52芯片实现对按键的读取并将所对应的信息送至扬声器同时将到站信息通过液晶屏显示; 2、语音芯片ISD4004完成语音模块,实现公交站信息的录入及到站时的放音功能; 3、采用两个独立按键,作为录音和放音的控制键; 4、采用LCD12864液晶屏,显示相对应的站的信息;2.2 设计思路 电路总体上分为主芯片控制部分、语音芯片和液晶显示部分。以STC89C52单片机最小系统作为核心控制电路,控制独立按键对录音放音的选择,具体显示内容及方式由软件来完成。语音部分由ISD4004芯片来实现,它是一个多功能的语音芯片,可以多次重复录放,本设计正是运用此特点,完成录音和放音功能的。具体步骤是:先录入两站的信息,存储到芯片内部,建立语音库,并且具体锁定到对应的地址中,通过按键的次序播放不同的信息。2.3 方案选择2.3.1 显示模块选择方案 方案一:用LCD1602液晶显示,但是由于1602主要显示英文和字符,不适合用于带汉字的公交车报站。 方案二:采用LCD12864不带字库芯片,但需要用取模软件取模,PROTEUS可以仿真HT1621(1602)KS010812864 T6963C24064,等系列的模块,需先学会仿真软件 方案三:采用带字库的LCD12864芯片,可直接调用字库,使用比较方便。 鉴于上述对比与分析,本设计采用方案三。2.3.2 按键选择方案 方案一:采用STC89C52的独立键盘,其独立键盘有4个按键,按键数量符合录音和放音两个按键的需要。 方案二:采用STC89C52的矩阵键盘,其矩阵键盘具有16个按键,数量太多,不如独立按键方便。 故采用K1和K2两个独立按键,K1为放音键,按第一下时,对应播放第一站信息,同时调用显示子程序,在液晶屏上显示对应信息。按第二下时,对应播放第二站信息,并在液晶屏上显示信息。K2为录音键,按下时,录制第一段语音信息并存放在对应的地址中,按下第二下时,录制第二段语音信息并存放于第二段语音对应的地址中,以方便调用。2.3.3 芯片选择方案 方案一:AT89C51是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器CPU和Flash存储单元,功能强大。其片内的4K程序存储器是FLASH工艺的,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护我们的劳动成果。再者,AT89C51目前的售价比8031低,市场供应也很充足。AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于4K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需l0ms。AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。PO口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作1。 方案二:STC89C52单片机的指令系统和AT89C51系列的完全兼容 1、AT89C51不带ISP下载,要用下载器才行,STC89C52可以用你的USB转串口下载,下载软件可以到STC厂家网上去下。 2、STC单片机执行指令的速度很快,大约是AT的3-30倍,所以在AT上好使的程序在STC上不一定好用,最典型的例子就是那些对时序有严格要求的模块,比如IIC,DS18B20、DS1302等的时序。再者,由于执行速度的加快,非定时器控制的精确延时也会受到一定影响,用STC时注意得加长延时,大约是AT的10?30倍。 3、片机对工作环境的要求比较低,电压低于5伏时仍然正常工作,甚至3伏到4伏之间都还可以工作,然而这样的环境下AT肯定不行了,所以当一个系统用STC单片机好用,但用AT的单片机不工作时,直接查最小系统,看单片机的供电是否正常。 比较这两种方案,由于在学校期间学过数字电路、单片机原理、C语言程序设计,综合考虑单片机的各部分资源和作为学生能够获得的资源,经过对比此次设计要求,我选择用STC系列芯片完成。而且学校也提供了相应的硬件操作平台,实际操作起来比较方便,故STC为更合理的选择。2.4 总体设计框图 按照系统功能的具体要求,在保证实现其功能的然础上,尽可能降低系统成本。总体设计方案围绕上述思想,初步确定系统的方案如图2-1所示: 图2-1 系统初步方案 从图中可以看出,系统有微处理器模块、液晶屏显示模块、独立按键模块和语音模块组成。在方案设计中,遵循简洁至上的原则,因此所有的外围模块采用串行方式与微处理器模块接口。该设计以STC89C52系列单片机为控制核心,实现公交车语音报站基本功能。在设计系统时,为了更好地采用模块化设计法,分步的设计各个单元功能模块,系统的硬件部分可以分为键盘设定、单片机控制、LCD显示和语音控制四大部分。第3章 系统硬件设计3.1 概述 此次的毕业设计主要由4个大的模块构成,分别是主控模块、语音芯片模块、LCD液晶显示模块、键盘控制模块,其中主控模块是此次毕业设计的核心模块,主要是指STC89C52芯片,它控制整个系统的运行,利用其各个口分别控制其他模块,使其他模块能够成为一个整体,实现功能的需要;语音模块主要指ISD4004芯片和LM386芯片,用ISD4004来实现录音功能,LM386实现功率放大;而LCD液晶显示模块是整个系统的辅助模块,用来显示到站信息;按键控制模块则是用按键来控制实现的是哪个功能,对应录音、放音。3.2 主控模块3.2.1 STC89C52芯片的简介 功能特性:STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案,如图3-1所示。STC89C52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O口线,看门狗定时器,2 个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz?、三级加密程序存储器?、32个可编程I/O口线?、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符1。 如图3-1:图3-1 STC89C52芯片 管脚说明: P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为STC89C52的一些特殊功能口,如表3-1所示:表3-1 P3口的第二功能接口第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。 EA/VPP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反相振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反相振荡器的输出。 XTAL1和XTAL2分别为反相放大器的输入和输出。该反相放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2.2 主控模块电路原理图 单片机主控模块由STC89C52芯片和晶振复位组成。复位和晶振电路通过接口与单片机个引脚相连,复位电路接到RST口,晶振接到XTAL1口和XTAL2口上。如图3-2,3-3所示:图3-2 STC89C52芯片 图3-3 晶振复位3.3 语音芯片模块3.3.1 ISD4004芯片简介 ISD4004语音系列芯片是美国ISD公司推出的产品,与普通的录音/重放芯片相比,ISD4004具有如下特点:首先是记录声音没有段长度限制,并且声音记录不需要A/D转换和压缩。其次,快速闪存作为存储介质,无需电源可保存数据长达100年,重复记录10000次以上。此外,ISD4004具有记录时间长(可达16分钟,本文采用的为8分钟的ISD4004语音芯片)的优点。最后,ISD4004开发应用具有所需外围电路简单的优点,这一点从本文介绍的其在实际应用中可以体会到10。ISD4004芯片如图3-4所示:图3-4 ISD4004芯片 1、引脚介绍: 电源(VCCA, VCCD):为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并A分别引到外封装的不同管脚上模拟和数字电源端最好分别走线尽可能在靠近供电端处相连,而去藕电容应尽量靠近器件。 地线(VSSA, VSSD):芯片内部的模拟和数字电路也使用不同的地线。 同相模拟输入(ANA IN+):这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由藕合电容输入,最大幅度为峰峰值32mV,藕合电容和本端的3K电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV,为ISD33000系列相同。 反相模拟输入(ANA IN-):差分驱动时,这是录音信号的反相输入端。信号通过藕合电容输入,最大幅度为峰峰值16mV 音频输出(AUD OUT):提供音频输出,可驱动5K的负载。 片选(SS):此端为低,即向该ISD4004芯片发送指令,两条指令之问为高电平。 串行输入(MOSI):此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。 串行输出(MISO):ISD的串行输出端。ISD未选中时,本端呈高阻态。 串行时钟(SCLK):ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD在下降沿移出ISD。 中断(INT):本端为漏极开路输出。ISD在任何操作包括快进中检测到EOM或OVF时,本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取。OVF标志一指示ISD的录、放操作已到达存储器的未尾。EOM标志一只在放音中检测到内部的EOM标志时此状态位才置1。 行地址时钟(RAC): 漏极开路输出。每个RAC周期表示ISD存储器的操作进行了一行(ISD4004系列中的存贮器共2400行)。该信号175ms保持高电平,低电平为25ms。快进模式下,RAC的218.75 s是高电平,31.25s为低电平。该端可用于存储管理技术。 外部时钟(XCLK):本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在+1%内。商业级芯片在整个温度和电压范围内,频率变化在+2.25%内。工业级芯片在整个温度和电压范围内,频率变化在-6/+4%内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如前表所列)。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接地时钟时此端必须接地。 自动静噪(AMCAP):当录音信号电平下降到内部设定的某一阑值以下时,自动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。通常本端对地接1mF的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阑值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1mF的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA则禁止自动静噪。 2、操作规则 (1)串行外设接口 ISD4000系列语音芯片工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,设定微控制器的SPI移位寄存器在SCLK的下降沿将数据送至MISO引脚。以ISD4004为例,协议的具体内容如下5: 所有串行数据传输开始于SS下降沿。 SS在传输期间必须保持低电平,在两条指令之间则保持高电平。 数据在时钟上升沿移入,在下降沿移出。 SS变低,输入指令和地址后,ISD4004才能开始录/放操作。 指令格式是八位控制码加(十六位地址码)。 ISD4004的任何操作如果遇到EOM或OVF,则产生一个中断,该中断状态在下一个SPI周期开始时被清除。 使用“读”指令使中断状态位移出ISD4004的MISO引脚时,控制及地址数据也应同步从MOSI端移入。因此,要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个SPI周期里,同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。 所有操作在运行位(RUN)置1时开始,置0时结束。 所有指令都在SS端上升沿开始执行。 (2)信息快进 用户不必知道信息的确切地址就能快进跳过一条信息。信息快进只用于放音模式,放音速度是正常的1600倍,遇到EOM后停止,然后内部地址计数器1,指向下一条信息的开始处。 (3)上电顺序 器件延时TPUD(8KHz采样时,约为25ms)后才能开始操作。因此,用户发完上电指令后,必须等待TPUD,才能发出下一条操作指令。 例如,从00处放音,应遵循如下时序: 发POWER UP命令; 等待TPUD(上电延时); 发地址值为00的SET PLAY命令; 发PLAY命令。 器件会从00地址开始放音,当出现EOM时,立即中断,停止放音。 如果从00处录音,则按以下时序: 发POWER UP指令; 等待TPUD(上电延时); 发POWER UP命令; 等待2倍TPUD; 发地址值为00的 SET REC命令; 发REC命令。 器件便从00地址开始录音,一直到出现OVF(存储器末尾)时,录音停止。 (4)指令码 如表3-2所示:表3-2 ISD4004的指令码指令控制码操作POWERUP00100xxx上电:等待TPUD后可以工作SETPLAY11100xxxA15-A0从指定地址开始放音PLAY11110xxx从当前地址开始放音SETREC10100xxxA15-A0从指定地址开始录音REC10110xxx从当前地址开始录音SETMC11101xxxA15-A0从当前地址开始快进MC11111xxx执行快进,直到EOMSTOP0x110xxx停止当前操作STOPWRDN0x01xxxx停止当前操作并掉电RINT0x110xxx读状态OVF和EOM (5)SPI端口的控制位 如图3-5:图3-5 ISD4004的SPI控制位 (6)SPI控制寄存器 SPI控制寄存器控制器件的每个功能,如录音、放音、信息检索(快进)、上电/掉电、开始/停止操作、忽略地址指针等,如表3-3: 表3-3 ISD4004的SPI控制寄存器控制位值功能控制位值功能RUN10允许/禁止操作开始停止PU10电源控制上电掉电P/10录/放模式放音录音IAB10是否使用指令地址忽略输入地址寄存器内容使用输入地址寄存器内容MC10快进模式允许禁止P15-P0行指针寄存器输出A15-A0输入地址寄存器3.3.2 LM386芯片简介 LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地为参考同时输出端被自动偏置到电源电压的一半,在6 V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中6。LM386芯片如图3-6所示: 特性(Features): 1、静态功耗低,约为4mA,可用于电池供电; 2、工作电压范围宽,4-12 V or 5-18 V; 3、外围元件少; 4、电压增益可调,20-200; 5、低失真度图3-6 LM386芯片 引脚说明: 1和8为增益引脚,2为负端输入,3为正端输入,VSS为接地,5为输出,Vdd为电源,7为旁路。 LM386内部电路原理图与通用型集成运放相类似,它是一个三级放大电路. 第一级为差分放大电路, T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。 第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。 第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。 引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电,故为OTL电路。输出端(引脚5)应外接输出电容后再接负载。 电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益7。3.3.3 语音芯片模块电路原理图 STC89C52和ISD4004之间的连接较少,其中P3.7接ISD4004的片选引脚/SS,控制ISD4004的选通与否。P3.6接ISD4004的串行输入引脚MOSI,从该引脚读入放音的地址。P3.4接ISD4004的串行时钟引脚SCLK,对于ISD4004芯片所需要的连接还有音频信号输出引脚AUDOUT,该引脚通过一个滤波电容与扬声器连接,AMCAP为自动静音端,使用时通过一个电容接地。此外由于ISD4004的工作电压为3伏,而单片机所需供电电压为5伏,因此需要采用变压电路得到3伏电压供ISD4004使用。 由于单片机驱动能力不够,在处理音符信号时,需加功率放大装置,因LM386芯片具有低功耗、高增益的特点,这合适单片机低功耗输出,所以加装LM386音频信号放大器对信号进行放大。 语音芯片模块电路原理图如图3-7所示:图3-7 语音芯片模块电路原理图3.4 LCD液晶显示模块 液晶显示器LCD(Liquid Crystal Display)广泛应用于微型计算机系统中,与LED相比,具有功率低,抗干扰能力强,体积小,价格低廉等优点。另外,LCD在大小和形状上更加灵活,接口简单,不但可以显示数字、字符,而且可以显示文字和图形。 字符和数字的简单显示,不能满足图形曲线和文字显示的要求。点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及文字,并且可以实现屏幕上下左右滚动、动画、分区开窗口、反转、闪烁等功能,用途十分广泛。现在,随着液晶技术的突破,液晶显示器的质量有了很大的提高,品种也在不断推陈出新,不但有各种规模的黑白液晶显示器,还有绚丽多彩的彩色液晶显示器。在点阵式液晶显示器中,把控制驱动电路与液晶点阵集成在一起,组成一个显示模组,可与八位微处理器接口直接连接,不但使用方便,而且价格也比较便宜。 TH12864液晶显示模组是12864点阵的文字图形型液晶显示模组,内置国标GB2312码简体中文字库(1616点阵)、ASCII码字符集(816点阵)和64256点阵显示RAM(GDRAM绘图区域);可与CPU直接接口,提供两种界面来连接微处理机(八位并行及串行连接方式);具有光标显示、画面移位等多种功能8。3.4.1 组成结构 TH12864使用ST7920作为行驱动器,同时使用ST7921作为列驱动器。液晶显示中应尽量避免一个字符一半在左半屏显示,另一半在右半屏显示的情况。由于TH12864液晶显示器是一种带有输出驱动的完整的液晶显示器,八位微处理器可直接与其相连,对液晶屏进行行、列驱动。3.4.2 引脚功能 TH12864液晶显示器有20个管脚,分电源线、数据线和控制线。其详细功能如下: 1、电源部分 VDD 电源正极,通常接+5V。 VSS 电源负极,接-5V。为了简化电路,可直接接地。 V0 电源控制端,用来调节显示屏灰度。调节该端的电压,可以改变显示屏字符、图形的颜色深浅。 2、数据线 DB0DB7 数据总线,双向。 3、控制信号 PSB 并口/串口选择信号,接高电平时选择并口,接低电平时选择串口。模块上一般都有跳线方式将其接高或接低,用户可以不处理(事先须声明是用并口还是串口);也可以选择不在模块上处理,而由用户自己选择并口还是串口9。 RS(CS) 寄存器选择信号,高电平时为数据操作,低电平时为写指令或读状态(串行方式下为片选信号,低电平有效)。 R/W(SID) 读/写选择信号,高电平为读选通,低电平为写选通(串行方式下作数据线使用)。 E(SCLK) 读/写使能信号,在E的下降沿,数据被锁存(写)入ST7921;在E为高电平期间,数据被读出(串行方式下作时钟输入)。 RST 复位信号,低电平有效。当其有效时,关闭液晶显示,使显示起始行为0。可与单片机相连,由单片机控制;也可直接接VDD,使之不起作用。 BLA 背光源正极(LED+5V)。 BLK 背光源负极(LED0V)10。 电路原理图如图3-8: 图3-8 液晶显示模块电路原理图3.5 按键控制模块3.5.1 按键控制模块电路原理图 按键分为两类:独立式按键和矩阵键盘。 独立式键盘是最简单的键盘电路,各个键相互独立,每个按键独立的与一根数据输入线相连接。任何一个键按下时,通过门电路都会向CPU申请中断,在终端服务程序中,读入对应值,从而判断是哪一个按键被按下。查询时,平时所有的数据输入线都通过上拉电阻被连接成高电平;当任何一个键被压下时,与之连接的数据输入线将被拉成低电平,要判断是否有键被压下,只要用位处理指令即可。第4章 系统软件设计 在对所要设计的课题有了整体的了解之后,需要先建立程序框架的流程图,对整个设计划分模块,逐个模块实现其功能,最终把各个子模块合理的连接起来,构成总的程序。主程序首先要对整个系统进行初始化,然后将指令传给芯片,设置按键功能,按下按键,看其对应的按键,完成预期的功能。 系统的主流程图如图4-1所示:图 4-1 主程序流程图4.1 录音模块设计 首先是对SS、MOSI、SCLK、MISO设定为低电平有效,且串行时钟指令SCLK为下降沿触发。然后将上电指令发送给主控芯片,当主控芯片存储了本条指令,而系统再次调用它的时候,即可实现对ISD4004语音芯片通电。往芯片内烧录语音信息(录音地址0XA0,当前录音地址0XB0)。 如图4-2所示:图4-2 录音模块程序流程图4.2 放音模块设计 以上已对SS、MOSI、MISO、SCLK进行了设定,故我们需要将上电指令发送给主控芯片,当主控芯片存储了本条指令,而系统再次调用它的时候,即可实现对ISD4004语音芯片通电。然后我们将从指定地址开始的放音指令0XE0和从当前地址开始放音指令0XF0传送给主控芯片,当芯片调用该指令的时候,语音执行相应的操作。执行过程如图4-3所示:图4-3 放音模块流程图4.3 显示模块设计 显示模块采用带中文字库的LCD12864液晶屏,首先设定汉字地址表,再根据需显示的汉字地址或坐标显示对应的汉字。在主函数调用第一站信息时,显示对应内容,当调用第二站信息时显示第二站对应内容。如图4-4:图4-4 显示模块流程图4.4 键盘扫描模块设计 键盘扫描采用的是独立按键,确定有无按键按下并判断是哪一个按键。当检测到有键按下后,需要去除键抖动,延时一段时间再做下一步的检测判断,识别出是哪一个键闭合。扫描过程如图4-5所示:图4-5 键盘扫描流程图第5章 系统分析与调试 本设计是在Keil C环境下开发的,Keil C软件支持C语言的编程及调试,运用方便,是做C语言毕业设计者
展开阅读全文