【基于单片机的公交车语音报站器设计6000字(论文)】_第1页
【基于单片机的公交车语音报站器设计6000字(论文)】_第2页
【基于单片机的公交车语音报站器设计6000字(论文)】_第3页
【基于单片机的公交车语音报站器设计6000字(论文)】_第4页
【基于单片机的公交车语音报站器设计6000字(论文)】_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的公交车语音报站器设计目录TOC\o"1-3"\h\u14255基于单片机的公交车语音报站器设计 [7]。表3.1语音与地址的关系数据地址(16进制)语音00H第0段语音播放01H第1段语音播放02H第2段语音播放DAH第218段语音播放DBH第219段语音播放图3.8WT588D芯片引脚图4软件系统设计4.1软件主程序架构当硬件端设计调试完成后,就要针对单片机和每个模块进行软件设计。软件的设计往往需要有一个明确的思路,所以,流程图就是设计程序的一个重要的依据。一开始要对LCD12864以及单片机内部进行初始化,之后还要初始化设置时钟。之后每个模块就各自运行自己的程序,比如按键按下,LCD12864就会显示相应的信息,以及可以播报相应的语音信息。最后,在公交车行驶到终点站时,单片机给SWT588D语音芯片发送信号,进行语音播报,乘客通过播报信息自行判读是否下车。主流程图如图4.1所示:图4.1主流程图4.2LCD12864显示流程图在整个系统重新上电后,首先要对LCD12864进行一个操作,那就是初始化,屏幕原有信息清空,而且内部储存数据清除。之后通过程序对LCD12864进行设置,在程序加载下,单片机不断对LCD12864进行数据更新,可以对屏幕的亮度和内容进行你说需要的调整,在极短的内部数据传输时间过后,将一开始的112路公交车信息和初始设置日期显示在液晶显示屏上。当按下按键时,显示对应按键对应的站台的中文名称。单片机操控LCD12864的DB0~DB7引脚,写入要显示内容的命令。之后显示屏执行指令,将内容显示出来。初始化内容为LCD12864B_DisplayString(0,0,"112路公交车");;LCD延迟voiddelay_ms(ucharnms);写入命令voidLCD12864B_Write_Cmd(unsignedcharcmd);写数据voidLCD12864B_WriteData(unsignedchardat);初始化voidLCD12864B_Init(void);LCD12864显示流程图如图4.2所示:图4.2LCD12864初始化流程图4.3按键子程序本次设计按键电路功能繁多,总共包含了9个按键,前面K1与K2按键分别代表本次车站和下一站,K3按键表示末班,K4~K7按键实现对日期的设置。当单片机检测到K1与K2按键被按下时,LCD12864液晶屏在STC89C52的控制下,显示当前到达的站台信息,同时开始控制WT588D进行播报,让乘客接收到信息,自行判断是否下车。当第K4按键被检测到按下时,单片机先停止内部时钟的运转并开始进入时间与日期设置的程序中。然后,当K5按键按下,单片机选择需要设置的日期,根据按键按下次数来调整是月、日、分或秒。K6和K7按键按下时,单片机便会运行数字加减来达到设置时间的目的。当再按下K4时,单片机内部时钟开始运行,时间就在当前设置的数值下显示出来。图4.4按键流程图

5系统调整5.1仿真使用proteus仿真软件进行仿真,这一步是用来检测是否能达到预期的效果。先在该软件中找出你需要的每个器件原理图,然后依照原理图把相应的器件连接起来,之后把编写好的程序编入仿真软件中,然后开始仿真。在仿真中,如果LCD屏不显示则证明原理图中还有需要改进的地方,要检查是线路连接错误,还是电阻、电容的数值设定不准确,不符合标准。若能显示,但显示内容与按键之间的互动与要求不相符,则是代码问题,检查代码之间的逻辑关系。若没问题,则进行下一步。5.2焊接首先要准备好所有需要的材料和一台电烙铁,然后依照之前设计好的电路原理图,先焊接好每个模块的插排,然后按照原理图把单片机的最小系统和复位电路焊接上去。在确定好的显示模块附近,将上拉电阻焊在单片机的P0口,之后通过导线,把显示屏对应位置与P0相接。之后依次焊接按键控制电路,电源电路,语音模块电路。当然,还要将单片机的RXD和TXD引出来,焊上接口,方便之后程序的烧入与调试。语音模块要把3号与4号引脚引出,然后把喇叭接上。全部焊好后要对线路进行是否通断的检查,用万用表调整到检测模式,在每个相连的引脚上进行测量,如果万用表响了,表示正常连接,若不响,则证明断路,要重新换导线焊接。把每个插排口与底部焊锡也要进行检查,排查插排焊接不合格的现象。所有模块与模块之间连接都检查好之后,将经过仿真没问题的代码以hex格式,通过下载烧写软件烧录进STC89C52单片机内,之后把单片机按正确方向插入插排中。在焊接WT588D时,要检验引脚不能虚焊,先用万用表检测每个脚是否正常,检查每个引脚之间的锡有无重叠,如果没问题则焊接完成。5.2功能调试单片机焊接测试没问题后,进行功能调试,测试软件是否正确。在功能调试的环节是最难的,我要不断尝试烧录代码并检验代码、电路与实际功能一不一样。首先给单片机上电,上电复位是基本的复位方法。LCD12864液晶显示屏分为四行,第一行显示几路公交车,第二行显示的是日期时间,这个时间分为月日时分,每个数字都有相对应的按键能够调整时间,第三第四行显示按下按键的公交站台中文名称,第三行显示的是本站站点,第四行显示的是下一站站点。当按键K1和K2按下时,根据程序,屏幕会刷新站点的名称,并播报相应站点的内容,其播报内容是:“本次公交车已经到达底站,下一站是”。在语音模块附近还有两个按键控制音量的大小,这是与语音模块直接相连,这两个按键功能通过设置WT588D语音地址时候,可以设置每个按键的功能,其中便有音量大小的调整。当两个按键分别按下音量大小发生改变时,说明WT588D的功能调试完成。5.3问题总结在本次设计中,焊接不牢固,短路和断路的情况都会发生。检测每个模块的时候总要专心致志,特别是用万用表检测显示模块时,总会每个显示屏引脚是否有断路或者短路情况,在一点一点仔细排查故障。然后就是程序问题,在设计时间设置功能时搞不明时间与日期之间的逻辑关系,总是造成程序报错,导致功能无法实现。还有就是公交报站的语音地址与代码之间关系也让我想了半天,经过与老师同学的探讨,才逐渐完善代码,实现功能。第三个问题就是,在学习LCD12864时,不了解显示屏上位置与代码关系,导致代码的书写十分困难,要搞清楚显示字符与汉字的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论