基于单片机公交车语音报站系统毕业设计.docx
《基于单片机公交车语音报站系统毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机公交车语音报站系统毕业设计.docx(48页珍藏版)》请在冰豆网上搜索。
基于单片机公交车语音报站系统毕业设计
武汉理工大学
毕业设计(论文)
基于单片机的公交车语音报站系统设计
学院(系):
专业班级:
学生姓名:
指导教师:
学位论文原创性申明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权省级优秀学士论文评选机构将本学位论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
本学位论文属于1、保密囗,在年解密后适用本授权书
2、不保密囗。
(请在以上相应方框内打“√”)
作者签名:
年月日
导师签名:
年月日
本科生毕业设计(论文)任务书
学生姓名:
专业班级:
指导教师:
工作单位:
设计(论文)题目:
基于单片机的公交语音报站系统设计
设计(论文)主要内容:
设计应用单片机作为主控制单元,利用语音芯片预设达到公交车到站电子语音报站功能。
要求设计达到准确报站,并有误报人工纠错功能,同时具有简单的可操作性及人工预设兼容扩展性
要求完成的主要任务:
1、查阅不少于15篇的相关资料,其中英文文献不少于2篇,完成开题报告。
2、完成语音报站器主控控制模块、语音模块、显示模块等软硬件部分设计,使
单片机与PC机能进行通信,完成人机交互界面设计。
3、完成不少于5000字的英文文献翻译。
4、撰写完成不少于12000字的毕业设计论文(设计说明书、1张图纸)。
必读参考资料:
[1]《单片机基础(第三版)》编著:
李广弟、朱月秀
[2]《单片机典型外围器件及应用实例》编著:
求是科技
[3]《Digitalsystemdesign:
useofmicrocontroller》编著:
Dawoud,Shenouda
Dawoud
指导教师签名:
系主任签名:
院长签名(章):
武汉理工大学
本科生毕业设计(论文)开题报告
1、目的及意义(含国内外的研究现状分析)
公共汽车行驶在现代文明程度高的市区,它是一道流动的风景线,因而对整车外形乃至色彩都有更高的要求。
作为公交汽车还要有醒目和减少乘务人员强度的电子报站器,电子显示路牌,无人售票装置,前后电视监视系统等新技术的采用也将越来越普及。
目前,公交车自动报站主要有以下几种方式:
一种是通过全球定位系统(GPS)的用户终端接收工作卫星的导航信息,从而解算出车辆的经纬度信息,进而计算出实时坐标,将其与站点坐标相比较,当车辆驶入站点一定距离范围内时,不用人工干预,系统自动报站;另一种是利用无线射频识别(RadioFrequencyIdentification)技术,在每一个公交站台设置一个具有唯一ID的射频发射器,采用间歇工作方式发射信号,当公交车即将到达车站时,车载系统接收到站信号并解码出站台的ID号,由单片机控制自动播放对应站台编号的报站语音;还有一种是对车轮轴的转角脉冲进行计数,将计数值和预置值对比,即可确定报站时刻,达到准确报站的目的。
然而,这三种方式都不太适合乡镇的发展现状。
第一种设备造价过高,定位精度也难以达到要求;第二种站台建设投入较大,站点一旦变更,射频发射装置即须移动,较为麻烦;第三种需要公交线路严格固定,稍有改变,报站就难以准确。
为此,本文试图设计一种既方便易行又经济实惠的公交车自动报站系统。
本设计采用人工按键的操作方式公交车手动报站器,弥补传统人工报站必须有司机或乘务员口头报站的落后方式,实现公交车对站名的语音提示和文字显示功能,进站,出站手动播报站名及服务用语,为市民提供更人性化,更完善的服务。
当公交车到达某一站时,司机或乘务人员只需按动按键,就可以使单片机控制语音模块对站名进行语音提示,并控制显示模组在液晶屏上显示站数和站名。
系统由一片八位单片机,一个语音模块,一个液晶模组,一块稳压芯片,若干电阻电容和与非门等组成。
经过本课题的研究,我们得到了一种公交车自动报站的低成本解决方案。
本设计的目的在于通过本次设计能将所学到的单片机理论知识应用于生产实践中,增强自己的社会实践能力,为将来在社会更好的立足做准备。
2、基本内容和技术方案
本系统使用单片机作为控制器件。
当系统进行语音再生时,单片机控制语音合成电路中的语音芯片来读取其外接的存储器内部的语音信息,并合成语音信号,再通过语音输出电路,进行语音报站和提示。
同时,单片机通过程序读取文字信息,送入液晶显示模组来进行站数和站名的显示。
当汽车到达某站时,司机或乘务人员通过键盘来控制系统进行工作。
而且,系统具有根据公交车的行驶方向确定报站顺序的功能(司机或乘务人员可以通过按键来控制)。
当系统进行语音录制时,语音信号通过语音录入电路送给语音合成电路中的语音芯片,由语音芯片进行数据处理,并将生成的数字语音信息存储到语音存储芯片中,从而建立语音库。
系统组成结构
设计主控单元选用AT89S52单片机,AT89S52单片机是一种低功耗,高性能的CMOS微处理器,片内有8K字节的存储空间,128字节RAM、4个8位并口、一个全双工串行口、2个16位定时/计数器,寻址范围64K。
并且可以在线进行重复编程、快速擦除、快速写入程序,能重复擦除/写入1000次左右,数据保存HS-12864为10年。
选用ISD4004系列语音芯片,该芯片提供多项新功能,可录、放音十万次,录音时间达到20秒,断电信息可以保持一百年,两种控制方式,两种录音输入方式,两种放音输出方式,可处理多达255段信息,有丰富多样的工作状态提示,多种采样频率对应多种录放时间,音质好,电压范围宽,应用灵活,价廉物美。
综合上面方案:
设计采用“AT89S51单片机、LED液晶显示屏、ISD4004语音芯片”。
3、进度安排
(1)第1-4周:
查阅相关资料,翻译外文文献,撰写开题报告。
(2)第5-7周:
设计语音报站器的硬件电路,完成硬件部分的组装与测试。
(3)第8-11周:
编写各个模块程序,实现语音报站器要求的功能。
进行软硬件的测试与调试。
(4)第12-14周:
按毕业设计论文撰写规范,撰写论文并修改完善。
(5)第15周:
毕业设计答辩。
4、指导教师意见
指导教师签名:
年月日
致谢44
摘要
公共汽车行驶在现代文明程度高的市区,它是一道流动的风景线,因而对整车外形乃至色彩都有更高的要求。
作为公交汽车还要有醒目和减少乘务人员强度的电子报站器,电子显示路牌,无人售票装置,前后电视监视系统等新技术的采用也将越来越普及。
本文提出了一种用单片机控制语音芯片进行公交车语音自动报站的方法。
整个系统硬件设计包括键盘电路、复位电路、显示驱动电路、显示电路、内存扩展电路模块。
利用AT89C51作为控制器,通过ISD4004语音芯片建立语音信息库,形成变化多样的语音信息,利用其功放播放语音信息以及提示语音,同时运用LCD数码管进行站数显示。
当公交车到达某站点,用键盘控制本系统工作,通过语音电路输出语音信息和提示,同时站数信息在数码管上显示。
本系统很大程度上提高公交车报站的准确性,可靠性。
提高了公交系统的服务质量。
促进城市经济发展和交通变化的和谐发展。
关键词:
AT89S51单片机,ISD4004语音芯片,LCD数码管,语音报站
Abstract
Busdrivinginurbanareaswithahighdegreeofmoderncivilization,itisamobilelandscape,shapeandeventhecolorofthevehicleandthushavehigherrequirements.Aspublictransportvehiclesbutalsoeye-catchingandreducingtheintensityofthenewslettercrewstations,electronicdisplaysigns,unmanneddevices,suchasvideosurveillancesystembeforeandaftertheadoptionofnewtechnologieswillalsobeincreasinglypopular.Thispaperpresentsasingle-chipvoicecontrolvoicechipbusautomaticstationapproach.Theentiresystemhardwaredesign,includingkeyboardcircuit,resetcircuit,displaydrivercircuit,displaycircuit,memoryexpansioncircuitmodules.UseAT89C51asthecontroller,throughestablishingavoiceISD4004voicechiprepository,formingdiversevoicemessages,playingvoicemessagesusingitspoweramplifierandvoiceprompts,whiletheuseofLCDdigitaltubestationnumberdisplay.Whenthebusarrivedasite,usethekeyboardtocontrolthesystemworkthroughthevoicecircuitoutputvoiceinformationandtips,andinformationonthenumberofstationsonthedigitaldisplay.
Thissystemgreatlyimprovedbusstationsaccuracy,reliability.Improvethequalityofservicethepublictransportationsystem.Promotingurbaneconomicdevelopmentandtheharmoniousdevelopmentoftrafficchanges.
KeyWords:
AT89S51microcontroller;ISD4004voicechip;LCDdigitalcontrol;voicestations
1绪论
随着科学技术的日益发展和进步,无人售票公交车在街头多起来了,语音报站器也被广泛使用,这在相当大的程度上免除了乘务人员沿途报站的麻烦,给许多不熟悉公交线路的乘客带来了方便。
1.1课题研究的背景及意义
公共汽车为外出的人们提供了方便快捷的服务,而公共汽车的报站直接影响服务的质量。
传统由乘务人员人工报站,该方式因其果太差和工作强度太大,在很多大城市已经被淘汰。
近年来,随着科学技术的日益发展和进步,微型计算机技术已经在许多领域得到了广泛的应用。
在声学领域,微机技术与各种语音芯片相结合,即可完成语音的合成技术,使得汽车报站器的实现成为可能,从而为市民提供了更加人性化的服务。
鉴于传统公交车人工报站的不足之处,结合公交车辆的使用特点及实际营运环境,设计了一种由单片机控制的公交车语音报站系统[1]。
1.2公交报站器的动态发展趋势
目前,公交车自动报站主要有以下几种方式:
一种是通过全球定位系统(GPS)的用户终端接收工作卫星的导航信息,从而解算出车辆的经纬度信息,进而计算出实时坐标,将其与站点坐标相比较,当车辆驶入站点一定距离范围内时,不用人工干预,系统自动报站;另一种是利用无线射频识别(RadioFrequencyIdentification)技术,在每一个公交站台设置一个具有唯一ID的射频发射器,采用间歇工作方式发射信号,当公交车即将到达车站时,车载系统接收到站信号并解码出站台的ID号,由单片机控制自动播放对应站台编号的报站语音;还有一种是对车轮轴的转角脉冲进行计数,将计数值和预置值对比,即可确定报站时刻,达到准确报站的目的[2]。
然而,这三种方式都不太适合乡镇的发展现状。
第一种设备造价过高,定位精度也难以达到要求;第二种站台建设投入较大,站点一旦变更,射频发射装置即须移动,较为麻烦;第三种需要公交线路严格固定,稍有改变,报站就难以准确。
为此,本文试图设计一种既方便易行又经济实惠的公交车自动报站系统。
本设计采用人工按键的操作方式,实现公交车对站名的语音提示和文字显示功能。
当公交车到达某一站时,司机或乘务人员只需按动按键,就可以使单片机控制语音模块对站名进行语音提示,并控制显示模组在液晶屏上显示站数和站名。
系统由一片八位单片机,一个语音模块,一个液晶模组,一块稳压芯片,若干电阻电容和与非门等组成。
经过本课题的研究,我们得到了一种公交车自动报站的低成本解决方案。
1.3设计的主要目标任务
本课题要求设计一公交车语音报站系统,以实现公交车的语音报站,即在进站、出站时候司机按下按键自动播报语音提示信息及服务用语,同时利用LCD显示电路进行汉字显示。
同时系统需具有可操作性和兼容系,即在使用过程中,对不同的公交线路能够很方便的进行设定。
在使用过程中,若出现错报漏报或者是超前报站情况,司机能够通过按键进行更改,从而达到正确报站。
本设计要求利用AT89C51作为主控芯片完成主控电路的设计,辅助电路要求包括语音电路、显示电路、电源电路、按键模块电路等。
2方案设计
2.1基本原理
本系统使用八位单片机作为控制器件。
当系统进行语音再生时,单片机控制语音合成电路中的语音芯片来读取其外接的存储器内部的语音信息,并合成语音信号,再通过语音输出电路,进行语音报站和提示。
同时,单片机通过程序读取文字信息,送入液晶显示模组来进行站数和站名的显示。
当汽车到达某站时,司机或乘务人员通过键盘来控制系统进行工作。
而且,系统具有根据公交车的行驶方向确定报站顺序的功能(司机或乘务人员可以通过按键来控制)。
当系统进行语音录制时,语音信号通过语音录入电路送给语音合成电路中的语音芯片,由语音芯片进行数据处理,并将生成的数字语音信息存储到语音存储芯片中,从而建立语音库[3]。
2.2基本系统框图
图2.1系统组成结构
2.3系统主要电路简介
微控制器选择目前市场上常用的Intel生产的AT89C51单片机作为主控芯片,同时,AT89C51系统还需要外接晶振和复位电路。
语音提示模块选用ISD4004系列语音芯片,外接话筒和音箱组成语音录制和播放电路。
其中,音箱由音频功率放大器LM386驱动。
文字显示模组采用12864液晶屏作为显示单元,其驱动芯片为带有中文字库的ST7920控制器系列。
模组使用ST7920作为控制器和行驱动器,同时使用ST7921作为列驱动器。
与单片机的连接,我们采用并行间接访问方式。
图2.2语音提示模块组成结构
键盘接口电路采用独立按键设计,通过触发器来消除按键抖动。
电源采用LM2576作为稳压器件,将公交车上的+24V直流电压转变为+5V直流电压。
LM2576是NS生产的3A电流输出降压开关型稳压集成芯片,能够较好地解决LM7805因输入电压过高而发热量较大的问题。
3硬件电路的设计
公交车语音报站系统主要由四个部分组成,即主控电路、按键模块、语音电路、汉字显示电路。
各部分电路的设计在本章中做了详细的说明。
3.1主控电路的设计
3.1.1关于AT89C51单片机
AT89C51单片机的结构框图如图3.1所示。
它主要由下面几个部分组成:
1个8位中央处理单元(CPU)、片内Flash存储器、片内RAM、4个8位的双向可寻址I/O口、1个全双工UART(通用异步接收发送器)的串行接口、2个16位的定时器/计数器、多个优先级的嵌套中断结构,以及一个片内振荡器和时钟电路。
在AT89C单片机结构中,最显著的特点是内部含有Flash存储器,而在其他方面的结构,则和Inter公司的8051的结构没有太大的区别。
图3.1AT89C单片机的结构框图
1)AT89C51芯片主要性能
a.与MCS-510
b.4K字节可编程闪烁存储器,寿命:
1000次写/擦循环数据保留时间:
10年
c.全静态工作:
0Hz-24Hz
d.三级程序存储器锁定
e.128*8位内部RAM
f.32可编程I/O线
g.两个16位定时器/计数器
h.6个中断源
i.可编程串行通道
j.片内振荡器和时钟电路
另外,AT89C51是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择的省电方式——空闲方式(IdleMode)和掉电方式(PowerDownMode)。
在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。
在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一个硬件复位为止[4]。
2)引脚功能说明
AT89C51引脚图及实物图如图3.2所示:
图3.2AT89C51单片机实物图级引脚排列图
VCC:
供电电压。
VSS:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,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口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
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:
来自反向振荡器的输出
3.1.2振荡器电路的设计
89系列单片机的内部振荡器电路如图3.3所示,由一个单级反相器组成。
XTAL1为反相器的输入,XTAL2为反相器的输出。
可以利用它内部的振荡器产生时钟,只要在XTAL1和XTAL2引脚上外接一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器,如图3.5示,此方法称为内部方式。
另一种使用方法如图3.4示,由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。
在组成一个单片机应用系统时,多数采用图3.5所示的方法,这种方式的结构紧凑,成本低廉,可靠性高。
振荡器的等效电路如图3.5上部所示。
在图中给出了外接元件,即外接晶体及电容C1,C2,并组成并联谐振电路。
在电路中,对电容C1和C2的值要求不是很严格,如果用高质的晶振,则不管频率为多少,C1,C2通常都选择30pF。
有时,在某些应用场合,为了降低成本,晶体振荡器可用陶瓷振荡器代替。
如果使用陶瓷振荡器,则电容C1,C2的值取47pF。
图3.3AT89C51单片机内部振荡器电路
图3.4外部时钟接法
图3.5片内振荡器等效电路
通常,在单片机中对所使用的振荡晶体的参数要求如下:
ESR(等效串联电阻):
根据所需频率按图3.6选取。
C0(并联电容):
最大7.0pF。
CL(负载电容):
30pF+3pF。
通常,其误差及温度变化的范围要按系统的要求来确定。
在本设计中,采用的是内部方式,即如图3.5所示,在XTAL1和XTAL2引脚上外接一个12MHZ的晶振及两个47pF的电容组成[6]。
图3.6ESR与频率的关系曲线
3.1.3复位电路的设计
89系列单片机与其他微处理器一样,在启动的时候都需要复位,使CPU及系统各部件处于确定的初始状态,并从初始状态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如RST引脚上有一个高电平并维持2个机器周期(24个振荡周期),则CPU就可以响应并将系统复位。
复位时序如图3-7所示,因外部的复位信号是与内部时钟异步的,所以在每个机器周期的S5P2都对RST引脚上的状态采样。
当在RST端采样到“1”信号且该信号维持19个振荡周期以后,将ALE和/PSEN接成高电平,使器件复位。
在RST端电压变低