多功能公交车报站器的设计与实现.docx
《多功能公交车报站器的设计与实现.docx》由会员分享,可在线阅读,更多相关《多功能公交车报站器的设计与实现.docx(31页珍藏版)》请在冰豆网上搜索。
多功能公交车报站器的设计与实现
毕业设计(产品说明书)
课题名称
多功能公交报站器的设计与实现
学生姓名
肖赟
学号
201300335115
专业名称
机电一体化技术
指导教师
曾小宝
完成日期2016年5月13日
摘要
本设计介绍了基于单片机的公交车语音报站系统的设计,对系统软件设计和硬件实现进行了详细的描述,
系统包括微控制器模块,语音录放电路,站数、站名显示模组,键盘接口电路,复位电路及电源等。
系统使用STC89C52单片机来控制语音合成芯片和液晶显示模组。
配合液晶屏显示,就使得该报站系统更加实用。
主要内容是用STC89C52单片机为核心控制元件,ISD4004语音芯片为录音模块,以液晶屏为显示模块,以独立按键K1、K2为输入设备,扬声器为语音输出设备,设计一个带语音报站和液晶显示功能的公交车报站系统。
先将语音内容通过录音键录入语音芯片中,当按下放音键时,语音模块进行放音同时通过液晶屏显示对应的文字信息。
本设计主要解决如何方便、准确地指示乘客到站的问题,具有模拟人声进行报站和预报站,对所报站数和站名进行文字显示和站名语音信息录放及站名选择控制等功能。
本系统运行稳定,硬件电路简单,软件功能完善,控制系统可靠,具有一定的实用和参考价值。
关键字:
单片机,语音提示,文字显示,公交报站
Abstract
Thedesignmainlysolvetheproblemofhowtoeasilyandaccuratelyindicatethatpassengersarriving.
Thesystemincludesmicro-controllermodule,voicerecordingandplaybackcircuitry,stationnumber,stationnamedisplaymodules,interfacecircuitofthekeyboard,resetcircuitandpowersupply.ThesystemusesSTC89C52Single-chipMicrocomputertocontrolspeechsynthesischipandliquidcrystaldisplaymodule.Besides,LCDmakesthereportingsystemmorepractical.
ThispaperintroducestheautomaticstopannouncerbasedonSTC89C52andaimstoexplicitlydescribethesoftwareandhardwareappliedinthesystem.ThemainfeaturesofthesystemarethatSTC89C52isusedforcorecontrollingcomponents,ISD4004pronunciationchipforrecording,LCD12864screenforvideodisplays,independentkeyK1andK2forinputdevice,loudspeakerforoutputdevice.Thisisdesignedforastopannouncementanddisplaysystemforbuses.Thevoicemessageisrecordedinthepronunciationchipinadvance.Whenthe“Play”keyispressed,thevoiceofstationannouncementsimultaneouslyappearswiththeinformationonthescreen.
Ithasthefunctionofanalogvoicereportingandforecastingstationonthetextdisplay,reportingnumberandstationname,andvoiceinformationrecordingandstationnameselectioncontrol.
Thissystemenjoystheadvantageofstability,simplicityandreliability.Thefull-featuredsystemisanidealmodelandiseasilyputintouse.
KEYWORDS:
Single-chipMicrocomputer、AudioPrompt、CharacterDisplay、Bus-StopAuto-Announce
第1章任务与要求
1.1课题概述
本文主要是对C语言和单片机的一些基本知识、概念的应用学习和研究,以及STC89C52芯片模块、ISD4004语音模块和LCD12864液晶屏的开发设计,该设计的目的是设计一实现单片机与语音控制芯片系统互联,通过按键,系统可播报相应的车站信息或者公益提醒,也可以实现录音和放音功能。
本设计的主要工作有以下几个方面:
1、方案的选择要符合芯片功能的要求,既要保证操作简单适合公交司机操作,又要体现出本产品的特点,本文研究设计的带录音功能的公交车语音报站系统是采用STC89C52单片机和ISD4004语音芯片,用来实现公交车站信息的播放以及录音和放音功能,用LCD12864带中文字库的液晶显示屏实现公交站名的显示。
2、程序流程图及软件设计一个程序要想实现其功能,不能没有次序而盲目下手,必须对其有一个全面的了解后画出流程框图,然后逐个模块的实现其功能,最终把模块之间合理的连接起来,构成完整程序。
本设计的软件设计主要包括系统的初始化设计、延时子程序的设计、录音子程序的设计、放音子程序的设计、液晶屏的显示设计、中断程序设计、以及主程序设计等。
整个系统程序采用模块化结构设计程序相对比较优化易修改和调试,系统软件的开发是用C语言设计的。
3、系统原理图及硬件调试本设计在进行硬件原理分析后,需要连接实物进行实际操作,检验自己的设计是否可以行得通。
需要在protel99SE环境下画出硬件原理图并进行电气测试,检测无异议后进行硬件系统的调试,为了保证系统的可靠性分析查找,硬件的调试分模块分别进行了模拟。
1.2设计内容与要求
1、通过STC89C52芯片实现对按键的读取并将所对应的信息送至扬声器同时将到站信息通过液晶屏显示;
2、语音芯片ISD4004完成语音模块,实现公交站信息的录入及到站时的放音功能;
3、采用两个独立按键,作为录音和放音的控制键;
4、采用LCD12864液晶屏,显示相对应的站的信息;
1.3研究背景
随着社会经济的发展,城市化进程越来越快,城市人口急剧增加从而使城市交通压力不断增大,在倡导绿色低碳环保的今天,公交车作为城市公共交通的重要方式,是城市居民出行的重要工具。
因为公交车具有方便、快捷、经济实惠等优点。
公共汽车为外出的人们提供了方便快捷的服务,而公共汽车的报站直接影响到服务的质量。
传统由乘务人员人工报站的方式工作强度大且效果差,并需要大量的人力资源。
而通过单片机和语音芯片的结合,使得公交车到站信息及提示信息以语音和显示的方式告知乘客,为市民提供更人性化,完善的服务,并且节省了大量的人力资源。
公交车语音报站系统还可以结合每条线路的特点和实际情况自主设定不同的报站方式和站点设置,在为乘客提供方便的同时也便于公交车的运营和司乘人员的操作。
第2章方案论证与设计
2.1总体设计分析
电路总体上分为主芯片控制部分、语音芯片和液晶显示部分。
以STC89C52单片机最小系统作为核心控制电路,控制独立按键对录音放音的选择,具体显示内容及方式由软件来完成。
语音部分由ISD4004芯片来实现,它是一个多功能的语音芯片,可以多次重复录放,本设计正是运用此特点,完成录音和放音功能的。
具体步骤是:
先录入两站的信息,存储到芯片内部,建立语音库,并且具体锁定到对应的地址中,通过按键的次序播放不同的信息。
2.2方案的选择与设计
2.2.1显示模块选择方案
采用带字库的LCD12864芯片,可直接调用字库,使用比较方便。
鉴于上述对比与分析。
2.2.2按键方案的选择
采用独立键盘,其独立键盘有k1和k2个按键,按键数量符合录音和放音两个按键的需要。
用K1和K2两个独立按键,K1为放音键,按第一下时,对应播放第一站信息,同时调用显示子程序,在液晶屏上显示对应信息。
按第二下时,对应播放第二站信息,并在液晶屏上显示信息。
K2为录音键,按下时,录制第一段语音信息并存放在对应的地址中,按下第二下时,录制第二段语音信息并存放于第二段语音对应的地址中,以方便调用。
2.2.3芯片选择方案
采用STC89C52单片机
1、STC89C52可以用USB转串口下载。
2、STC单片机执行指令的速度很快,大约是AT的3-30倍,所以在AT上好
使的程序在STC上不一定好用,最典型的例子就是那些对时序有严格要求的模块,比如IIC,DS18B20、DS1302等的时序。
再者,由于执行速度的加快,非定时器控制的精确延时也会受到一定影响。
3、单片机对工作环境的要求比较低,电压低于5伏时仍然正常工作,甚至3伏到4伏之间都还可以工作,所以当一个系统用STC单片机好用。
4、由于在学校期间学过数字电路、单片机原理、C语言程序设计,综合考虑单片机的各部分资源和作为学生能够获得的资源,经过对比此次设计要求,我选择用STC系列芯片完成。
而且学校也提供了相应的硬件操作平台,实际操作起来比较方便。
2.3原理图
按照系统功能的具体要求,在保证实现其功能的然础上,尽可能降低系统成本。
总体设计方案围绕上述思想,初步确定系统的方案如图2-1所示:
图2-1 系统初步方案
从图中可以看出,系统有微处理器模块、液晶屏显示模块、独立按键模块和语音模块组成。
在方案设计中,遵循简洁至上的原则,因此所有的外围模块采用串行方式与微处理器模块接口。
该设计以STC89C52系列单片机为控制核心,实现公交车语音报站基本功能。
在设计系统时,为了更好地采用模块化设计法,分步的设计各个单元功能模块,系统的硬件部分可以分为键盘设定、单片机控制、LCD显示和语音控制四大部分。
最终实现基于单片机的公交车语音报站系统的设计,对系统软件设计和硬件实现进行了详细的描述,主要内容是用STC89C52单片机为核心控制元件,ISD4004语音芯片为录音模块,以液晶屏为显示模块,以独立按键K1、K2为输入设备,扬声器为语音输出设备,设计一个带语音报站和液晶显示功能的公交车报站系统。
先将语音内容通过录音键录入语音芯片中,当按下放音键时,语音模块进行放音同时通过液晶屏显示对应的文字信息。
第3章硬件电路设计
3.1 概述
此次的毕业设计主要由4个大的模块构成,分别是主控模块、语音芯片模块、LCD液晶显示模块、键盘控制模块,其中主控模块是此次毕业设计的核心模块,主要是指STC89C52芯片,它控制整个系统的运行,利用其各个口分别控制其他模块,使其他模块能够成为一个整体,实现功能的需要;语音模块主要指ISD4004芯片和LM386芯片,用ISD4004来实现录音功能,LM386实现功率放大;而LCD液晶显示模块是整个系统的辅助模块,用来显示到站信息;按键控制模块则是用按键来控制实现的是哪个功能,对应录音、放音。
3.2 控制模块
3.2.1 STC89C52芯片的简介
功能特性:
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案,如图3-1所示。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
主要性能:
与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:
0Hz~33Hz 、三级加密程序存储器 、32个可编程I/O口线 、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符[1]。
如图3-1
图3-1stc89c52
管脚说明:
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,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口也可作为STC89C52的一些特殊功能口,如表3-1
表3-1 P3口的第二功能
接口
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器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:
来自反相振荡器的输出。
XTAL1和XTAL2分别为反相放大器的输入和输出。
该反相放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.2.2 主控模块电路原理图
单片机主控模块由STC89C52芯片和晶振复位组成。
复位和晶振电路通过接口与单片机个引脚相连,复位电路接到RST口,晶振接到XTAL1口和XTAL2口上。
如图3-2,3-3所示:
图3-2 STC89C52芯片
图3-3 晶振复位
3.3 语音芯片模块
3.3.1 ISD4004芯片简介
ISD4004语音系列芯片是美国ISD公司推出的产品,与普通的录音/重放芯片相比,ISD4004具有如下特点:
首先是记录声音没有段长度限制,并且声音记录不需要A/D转换和压缩。
其次,快速闪存作为存储介质,无需电源可保存数据长达100年,重复记录10000次以上。
此外,ISD4004具有记录时间长(可达16分钟,本文采用的为8分钟的ISD4004语音芯片)的优点。
最后,ISD4004开发应用具有所需外围电路简单的优点,这一点从本文介绍的其在实际应用中可以体会到。
ISD4004芯片如图3-4所示:
图3-4 ISD4004芯片
指令码如表3-2所示:
指令
控制码
操作
POWERUP
00100xxx
上电:
等待TPUD后可以工作
SETPLAY
11100xxx
从指定地址开始放音
PLAY
11110xxx
从当前地址开始放音
SETREC
10100xxx
从指定地址开始录音
REC
10110xxx
从当前地址开始录音
SETMC
11101xxx
从当前地址开始快进
MC
11111xxx
执行快进,直到EOM
STOP
0x110xxx
停止当前操作
STOPWRDN
0x01xxxx
停止当前操作并掉电
RINT
0x110xxx
读状态OVF和EOM
SPI端口的控制位如图3-5:
图3-5ISD4004的SPI控制位
SPI控制寄存器SPI控制寄存器控制器件的每个功能,如录音、放音、信息检索上电/掉电、开始/停止操作、忽略地址指针等,如表3-3:
表3-3ISD4004的SPI控制寄存器
控制位
值
功能
控制位
值
功能
RUN
1
0
允许/禁止操作
开始
停止
PU
1
0
电源控制
上电
掉电
P/R
1
0
录/放模式
放音
录音
IAB
1
0
是否使用指令地址
忽略输入地址寄存器内容
使用输入地址寄存器内容
MC
1
0
快进模式
允许
禁止
P15-P0
行指针寄存器输出
A15-A0
输入地址寄存器
3.3.2LM386芯片简介
LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。
为使外围元件最少,电压增益内置为20。
但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。
输入端以地为参考同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。
LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中[6]。
LM386芯片如图3-8所示:
特性(Features):
1、静态功耗低,约为4mA,可用于电池供电;
2、工作电压范围宽,4-12Vor5-18V;
3、外围元件少;
4、电压增益可调,20-200;
5、低失真度
图3-8LM386芯片
引脚说明:
1和8为增益引脚,2为负端输入,3为正端输入,VSS为接地,5为输出,Vdd为电源,7为旁路。
LM386内部电路原理图与通用型集成运放相类似,它是一个三级放大电路.
第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。
使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。
第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。
第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。
二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。
引脚2为反相输入端,引脚3为同相输入端。
电路由单电源供电,故为OTL电路。
输出端(引脚5)应外接输出电容后再接负载。
电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。
3.3.3语音芯片模块电路原理图
STC89C52和ISD4004之间的连接较少,其中P3.7接ISD4004的片选引脚/SS,控制ISD4004的选通与否。
P3.6接ISD4004的串行输入引脚MOSI,从该引脚读入放音的地址。
P3.4接ISD4004的串行时钟引脚SCLK,对于ISD4004芯片所需要的连接还有音频信号输出引脚AUDOUT,该引脚通过一个滤波电容与扬声器连接,AMCAP为自动静音端,使用时通过一个电容接地。
此外由于ISD4004的工作电压为3伏,而单片机所需供电电压为5伏,因此需要采用变压电路得到3伏电压供ISD4004使用。
由于单片机驱动能力不够,在处理音符信号时,需加功率放大装置,因LM386芯片具有低功耗、高增益的特点,这合适单片机低功耗输出,所以加装LM386音频信号放大器对信号进行放大。
语音芯片模块电路原理图如图3-9所示:
图3-9语音芯片模块电路原理图
3.4LCD液晶显示模块
液晶显示器LCD(LiquidCrystalDisplay)广泛应用于微型计算机系统中,与LED相比,具有功率低,抗干扰能力强,体积小,价格低廉等优点。
另外,LCD在大小和形状上更加灵活,接口简单,不但可以显示数字、字符,而且可以显示文字和图形。
字符和数字的简单显示,不能满足图形曲线和文字显示的要求。
点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及文字,并且可以实现屏幕上下左右滚动、动画、分区开窗口、反转、闪烁等功能,用途十分广泛。
现在,随着液晶技术的突破,液晶显示器的质量有了很