图18 LCD1602与单片机连接图
3.7 电源电路
电源电路是将公交车上自身的24V电压降压到单片机和各个报站模块的工作电压5V,降压芯片采用LM2576。电路图如图19所示:
图19 电源电路
4.系统软件设计
4.1 系统工作流程
站点处的无线发射部分连续的发送由地址码、数据码和同步编码工程的串行数据信号,公交车进入发射范围时,车载接收部分收到信号,会将收到的编码信号与事先录制好语音的地址段进行两次匹配。如果匹配成功,理论上会由接受部分的VT输出一高电平给单片机的中断INT0,接到高电平,单片也会对译码进行接收,但实际操作时须将接收部分的VT端悬空,直接利用收到的数据地址进行匹配,来实现单片机对接收编码数据的译码,此后单片机接收进行处理后,将站点的语音信息首地址和站点信息由I/O口输出给语音电路和显示电路,完成报站。系统主程序流程图如图20所示。程序见附录1。
图20 系统主程序流程图
4.2 语音子程序流程
单片机从P0口(P0.0-P0.3)收到数据后,进行对比,送到显示寄存,并依据地址调用相应的语音片段。语音子程序流程图如图21所示。程序见附录2。
图21 语音子程序流程图
4.3 无线收发子程序流程
首先对系统进行初始化设置,在公交车运行过程中,不断对站台发出的无线信号进行检测,当检测到信号时,单片机进入中断,在中断系统中首先进行防干扰处理,防干扰程序按照相同的站台编码信号只触发程序工作一次的思路来编写,这样避免了公交车在靠站台过程中因反复接收到无线信号而引起重复报站或者程序混乱。无线收发部分程序设计流程图如图22所示:
图22 无线收发子程序流程图
4.4 键盘子程序
本设计的独立按键主要采用程序编写实现去抖动和扫描方式。利用接口处电平变化来实现按键功能。
4.5 显示子程序
本设计的显示部分采用的LCD1602字符型液晶,写入的内容和字母数字的位置是通过程序实现的。
5. 系统调试
5.1 软件调试
系统中对无线和语音部分处理数据通过程序要求较高,经过Keil C和Proteus进行联调,对其中的语法错误、端口定义和显示、无线的程序进行了修改,使程序达到了完美。仿真图见附录3。
5.2 硬件的调试
5.2.1 测试影响接收距离的因素
测试的过程中发现在给发射模块加5V的电压下,不加天线虽然也能够发送和接收,但是距离相当短,最多5米远,当收发模块加上25厘米的天线后,测得解码距离明显增大,可达50米左右;当给发射模块加12V的电压时,同样给收发模块加上25厘米的天线,测得解码距离可得100米以上。由此得出影响收发距离的因素有两个:一是发射模块的工作电压;二是收发模块的天线匹配。
5.2.2电源电路的调试
接通USB电源接口时,观察到电源指示灯正常点亮,能给整个系统安全供电,整个实践过程中发现电源电路正常工作,没有出现异常。
5.2.3 LCD1602液晶显示器、语音模块的调试
接通电源开关后,用ISP下载线把写好的程序烧入单片机中,根据系统的控制要求对各部份进行检测。检测到AT89S51控制工作正常、LCD1602显示正常、语音提模块能正常合成语音以及正常播放、无线的控制符合系统的控制要求。
6.总结
设计的题目是基于公交报站系统的设计,程序和硬件都已经调试成功,完成了设计,使系统实现了自动报站功能。本系统功能强大,成本低,系统稳定,无需人工介入,语音音质好,很好的实现了车辆报站的自动化,具有很强的实用性。此次设计的公交车自动报站器初始值存入的方式是在车上,单片机处于输入状态,车辆行驶一遍,将站与站之间的脉冲数写入片内,该方式在公交车改变路线时便于修改。系统选用ISD4004语音芯片,它的录音数据被存放方法是通过ISD多级存储专利技术实现的,用声音和声频信号的自然形式直接存放在故态存储器,从而提供高质量回放语音的保真度,使得该系统与其他语音报站系统相比较,语音质量较好。另外,本设计仍然存在的许多的不足之处,比如它在报站时刻上不能十分的精确,存在一定的误差。这些问题都需要在今后的研究工作中加以改进,使系统更完善,更好的为人们服务。 AT89S51单片机公交车报站系统的设计+仿真图+主程序(5):http://www.751com.cn/zidonghua/lunwen_2433.html