基于单片机的公交车语音报站系统的设计说明.doc
《基于单片机的公交车语音报站系统的设计说明.doc》由会员分享,可在线阅读,更多相关《基于单片机的公交车语音报站系统的设计说明.doc(85页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 宁波理工学院 毕业设计(论文)题 目基于单片机的公交车语音报站系统的设计姓 名周玲燕学 号3080431052专业班级08通信工程2班指导教师林功学 院信息科学与工程学院完成日期2012年5月20日79 / 85摘要为了提高公交车服务质量,满足各类乘客需求,设计了一个带有语音播放的公交车报站系统。系统通过3个按键控制实现起始站、上一站、下一站的控制功能。系统主要由AT89C51单片机、语音模块ISD4004、按键和LCD1602显示器组成。ISD4004语音模块存放报站信息,按键控制语音播放,播放的信息在液晶上显示。经6组人员的试用测试,结果表明系统工作稳定,可靠,达到了设计要求。关键词:单
2、片机控制;液晶显示;ISD4004;键盘AbstractIn order to improve the quality of bus service and satisfy the requirements of all kinds of passengers, a bus-stop-reporting system with voice player is designed. The system realizes the function of reporting the originating station、the previous station and the next stati
3、on. The system is made up of AT89C51、voice module ISD4004、buttons and monitor LCD1602. Information of stations reported is stored in ISD4004 voice module. Voice player is controlled by buttons, broadcasted information is displayed on LCD. The design is tested by six groups of people and the result s
4、hows that the system works stably and reliably. It reaches the design requirements.Keywords:Single chip microcomputer;LCD;ISD4004;Keys目录摘要IAbstractII目录III第1章 选题背景和意义1第2章 系统体系结构32.1系统构成32.2 软硬件功能分配62.2.1 软件功能分配62.2.2硬件功能分配82.3功能描述102.4技术指标11第3章 系统硬件123.1设计思想123.2系统原理图123.3元器件选择133.4各模块介绍14第4章 系统软件184
5、.1设计思想184.2模块程序设计184.2.1软件主流程图194.2.2ISD4004语音模块录放音194.2.3LCD1602214.2.4按键部分224.3仿真过程、结果分析23第5章 系统调试285.1硬件调试285.2软件调试295.3综合调试325.4测试结果32第6章 测试结果与分析376.1测试环境376.2测试结果37第7章 总结与展望39参考文献41附件42致 56第1章 选题背景和意义随着城市化的进展和经济的快速发展,大城市人口高度集中并大幅度增长,同时汽车越来越普与,交通需求迅速扩大,而道路交通基础设施建设的发展相对滞后。城市交通需求与供给之间的矛盾越来越突出,城市“乘
6、车难”、“行车难”的局面在加剧,交通堵塞呈现出点到线,由线到面的扩展趋势,交通拥挤、交通延误、交通堵塞以与由此引起的噪音、废气污染,城市空气质量指数的严重跌落严重影响着居民的正常生活以与社会经济的持续、健康发展。而与出租车和私家车相比,公交车人均占道面积少、成本低、运载能力高,同时它的通行路线覆盖面广,在缓解交通拥堵,节能减排方面都有较好的作用,因此很多城市建议人们出门乘坐公交车1。同时有关专家学者和交通工程师们在吸取各国城市交通发展经验基础上,也提出解决我国城市交通发展问题的有效途径,即优先发展城市公共交通,以公共交通为杠杆降低城市交通需求总量,实现道路交通基础设施发展与交通需求增进的均衡。
7、实施“公交优先”是解决我国城市交通问题的有效途径,也是我国目前城市交通发展的基本政策。可见,未来,公交车将充当现代城市生活中一个重要的角色,也就是说城市公共交通在今后的发展中将得到迅速的发展。然而,现有的城市公交车运输方面存在一些不良问题:首先,目前公交车报站系统的设计只为了公交车的乘客服务,因而没有考虑到车站台等车乘客的需要,在天气恶劣或视线不好的时候,乘客往往无法清楚的分辨到达的车辆路线,出现众多乘车不利的现象:有的乘客下到机动车道伸头观望,更多的是常常一拥而上,前后跑动、追赶,找寻自己要上得车辆,很容易造成盲目拥挤,秩序混乱的场面。还经常出现乘客坐不到车,耽误坐车时间,还会出现一些不安全
8、事故。其次,传统的报站方式效果太差。即由售票人员进行人工报站,这个售票人员多的工作不仅需要负责售票工作,还要准确的为乘客报站,作为一个地区的公交车站行业,有一定的地方特色,他们报站时多采用地方口音,作为一个外地人有时候很难听懂报站,从而引起很多麻烦。现在传统的人工语音报站已经被很多城市淘汰了,取而代之的是公交车自动报站系统,它弥补了传统人工语音报站的落后方式,使使进站、出站信息自动服务用语,为,市民提供更人性化,更完善的服务。比如可以通过公交车语音报站,照顾盲人乘客;可以用液晶显示器显示站名,照顾聋哑人等等,让人们在生活中感受到科技给我们带来的便捷。目前语音报站器技术主要有以下四种2:1) 手
9、动语音报站器。这类控制器是由乘务人员按动进站按钮开始报站,出站时,由乘务人员按下出站按钮,开始预报下站的站名,通过序号来记录各个站点;2) 门控语音报站器。它是将开门,关门时转换信号和语音报站器连接,开门和关门时自动报站;3) 无线信标语音报站器3。它是在每个公交车站点设置发射信标点,公交车临近到站点左右会收到信标信号,开始自动报站,出站后信号消失,开始预报下一站,此报站器报站准确,但需要为每个站点组建无线发射信标,建设复杂、费用高,大部分站点无电源供应,公交车数量多时存在频率干扰问题,而且较严重,用户修改站点非常不方便,系统维护成本高。4) GPS自动语音报站器4。此报站器是在公交车上安装G
10、PS自动语音报站器,自动识别站点并报告站点信息。从技术层面讲,此方案从原理上解决了可靠性低的问题,问题是如何把一个先进的原理性的技术成果转化成为“产品化”的产品,还存在一些不足,如:把要报站的语音容事先固化到语音芯片中,这种设计在很多应用中普遍采用,但就这个项目而言,却十分不合理,因为它有悖于“通用化”设计原则。其次,把显示屏要显示的报站容也事先固化到车载控制系统,从用户角度看,通过有线的串行口配置或更新一个已经安装完成的“移动式”的车载设备谈何容易。考虑到各方面的因素后,在本次公交车报站器系统设计中,我采用了第一种的语音报站方法。第2章 系统体系结构本设计采用单片机AT89C51作为自动报站
11、的检测和驱动控制核心,控制ISD4004语音芯片电路以与LCD1602液晶显示站名的硬件设计和软件设计,实现公交车的语音报站。2.1 系统构成本公交报站系统工作原理为公交车每到一站,乘务人员通过按键中断的方式让报站器播报当前站名和下一站站名,提醒乘客到车下车,下一站下车的乘客做好下车准备,这样方便了乘客使其不至错过了车站;并带有LCD 显示系统,告知乘客当前的站点。 在本次设计中,系统由以下几部分电路构成:单片机主控电路、语音录放电路、液晶显示电路、按键电路、复位电路。采用AT89C51单片机作为主控芯片,利用ISD4004数码语音芯片实现语音报站,显示采用LCD1602,键盘采用通用按键开关
12、,简单易行且控制方便。图2.1是整一个系统构成框图5。图 2.1 系统总框图下面介绍一下各部分电路的功能与原理。主控电路是由AT89C51单片机与其相关外围电路组成,AT89C51在系统中实现对ISD4004中的语音信号的控制,实现存储和播放的控制,并响应按键引起的中断,播放合适的语音,同时调用字符库在液晶上显示相关站点名称。总之,AT89C51在系统中实现对整个系统的全局控制,是该系统的指挥部件。结构如图2.2所示。ISD4004具有如下特点:首先是记录声音没有段长度限制,并且声音记录不需要A/D转换和压缩。其次,快速闪存作为存储介质,无需电源可保存数据长达100年,重复记录10000次以上
13、。此外,ISD4004具有记录时间长(可达16分钟)的优点。而且ISD4004开发应用具有所需外围电路简单的优点。ISD4004系列工作电压3V,单片录放时间8分钟至16分钟,音质好,适用于移动与其他便携式电子产品中。芯片采用CMOS技术,含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪与高密度多电平闪烁存贮列。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI或Microwire)送入。芯片采用多电平直接模拟量存储技术, 每个采样值直接存贮在片闪烁存贮器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声
14、和金属声。采样频率可为 4.0,5.3,6.4,8.0kHz,频率越低,录放时间越长,而音质则有所下降,片信息存于闪烁存贮器中,可在断电情况下保存100年(典型值),反复录音10万次。适合用于公交车语音报站系统这种多段录音的设计6。本次液晶模块选用LCD1602。报站系统液晶驱动显示电路连接图如图2.3所示。控制电路选用单片机AT89C51,本电路/EA接高电平,没有扩展ROM。将液晶的数据输入端DB0DB7与单片机的P2口相连,将P0.0,P0.1,P0.2分别与液晶的RS,RW,E端连接,用来控制液晶LCD1602的显示。图 2.2 主控电路图 2.3 液晶显示电路在本次按键模块的设计中,
15、我选择了拥有8个按键的矩阵式键盘模块。矩阵式键盘的工作过程可分为两步:第一步是CPU首先检测键盘上是否有按键按下;第二步是识别哪一个键按下。1) 检测键盘上是否有按键按下的处理方法是:将列线送入全扫描字,读入行线的状态来辨别。其过程如下:PA口输出00H,即所有列线置成低电平,然后将行线的电平状态读入累加器A中。如果有按键按下,总会有一根行线的电平被拉至低电平,从而使行输入状态不全为“1”。2) 识别键盘中哪一个键按下的处理方法是:将列线逐列置成低电平,检查行输入状态,称为逐列扫描。其具体过程如下:从PA0开始,依次输出“0”,置对应的列线为低电平,然后从PC口读入行线状态,如果全为“1”,则
16、按下的键不在此列;如果不全为“1”,则按下的键必在此列,而且是该列与“0”电平行线相交的交点上的那个键。为求取编码,在逐列扫描时,可用计数器记录下当前扫描列的列号,检测到第几行有键按下,就用该行的首键码加列号得到当前按键的编码。2.2 软硬件功能分配2.2.1 软件功能分配 在整一个系统设计中,软件主要负责程序的编写,实现语音模块ISD4004的多段语音录放,以与LCD1602的液晶显示,最后将各个独立的程序进行整合实现最终的公交车语音报站系统的设计。下面主要介绍一下语音模块ISD4004,以与LCD1602在程序编写时所采用的原理。ISD4004 采用多电平直接模拟量存储技术,每个采样值直接
17、存储在片闪烁存储器中,因此能够非常真实的再现语音,音乐等效果。ISD4004工作于SPI串行接口。SPI协议是一个同步串行数据传输协议。协议要求数据在时钟上升沿移入,在下降沿移出。即在时钟上升沿锁存MOSI引脚数据,写入命令字;在下降沿将数据送至MISO引脚,读取状态字。MCS-51单片机的串行口方式0与其要求一致的。ISD4004端口的状态字和命令字如图2.4所示。命令字的高5为为操作码,低11位为操作地址。状态字的最高2位分别是溢出标志OVF和信息段末尾标志EOM,紧跟其后的是行地址计数器的值。ISD4004总共10条命令。当单片机作为主芯片控制ISD4004时,我们只需要在主程序中完成一
18、些初始化的工作以与录放结束工作,如ISD上电,掉电等。另外通过循环扫描键盘,来检查启动键是否按下,根据录放开关状态跳转到相应的子程序7。图 2.4 SPI端口的命令字和状态字LCD1602字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式的显示模块。1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)。表2.1是1602液晶模块部的控制器共有11条控制指令。表 2.1 1602液晶模块部的控制器共用11条控制指令指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置
19、I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:D
20、DRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。LCD1602液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2.5是1602的部显示地址。图 2.5LCD1602部显示地址2.2.2 硬件功能分配硬件需要实现的主要功能是将AT89C51最小系统,LCD1602液晶显示模块,ISD4004语音芯片模块以与按键模块,按照程序正确的连接,观察现象,看是否能
21、够实现所需要的功能。由于AT89C51最小系统是主控中心,所以在此主要介绍各个模块是如何与AT89C51连接的。ISD4004的工作电压为3.3V,本模块已经做好5V3.3V电压转换处理(由ASM1117-3.3V实现)模块引脚直接接5V电源。模块有两路输入和两路输出。输入:MIC输入以与耳机插口输入;输出:喇叭输出与耳机插口输出。其中GND与P6.25相连,VCC与P6.26相连接,为语音模块提供电源。SCLK串行接口时钟输入端与P1.5相连,/SS为片选与P1.6相连,MISO串行数据输出端与P1.8相连,用来控制数据输出,MOSI串行数据输入端与P1.3相连,用来控制数据输入。模块的接口
22、定义如下(顶视)图2.6所示。(注:NC为空脚) MISO-串行输出 MOSI-串行输入 VCC-5V/SS-片选 SCLK-时钟 GND-地 此处为IDC10接口标有白色框的为VCC.定义同上音频输入MIC音频输出电源转换输入和输出音量调节图 2.6 语音模块的接口定义LCD1602液晶显示模块的rs,rw,e分别与51单片机的P35,P36,P37端口连接,进行程序的读写数据,字符操作。而D0D7分别与51单片机的P0口进行连接,用来输出数据与字符。如图2.7 所示。图 2.7液晶1602与AT89C51实物连接图本次设计的按键模块采用通用按键开关,简单易行且控制方便,与51单片机的P2.
23、0口连接,用以控制整个系统设计中LCD液晶显示以与语音播放。在此就不做详细介绍。2.3 功能描述本次设计的课题是基于单片机的公交车语音报站系统,因此主要功能是完成公交车语音报站。采用AT89C51单片机作为主控芯片,对ISD4004数码语音芯片与LCD1602进行控制,实现语音报站,同时显示站名。键盘采用通用按键开关,简单易行且控制方便。在本次软件设计中,主要设计了4站,通过三个按键进行控制。具体如下:k1键起始键现象:ISD4004播报“欢迎乘坐”,同时LCD1602上显示“Huan Ying Cheng Zuo”。k2键上一站,k3键下一站,现象:num=1,ISD4004播报“欢迎乘坐3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 公交车 语音 报站 系统 设计 说明
限制150内