【《单片机公交报站控制系统的软件设计及测试案例》3900字】_第1页
【《单片机公交报站控制系统的软件设计及测试案例》3900字】_第2页
【《单片机公交报站控制系统的软件设计及测试案例》3900字】_第3页
【《单片机公交报站控制系统的软件设计及测试案例》3900字】_第4页
【《单片机公交报站控制系统的软件设计及测试案例》3900字】_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

-PAGE2-单片机公交报站控制系统的软件设计及测试案例目录TOC\o"1-3"\h\u26297单片机公交报站控制系统的软件设计及测试案例 116711.1功能设计 12521.1.1功能分析描述 1224421.1.2功能实现流程 5180261.2程序设计 1148592样机试制与调试 12202962.1样机试制及调试 12120532.2样机测试 1385802.3测试结果分析 17功能设计功能分析描述系统中主要有5种模块,分为按键模块、时钟模块、语音模块、GPS模块、显示模块,这五种模块在系统中根据报站的需要承担着不同的功能。在控制系统软件设计版块,主要围绕时钟模块、语音模块、GPS模块和液晶显示模块来开展。(1)主程序:首先定义变量,并使串口初始化,用定时器作为波特率发生器。通过调用各模块子程序实现相应功能。(2)液晶显示模块:LCD12864初始化,设置并行通信口,又由于DB0和DB7倒置排列,所以需要设置一个调换函数,当模块在接收指令之前,必须先确认模块内部是否处于非忙碌状态,所以要设置判断忙函数,当处于非忙碌状态时可以写入指令数据到LCD,然后使LCD初始化,设定显示的坐标位置。液晶显示模块具有并行和串行两种连接方式,我们根据液晶显示模块时序图,可以编写出相应的驱动程序。液晶显示模块读写资料时序图如图4.1-4.3所示。图4.1写资料到模块图4.2从模块读资料图4.3串行连接时序图(3)晶振延时函数:由于GPS芯片在对获取到的经纬度信息进行比对时需要一段时间,所以通过编写common程序,对晶振延时1ms。(4)DS1302时钟模块:表4.1DS1302功能分析GPS模块:表4.2GPS模块功能分析功能实现流程由于系统分成手动报站和自动报站两种方式,故系统的主流程主要围绕这两个功能来编写。首先对系统进行初始化,然后按下按键选择启用自动/手动模式,在手动模式下,按动一次按键,系统则根据储存在语音芯片内的数据进行站点播报。当选择自动模式,则切入到GPS模块中,首先接收GPS信号对数据进行解析转换,然后到了站点对站点的经纬度进行数据校核,确认到达指定经纬度,进站后进行语音播报和站点信息显示。主流程图如图4.4所示。图4.4主程流序程图在按键模式下,首先确认是否按下按键,按下按键后选择系统相关模块的函数,并对时间、日期、站点的经纬度等数据进行设置。此外,当还通过按键设置液晶显示的数据信息,完成四行字符的显示。流程如图4.5所示。图4.5按键流程图在DS1302模块中,首先对变量进行初始化,要关闭DS1302写保护,然后复位关闭。首先将地址写入,然后由于写入数据需要时间,所以要增加一个延时函数,当数据写完后复位关闭,写入地址,再进行延时,最后将地址读出,地址增加,最后显示数据。流程如图4.6所示。图4.6DS1302流程图在GPS模块中,首先要对串口进行初始化,使其前面所有经过串口通信的数据清零,然后编写延时函数。首先GPS要判断是否接收到信后,信号接收后通过串口将字符串发送给单片机,单片机对字符串进行解析,解析出经纬度,然后再转换为字符串,最后返回。流程如图4.7所示。图4.7GPS流程图在WT588D数字语音模块,首先对WT588D进行初始化,然后生成语音地址,等待主函数调用语音地址,当GPS信号经过解析确认已经到站后,调用相应站点的语音地址,语音地址里面已经载入该站点的语音文件,故可以通过WT588D进行语音播报。流程如图4.8所示。图4.8WT588D流程图在LCD12864模块,首先需要对液晶显示模块进行初始化操作,清空存储的所有数据,并对显示屏上面的所有字符清零。然后对起始页面和起始列进行设置,设置完成后进入到汉字显示程序,调用写汉字程序,如此反复六次,确保液晶显示模块的所有行都全部初始化。然后,计算汉字代码的初始地址,写入起始页地址和起始列地址,调用写入数据子程序,如此往复直到R0=16,起始页地址加1,重新设置起始页地址然后再一次调用写入数据子程序,直到R0=32。当按下按键时,单片机操控写入引脚要显示内容的命令,然后LCD12864显示对应的站台的中文名称。液晶显示器显示流程图如图4.9和4.10所示。图4.9液晶显示器初始化流程图图4.10液晶显示器程序流程图程序设计根据控制系统硬件选型,程序设计包含对多个模块的控制,需对不同的模块编写代码进行初始化配置,以及编写一些函数用于在主函数中进行调用,简化主函数的结构,也能更加直观的了解到程序运行的逻辑。程序的编写在Keil软件中进行,使用C语言进行编写,采用简单易用的库开发方式进行设计。程序设计主要包括了主函数编写和common延时程序、DS1302程序、GPS程序、urat串口通信程序、LCD12864程序的编写。样机试制与调试样机试制及调试在硬件结构和软件系统分析完成后,按照设计的原理图和PCB图将各个模块的元器件焊接在腐蚀板上,包括:按键模块(5个按键并联)、DS1302时钟模块、WT588D数字语音模块、GPS模块、LCD12864模块、电源电路。最后用导线将各个模块按照电路图连接起来,确保没有出现短路现象。焊接好后的电路板如图5.1所示。图5.1面包板原理样机由于最初开始使用面包板作为电路板来焊接,面包板线路复杂,加之需要焊接的元器件较多,导致在原理样机在制作过程中出现了几次电路焊接错误的情况。在电路板焊接完成后,将程序和语音烧录进单片机和语音芯片后,第一次使用原理样机进行报站,语音断断续续,且报站不连续,有误报站等情况出现。随后,更改方案,选择用腐蚀板来制作原理样机,重新采购元器件,并根据设计好的PCB图定做腐蚀板,将重新采购的语音芯片、液晶显示器等元器件重新焊接制作,最后完成。原理样机实物图如图5.2-5.3所示。图5.2腐蚀板原理样机图5.3样机成品通电显示样机测试首先,连接直流电源,按下开关按键开机,对原理样机进行功能调试。通电后液晶显示器显示了四行字符,第一行显示日期和星期,如2020-05-06,星期三;第二行显示时间,如14:20:22;第三行显示手动模式或者自动模式,本站/下站;第四行显示站名,如西南石油大学。五个按键分别对应不同的功能,可以设置时间和日期,也可以录入站点的经纬度。此外,液晶显示屏的右下角在焊接板上还有一个电位器,可以通过旋转螺钉调节液晶显示屏的亮度。样机总共设置了八个站名,在每个站点均会显示站名名称并进行语音播报,在终点站还会提醒乘客终点站到了,带上随身物品等温馨提示语。在手动模式下,按动四号或者五号按键可以分别播报上一站或者下一站的站名。在自动模式下,经过提前设置每个站点的经纬度,八个站点均设置完成后,观察GPS模块绿灯亮起,说明GPS信号正常可以开始测试,当挪动样机到达设置好的站点的经纬度时样机自动播报站名。经过所有功能测试,样机的功能均正常实现,样机满足设计要求。在正常的天气条件下,在户外对基于GPS技术的公交车自动报站器进行现场调试,调试结果如下。2021年5月16日,天气晴,星期日。于学校西大门、龙井湖、地质楼等八个点位对自动报站器进行了现场测试,并将第一次测试结果记录如表5.1所示。由于GPS受天气、信号等因素影响,故需要选择在天气较好的户外进行调试。开机,液晶显示屏显示Scan,代表GPS正在连接中,当液晶显示屏显示Connect,GPS芯片上面的绿灯亮,表示GPS信号已正常连接,可以开展调试。当到达第一个站点“西南石油大学”站,按下按键3,系统自动获取当前位置经纬度,然后记录当前位置经纬度信息,然后通过按键将当前站点经纬度信息记录在储存器中,等后面比对调用。以此类推,将八个站点的经纬度信息依次记录并通过按键记录在储存器中,记录完成后,回到第一个站点进行调试。在第一次调试过程中,从距离第一个站点“西南石油大学”站500m处调试好原理样机,逐步靠近站点经纬度信息采集点,在第一个站点在距离采集点接近15m的距离原理样机就播报了当前站点信息,并提示下一个站点站名。继续进行调试,当在第二个站点进行测试时,原理样机播报了该站点信息,误差有所缩小,在5m左右。依次完成了第一次八个点的全部测试,在最后一个站点,自动报站播报器播报:“终点站石油魂到了,请所有的乘客收拾好行李物品及时下车,感谢您乘坐本次公交车,祝您生活愉快”。第一次测试,原理样机在所有点都进行了报站,只是报站的距离误差较大,需要进一步调试。表5.1第一次现场测试表序号站点经纬度是否成功播报误差范围备注5m3m1m1西南石油大学经度:30d49m35s纬度:106d06m40s√15m播报2孵化园经度:30d49m38s纬度:106d06m43s√√3龙井湖经度:30d49m46s纬度:106d06m47s√√4学生公寓经度:30d49m48s纬度:106d06m49s√√5地质楼经度:30d49m37s纬度:106d07m02s√√6完井楼经度:30d49m34s纬度:106d06m58s√8m播报7火箭楼经度:30d49m35s纬度:106d06m51s√√8石油魂经度:30d49m35s纬度:106d06m45s√√根据第一次测试结果,对原理样机进行了调试,通过对GPS定位精度的处理提升,进行第二次现场测试。第二次测试也在天气环境好,无遮蔽的户外进行。第二次测试结果记录如表5.2所示。表5.2第二次现场测试表序号站点经纬度是否成功播报误差范围备注5m3m1m1西南石油大学经度:30d49m35s纬度:106d06m40s√√2孵化园经度:30d49m38s纬度:106d06m43s√√3龙井湖经度:30d49m46s纬度:106d06m47s√√4学生公寓经度:30d49m48s纬度:106d06m49s√√5地质楼经度:30d49m37s纬度:106d07m02s√√6完井楼经度:30d49m34s纬度:106d06m58s√√7火箭楼经度:30d49m35s纬度:106d06m51s√√8石油魂经度:30d49m35s纬度:106d06m45s√√经过两次测试和调试,原理样机能够较为准确的根据经纬度信息对八个站点较为精确的报站,且误差超过3/4在1m以内。说明原理样机试制成功,GPS报站精度较高,误差在一定范围内,能够达到公交车正常行驶的使用标准。调试过程如图5.4-5.5所示。图5.4在“西南石油大学”站调试 图5.5在“龙井湖”站进行调试测试结果分析在课题设计过程中,各个模块焊接完成后,对系统进行了调试,发现了几个问题。首先是液晶显示屏幕不亮,第一步用万能电用表排除有短路或者

温馨提示

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

最新文档

评论

0/150

提交评论