公交车报站器的设计与制作.docx
- 文档编号:13416407
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:75
- 大小:496.58KB
公交车报站器的设计与制作.docx
《公交车报站器的设计与制作.docx》由会员分享,可在线阅读,更多相关《公交车报站器的设计与制作.docx(75页珍藏版)》请在冰点文库上搜索。
公交车报站器的设计与制作
丽水学院
课程设计
题目公交车报站器的设计与制作
指导教师吕晔
院系机电建工学院电子系
班级自动化072
学号30
姓名吴飞波
2011年1月10日
摘要
本文介绍了一种公交车报站器的系统设计原理,提出了以51单片机为核心,通过4*1键盘获取外部指示以控制ISD1700语音芯片电路以及LCD显示的硬件设计和软件设计方案。
该系统语音音质好,功能强,成本很低,是提供公交服务的一种较好的手段。
本文首先介绍了ISD1700的基本原理和开发方法,讨论了控制模块、显示系统和存储系统的总体设计思想和实现方案,并且详细阐述了硬件系统和软件系统的设计。
硬件系统包括电源电路、控制电路、信息存储电路、显示电路、语音资源存储电路等;硬件驱动程序由开发系统提供的C语言库函数来实现。
经过调试和仿真运行,使系统最终达到了课题设计的要求。
关键词:
单片机;语音处理;LCD显示;ISD1700
Abstract:
ThispaperexplainstheprinciplesofabusDIAS,andofferahardwareandsoftwaredesignprogramthatthemicrocontrollercore,AT89C51,controllstheISD1700voicechipcircuitandLCDdisplayastheexternalcommandfromthe4*1keyboard.Thissystemwillprovideawellbusservicewithitshighqualityvoice,strongfunctionandlowcost.ThispaperintroducesthefundamentalprincipleanddevelopmentmethodsofAT89C51atfirst.Itdiscussesthetotaldesignideaandtherealizationmethodofvoicecontrol,displaysystemandmemorysystem.Thenitdescribesthedesignprojectofhardwaresystemandsoftwaresystemindetail.Thehardwaresystemconsistsofpowercircuits,controlcircuits,informationstoragecircuits,displaycircuitsetc.ThesoftwaretodrivethehardwarewasdevelopedwiththeClanguagefunctionlibraryprovidedbydevelopmentsystem.Thesystembehavedwellafterdebugandsimulation.Theresultshowsthatthesystemcomestoourexpectation.
Keywords:
MCU;SpeechProcessing;LCDdisplay;ISD1700
第一章概述
1.1选题的目的和意义
随着城市化进程的加快,公共交通作为城市的基础设施之一,仍然是绝大多数出行者的首选交通方式。
为使得人们特别是为外来旅游、出差、就医、求职等急需了解本地的公交路线的人提供高效、方便、快捷的公交系统,让他们得到自己所需要的各种相关信息,以便减少各种可能产生不必要的交通流量,提高公交的运作效率,公交自动报站系统便应运而生。
在计算机还未普及之前公交车报站管理都是由工作人员人工报站的方式来操作的。
随着社会的进步和计算机科学的迅速发展,便有了公交车自动报站系统的出现。
公交应用系统带给公交企业的将不仅是形象的提升,也是效益的增长。
现今社会,公交事业关乎到大多数城市居民的出行,可公交车上的传统的人工按键报站依然无法满足大家对其的要求。
主要表现为:
(1)报站不准确:
由于司机在操作报站系统时经常会按错键或忘记按键,而且在调整系统时会连续报出几个站点,让不熟悉路线站点的乘客不知所措。
(2)安全隐患:
每次报站时都需要由驾驶员对报站器进行操作,而在车辆起动与进站时,往往是路面情况最复杂的时候,驾驶员既要对行驶中的汽车进行起动或制动等操作,同时还要兼顾报站系统的操作,给行驶中的车辆带来一定的安全隐患。
1.2国内外研制状况
公交车自动报站器的设计主要是为了弥补传统人工语音报站的落后方式,使进站、出站信息自动播报站名及服务用语,为市民提供更人性化,更完善的服务。
目前语音报站器技术主要有以下几种:
一般语音报站器,到站前由乘务人员按动进站按钮开始报站,出站时由乘务人员按下出站按钮,开始预报下站的站名,通过序号来记录各个站点;第二种是门控语音报站器,将开门、关门时转换信号和语音报站器连接,开门和关门时自动报站;第三种是无线信标语音报站器,它是在每个公交车站点设置发射信标点,公交车临近到站点左右会收到信标信号,开始自动报站,出站后信号消失,开始预报下一站,此报站器报站准确,但需要为每个站点组建无线发射信标,建设复杂、费用高,大部分站点无电源供应,公交车数量多时存在频率干扰问题,且较严重,用户修改站点非常不方便,系统维护成本高;第四种就是GPS自动语音报站器,此报器是在公交车上安装GPS自动语音报站器,自动识别站点并报告站点信息。
由于报站精准,无须人工操作,无须建设任何车外设施,被广泛使用。
第二章课题的方案设计与论证
2.1设计任务
1.可以完整地播放一条公交线路的站名,包括上行线路与下行线路。
2.可以在LED的键盘显示模组上显示当前的时间(日期),具有时间日期的设置功能。
3.可以播放音乐或广告。
2.2系统整体方案的设计
主要有两个核心功能
一个是时钟显示,一个就是语音播报
时钟显示我们采用DS1302来精确获取时间,并使用4位LED数码管来显示。
只有4位数码管如何显示年本设计为带时钟显示的公交车报站器。
、月日、时分呢
程序里面设计了一个显示标记,这个显示标记可以通过按键来进行切换,当为0时,显示最常用的,时分,当为1时,显示年,当为2时,显示月日,同时,显示时间的时候,中间的两个时间小点会进行闪烁,当然,在设置时间的时候,中间的两个小点为不闪烁状态。
设置时间也是一样,先设置年,年可以设置2000---2099年,也就是可以设置100年,设置时,20XX后面的XX闪烁,方便操作者知道。
设置其它参数的原理同设置时间一样。
语音部分
首先,必须实现的就是语音的分段,我们采用的ISD1760可以分成几段来进行播放,
在录音的时候,先录第一段(信息如:
本次车开往市客运站),也就是起始站,先播报让人了解一下,接着录第二段,第三段,第四段为上行的终点站。
第五段为下行终点站的提示信息(如:
本次车开往火车站),接着是第六段,第七段,第八段为下行的终点站,也就上行的起始站,这样站点信息就完成一个轮回。
第九段信息为音乐或者广告信息。
在录音的时候,按住录音键,对咪头说话或者播放音乐即可完成录音,第一段录完后,松手,即默认第一段录完,接着又可以再按住录音键,一口气完成9段录音,完成后,断电或者复位即可。
播音也是一样,设置一个播音指针,当第一个站,上行的时候,播间指针为第一个站的,依此类推。
当播音乐的时候,首先先跳到音乐的语音段,播放完语音后,再返回来原来的播音指针。
语音信息的擦除,当发现录错后,或者更换语音时,按一下擦除键即可,程序会擦除整片录音,这个时候,需要重新录音。
第三章系统硬件电路设计
3.1硬件结构
此部分为整个工作电路中的主单片机电路,图中的单片机采用宏晶公司的STC89C52,属于51单片机系统,管脚部分与普通89C51全部相同,芯片介绍可以与其它芯片一样,该单片机的程序容量为8K,已经能够满足一般的程序需求。
此排阻为5脚4。
7K排阻,此部分应该还属于时钟电路,因为时钟电路的IO管脚需要上拉电阻,该排阻的主要功能就是上拉电压。
晶振及复位电路是每个单片机系统必须具备的电路,
本设计的晶振采用的是11.0592M晶体振荡器,此晶振比较常见,易于购得。
因此,在设计中,使用11.0592M的晶振与2个30P的瓷片电容组成单片机的晶体振荡电路,为单片机的正常工作提供了振荡信号。
下图中的SW7、C4及R17,一起组成了本设计的复位电路,其中C4与R17为为常用的阻容复位电路。
当工作电路在瞬间上电时,电容C4瞬间导通,+5V加载到单片机的第9脚(reset),系统完成上电复位。
同时,系统中还加入了一个直按的复位按键,同理,当按下按键后,+5V加载到单片机的第9脚(reset),系统完成了通电情况下的热启动。
设计此按键的好处是,当在系统死机的的情况下,可以在不断电的情况下按下此按键,完成单片机热启动
3.2时钟电路
时钟电路主要提供设计所需要的时间显示功能所需要的时间参数。
DS1302为目前用得最广泛的时钟芯片,其价格便宜,时间精确度较高,并且在没有主电源供电的情况下,使用后备电源仍可使时间继续往前走。
这里的电容及二极管主要组成DS1302的后备电源供电电路。
时钟芯片必须接晶振,该晶振使用常用的32768HZ晶振。
3.3电源电路
本设计的电源电路由两部分组成,一部分为USB供电,而另一部分,则由6V电池供电。
在实际使用中,只需要其中一部分即可,因此,此系统不但可以工作在USB供电的场合,同时,也适用于蓄电池等其它电源供电的场合。
6V电池的+6V端经过D2二极管4007降压后,到达整个电路的VCC,为整个电路提供供电电源。
二极管的压降一般为0.7V,经过降压后的电压大概为5.3V。
图3.7中的D3发光二极管为电源指示灯,通电后该指示灯会一直长亮。
USB电源,则是直接将USB的电压接入即可。
3.3指示灯电路
该指示灯由5个LED组成,前面的R9为限流电阻,避免烧坏LED。
4个指示灯分别标明当前站点信息(包括上行与下行),另外一个指示灯用来指示当前工作状态。
3.4键盘电路
本设计键盘采用独立式键盘
键盘按照其与I/O口的连接方式的不同,可以分为独立式键盘和矩阵式键盘。
独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。
因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。
优点:
电路配置灵活,软件结构简单。
缺点:
每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构显得复杂。
因此,此键盘是用于按键较少或操作速度较高的场合。
矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上。
优点:
节省I/O口。
缺点:
程序编写较复杂,同时占用单片机资源,单片机需要花相当多的时间采用按键信号。
3.5LED数码管显示电路
该电路采用动态扫描的形式,数码管采用的是共阳的数码管,在一般单片机的设计中,采用共阳的数码管,可以使得结构更加简单控制更加容易。
使用单片机的P0口输出数码管的各个段码,前面有470欧电阻为数码管的限流电阻,
又因为单片机的IO输出能力较小,因此采用了三极管8550来进行放大输出电流,实现数码管能够闪亮显示
3.6语音电路以及ISD1700芯片介绍
3.6.1语音电路
3.6.2ISD1700芯片及引脚介绍
本芯片使用不单纯是一个放音电路,还含有其他的控制。
因此程序首先要能完成指定地址的放音工作,其次还应能嵌入整个费额显示程序中,即语音程序不能与电路其他功能相影响。
费额显示中里面主要有八字板,点阵等其他的控制。
试验中采用的是ISD1760语音芯片,采样率为8K时,一共能播放60S的语音,最大地址为0x1EF,录音实际地址为0x10-0x1EF,从此最大地址可得出:
0x1EF-0x10=0x1DF=479,479+1=480;480*125MS=60S,也就是说8K采样率时每1个地址最小语音长度为125MS,因此如果知道单个语音的长度,暂时无编程器的时候,也可自己推断每个语音所占的地址长度。
ISD1700系列芯片功能特点、型号参数表
★ 功能特点
·可录、放音十万次,存储内容可以断电保留一百年
·按键模式和MCU串行控制模式(SPI协议)
·MIC和ANAin两种录音模式
·PWM和AUD/AUX三种放音输出方式
·可处理多达255段以上信息
·有丰富多样的工作状态提示
·多种采样频率对应多种录放时间
·音质好,电压范围宽,应用灵活
★ 电特性
· 工作电压:
DC2.4V~5.5V,,最高不能超过6V
· 静态电流:
0.5~1μA
· 工作电流:
20mA
(1)ISD1700系列型号列表
ISD1730
ISD1740
ISD1750
ISD1760
ISD1790
振荡电阻
12kHz
20秒
26秒
33秒
40秒
60秒
60kΩ
8kHz
30秒
40秒
50秒
60秒
90秒
80kΩ
6.4kHz
37秒
50秒
62秒
75秒
112秒
100kΩ
5.3kHz
45秒
60秒
75秒
90秒
135秒
120kΩ
4kHz
60秒
80秒
100秒
120秒
180秒
160kΩ
ISD17120
ISD17150
ISD17180
ISD17210
ISD17240
振荡电阻
12kHz
80秒
100秒
120秒
140秒
160秒
60kΩ
8kHz
120秒
150秒
180秒
210秒
240秒
80kΩ
6.4kHz
150秒
187秒
225秒
262秒
300秒
100kΩ
5.3kHz
181秒
226秒
271秒
317秒
362秒
120kΩ
4kHz
240秒
300秒
360秒
420秒
480秒
160kΩ
(2)ISD1700引脚定义
引脚名称
PDIP/SOIC封装
TSOP封装
引脚说明
VCCD
1
22
数字电路电源
/LED
2
23
LED指示信号输出
/RESET
3
24
芯片复位
MISO
4
25
SPI接口的串行输出。
ISD1700在SCLK下降沿之前的半个周期将数据放置在MISO端。
数据在SCLK的下降沿时移出
MOSI
5
26
SPI接口的数据输入端口。
主控制芯片在SCLK上升沿之前的半个周期将数据放置在MOSI端。
数据在SCLK上升沿被锁存在芯片内。
此管脚在空闲时,应该被拉高
SCLK
6
27
SPI接口的时钟。
由主控制芯片产生,并且被用来同步芯片MOSI和MISO端各自的数据输入和输出。
此管脚空闲时,必须拉高。
/SS
7
28
为低时,选择该芯片成为当前被控制设备并且开启SPI接口。
空闲时,需要拉高
VSSA
8
1
模拟地
Anain
9
2
芯片录音或直通时,辅助的模拟输入。
需要一个交流耦合电容(典型值为0.1uF),并且输入信号的幅值不能超出1.0Vpp。
APC寄存器的D3可以决定Anain信号被立刻录制到存储器中,与Mic信号混合被录制到存储器中,或者被缓存到喇叭端并经由直通线路从AUD/AUX输出。
MIC+
10
3
麦克风输入+
MIC-
11
4
麦克风输入-
VSSP2
12
5
负极PWM喇叭驱动器地
SP-
13
6
喇叭输出-
VCCP
14
7
PWM喇叭驱动器电源
SP+
15
8
喇叭输出+
VSSP1
16
9
正极PWM喇叭驱动器地
AUD/
AUX
17
10
辅助输出,决定于APC寄存器的D7,用来输出一个AUD或AUX输出。
AUD是一个单端电流输出,而AuxOut是一个单端电压输出。
他们能够被用来驱动一个外部扬声器。
出厂默认设置为AUD。
APC寄存器的D9可以使其掉电
AGC
18
11
自动增益控制
/VOL
19
12
音量控制
ROSC
20
13
振荡电阻ROSC用一个电阻连接到地,决定芯片的采样频率
VCCA
21
14
模拟电路电源
/FT
22
15
在独立按键模式下,当FT一直为低,Anain直通线路被激活。
Anain信号被立刻从Anain经由音量控制线路发射到喇叭以及AUD/AUX输出。
不过,当在SPI模式下,SPI无视这个输入,而且直通线路被APC寄存器的D0所控制。
该管脚有一个内部上拉和防抖动设计,允许使用按键开关来控制开始和结束。
/PLAY
23
16
播放控制端,有电平触发和脉冲触发两种模式
/REC
24
17
录音控制端,低电平有效
/ERASE
25
18
擦除控制端,低电平有效
/FWD
26
19
快进控制端,低电平有效
RDY
/INT
27
20
一个开路输出。
Ready(独立模式)
该管脚在录音,放音,擦除和指向操作时保持为低,保持为高时进入掉电状态
Interrupt(SPI模式)
在完成SPI命令后,会产生一个低信号的中断。
一旦中断消除,该脚变回为高。
VSS
28
21
数字地
第四章软件系统设计
4.1单片机主工作流程
程序初始化
读取语音芯片录音指针\语音芯片初始化
语音芯片播放位置复位,将语音置于第一段
站点信息指示灯根据播放位置而点亮相应指示灯
播放音操作子程序
采集时钟芯片时间
根据显示标记显示年\月日\时分等
查看设置时间键有无按下
进入时间设置子程序
查看切换显示键有无按下
显示标记+1,切换年\月日\时分等显示
返回子程序
4.2时间设置流程图
时间设置子程序
设置参数初始化
设置标记是否溢出,也就是退出
退出设置返回子程序
设置按键是否按下
设置标记+1
根据设置标记显示相应的设置参数
时间加1键有否按下
当前显示时间参数+1
返回主程序
Y
N
NY
N
NY
4.3放音操作流程图
录放音操作子程序
放音键是否有按下
播放当前站点信息(当前指针)
播放停止键是否按下
播放是否完成
返回继续播放
停止播放
播放语音指针+1,指向下一条语音
音乐播放键是否按下
找出音乐语音段的指针,并且播放
播放停止键是否按下
返回继续播放
下一首按键有否按下
停止播放,并恢复原来站点信息的语音指针
播放是否完成
恢复原来站点信息的语音指针
录音键有否按下
擦除键有否按下
返回主程序
放音指针指向下一条
执行录音操作(一共录9锻录音
清除所有的语音,并且录音的指针归0
Y
NYY
Y
YY
NY
NY
NY
致谢
本次课程设计是在吕晔老师的悉心指导和帮助下完成的,他对本次设计的构思、框架和理论运用给予了许多深入的指导,使得设计及论文得以顺利完成。
在论文撰写过程中,他提供了许多宝贵的思路和建议,结合工作体会和经历,提出了很多有价值的观点,为完成本次课程设计和论文给予了极大的帮助。
再次感谢所有支持和帮助过我的老师、领导和同学们!
【参考文献】
1.陈明荧,《8051单片机基础教程》,北京:
科学出版社,2005
2.李全利,《单片机原理及接口技术》,高等教育出版社,2005
3.周立功,《单片机实验与实践》,北京航空航天大学出版社,2004
4.谢维成,《单片机原理与应用及C51程序设计》,清华大学出版社,2006
5.王新久,《液晶光学和液晶显示》.北京:
科学出版社,2006
6.PeterSpasov著,李小洪译.微控制器原理与应用[专著],北京:
清华大学出版社, 2006
附件一源程序
#include
#defineucharunsignedchar
#defineuintunsignedint
///////////////////////////////////////////
ucharweizhi=0;
ucharplay_weizhi=0;//播放的位置指针
ucharzhizheng[4];//放音指针
sbitRST=P1^0;//DS1302复位脚
sbitIO=P1^1;//DS1302数据脚
sbitSCLK=P1^2;//DS1302时钟脚
sbitled1=P2^0;
sbitled2=P2^1;//数码管驱动
sbitled3=P2^2;//
sbitled4=P2^3;//
sbitdian=P0^7;//秒数闪烁数码管段
sbitstation1=P1^3;//1号站指示灯
sbitstation2=P1^4;//
sbitstation3=P1^5;
sbitstation4=P1^6;//4号站指示灯
sbitstatus=P1^7;//状态指示灯
sbitplay=P3^0;//放音键
sbitnext=P3^1;//复位键
sbitmusic=P3^2;//音乐或者广告播放键
sbitstop=P3^3;//停止播放键
sbitset=P3^3;//时间设置键
sbittime_add=P3^4;//时间加1键/切换显示键
sbiterase=P3^6;//擦除语音键
sbitrec=P3^7;//录音键
ucharxdatads1302_r[7];////DS1302接收的数据格式为秒分时日月星期年
ucharxdatads1302_t[7];////格式为秒分时日月星期年
ucharyear;//年
ucharmonth;//月
ucharday;//日
ucharhour;//时
ucharminute;//分
ucharsecond;//秒
bitxiaoshu;//小数点是否开启
ucharxs_biaoji=0;//显示标记,若为0,显示时分,若为1显示年,若为2,显示日期
ucharset_xs_biaoji=0;//设置时的显示标记,0,显示2011,1显示月日,2显示时分
ucharset_biaoji=0;//设置标记,0,设置年,1,设置月日,2,设置时间
////////////////////////////////////////////////////////
//ISD1700状态寄存器及各个标志位定义
uchar
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 公交车 报站 设计 制作