毕业设计---公交车自动报站系统的设计.doc_第1页
毕业设计---公交车自动报站系统的设计.doc_第2页
毕业设计---公交车自动报站系统的设计.doc_第3页
毕业设计---公交车自动报站系统的设计.doc_第4页
毕业设计---公交车自动报站系统的设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

公交车自动报站系统的设计前言 根据AT89C51单片机的特点和公交车报站器的特点,本文提出了一种用单片机控制语音芯片进行公交车语音自动报站的方法。同时给出了软硬件设计的方法,设计过程中包括硬件电路设计和软件程序编写两个方面,解释了单片机在应用过程中的方法和可能出现的问题。本文主要介绍硬件电路设计部分。利用AT89C51作为控制器,通过ISD4004语音芯片建立语音信息库,形成变化多样的语音信息,利用其功放播放语音信息以及提示语音,同时运用LED数码管进行站数显示。当公交车到达某站点,用键盘控制本系统工作,通过语音电路输出语音信息和提示,同时站数信息在LED数码管上显示。整个系统硬件设计包括键盘电路、复位电路、显示驱动电路、显示电路、内存扩展电路模块。本系统很大程度上提高公交车报站的准确性,可靠性。提高了公交系统的服务质量。促进城市经济发展和交通变化的和谐发展。 1 方案论证1.1 方案1公交车站自动报站器的设计,对车轮轴的转角的脉冲进行计数,将计数值与预置值对比,即可确定报站时刻,达到准确自动的目的。以AT89C51为主控芯片,对外来脉冲计数,结合语音芯片ISD4004输出语音。系统由脉冲检测、脉冲计数、CPU控制、控制信号、语音芯片、输出显示等组成。原理框图如图所示。语音芯片控制信号脉冲计数CPU控制输出显示放音电路脉冲检测 图1.1-1 原理框图脉冲检测:该系统关键是对转轴所转过的圈数进行计数,考虑到车辆将在复杂的 环境中运行,故采用可靠的霍尔元件DN6848作为信号的采集装置,再经光电耦合器4N25输入给单片机。脉冲计数:光电耦合器的信号进入C51后,采用中断方式对脉冲计数。外部晶振12MHz。CPU控制:程序中将计数值于预置值进行比较,判断是否到站,当到站时就输出信号控制语言芯片进行报站。控制按键:用于手动控制、手动调整、预置值的输入等语言芯片:由专用语音芯片ISD4004组成,可擦写,便于在不同公交线上使用。 输出显示:LED点阵汉字显示。预置存储:采用两种方式存储,一种是在烧写器上将数据写入,另一种是在车上,单片机处于输入状态,车辆行驶一遍,将站与站之间的脉冲数写入片内。1.2 方案2利用8031单片机作为CPU来进行总体控制,当汽车到达某站时,汽车司机通过键盘来控制本系统进行工作,并且,系统将使用状态指示电路,向司机指示出当前的行驶方向及站号(如与实际方向不符,司机可通过键盘来调整)。原理图如图1.2-1所示。语音合成电路8031小系统LED点阵显示电路语音输入输出电路键盘状态指示电路 图1.2-1 原理框图本系统使用8031作为CPU,由CPU来控制语音合成芯片TC8830AF,使其工作在CPU控制模式下。当系统进行语音再生时,由CPU控制语音合成电路中的语音芯片来读取其外接的存储器内部的语音信息,并合成语音信号,再通过语音输出电路,进行语音报站和提示。CPU同时通过程序读取汉字信息,送入LED点阵显示电路来进行汉字提示。当系统进行语音录制时,语音信号通过语音输入电路输入给语音合成电路中的语音合成芯片,由语音合成芯片进行数据处理,并将生成的数字语音信息存储到语音存储芯片中,从而建立语音库。2 硬件电路的设计2.1 单片机的原理AT89C51单片机的结构框图如图2.1-1所示。它主要由下面几个部分组成:1个8位中央处理单元(CPU)、片内Flash存储器、片内RAM、4个8位的双向可寻址I/O口、1个全双工UART(通用异步接收发送器)的串行接口、2个16位的定时器/计数器、多个优先级的嵌套中断结构,以及一个片内振荡器和时钟电路。在AT89C51单片机结构中,最显著的特点是内部含有Flash存储器,而在其他方面的结构,则和某公司的8051的结构没有太大的区别。CPU中断控制振荡器片内Flash存储器总线控制片内RAM4I/O端口ETC定时器1定时器0串行端口外部中断P0 P2 P1 P3地址/数据TXD RXD计数器输入图2.1-1 AT89C51单片机的结构框图2.2 振荡器电路的设计XTAL2XTAL1GNDNCCMOS门外部振荡信号图2.2-1 外部时钟接法在图中给出了外接元件,即外接晶体及电容C1,C2,并组成并联谐振电路。在电路中,对电容C1和C2的值要求不是很严格,如果用高质的晶振,则不管频率为多少,C1,C2通常都选择30pF。有时,在某些应用场合,为了降低成本,晶体振荡器可用陶瓷振荡器代替。如果使用陶瓷振荡器,则电容C1,C2的值取47pF。XTAL2XTAL1内部定时/PD400D1D2Q1RfQ2VCCQ3Q4图2.2-2 AT89C51单片机内部振荡器电路2.3 复位电路的设计Vcc AT89C51RST GND8.2k10uF+Vcc 图2.3-1 手动复位电路一般采用的办法是在RST端和正电源VCC之间接一个按钮。当人为按下按钮时,则VCC的+5V电平就会直接加到RST端。由于人的动作很快也会使按钮保持接通达数十毫秒,所以,保证能满足复位的时间要求。手动复位的电路如图2.3-1所示。通常,在单片机中对所使用的振荡晶体的参数要求如下:ESR(等效串联电阻):根据所需频率按图2.3-2选取。C0(并联电容):最大7.0pF。CL(负载电容):30pF+3pF。通常,其误差及温度变化的范围要按系统的要求来确定。 在本设计中,采用的是内部方式,在XTAL1和XTAL2引脚上外接一个12MHZ的晶振及两个47pF的电容组成。XTAL1XTAL289系列单片机GND内部定时VCC/PDRf石英晶体或陶瓷振荡器C1C2图2.3-2 片内振荡器等效电路2.4 脉冲检测电路的设计图2.4-1 脉冲检测电路本设计的关键是对转轴所转过的圈数进行计数,考虑到车辆将在复杂的环境中运行,而霍尔元件具有耐震动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀的优点,故采用可靠的霍尔元件DN6848作为信号采集装置,再经过光电耦合器4N25输入给单片机。光电耦合器的电流传输比为10%250%,响应时间小于10us,其电路如图2.4-1所示。2.5 LED显示 图2.5-1 LED点阵汉字显示电路LED显示器是用发光二极管构成的显示器。构成方式有两大类:一是笔段字符式,一般又有三种:7段(/8段)数码管、15段(/17段)数码管和6段符号显示器;二是点阵字符式,一般有57、58、88和1616等若干种点阵结构。为了适应不同电路的需要,根据构成LED显示器的发光二极管公共极的极性,有共阴极和共阳极两种形式。对共阴极数码管,公共阴极接地,当各段阳极上的电平为高电平时,该段接通亮,电平为0时,该段关断不亮。对共阳极数码管则刚好相反,高电平时不亮,低电平时亮。这种器件根据显示数位分类,可以分为一位、双位和多位LED显示器,一位LED显示器就称作LED数码管,两位以上的一般就称作LED显示器。 7段(/8段)数码管显示器7段(/8段)数码显示器的每个数位都是由7段笔段组成,通过不同笔段的组合就可以显示不同的数字和部分字母以及其他符号。其第8笔段一小数点形式位于字符的右下方。 15段(/17段)数码管显示器 15段(/17段)数码显示器的每个数位都是由14(/16)段数码管组成外框加“米”构成,通过不同笔段的组合,不但可以显示所有的数字,还可以显示所有的26个英文字母和其他符号。15段与17段显示器的区别在于外框上下两横结构不一样,17段显示器的上横和下横分别被分成两个笔段,而15段显示器则分别为一个笔段。17段显示器可以显示两种尺寸不同的数字,一种为半尺寸瘦型数字,另一种为全尺寸的宽型数字;而15段显示器则只能显示全尺寸的数字。本电路采用16*256的LED点阵显示屏来显示16个16*16的汉字,采用显存U14来存放汉字点阵信息。显示屏分32页,每页由16行8列LED发光二极管构成,在LED点阵显示屏中,用一片4-16译码器74LS154进行行译码,将地址A0-A3译码形成行信号,用两片4-16译码器74LS154组成一个5-32译码器,进行页译码,将地址A4-A8译码形成页选通信号,分别用以选通一片74LS244,系统通过此74LS244的数据线向该页的某行(由A0-A3译码选通)上的8个发光二极管送入显示信息。九位地址线A0A8的地址范围为0511,分别对应显示屏的第1页的第1行到第32页的第16行,地址线A0A8与显存U14的地址输入管脚相连接,因此U14中的第1到第512字节中的数据存放的是对应显示屏中第1页的第1行到第32页的第16行的显示数据信息。系统通过循环地址的方法将U14中的每个单元的数据送入显示屏的第1页的第1行到第32页的第16行,适当选择循环周期,即可实现汉字的显示。循环的地址信号由计数器U13所构成的九位二进制循环计数器产生,并通过缓冲器U7和U9的第1组通道送给U14和上述三片译码器的A0A8端,作为地址信号。显存中的数据由单片机在需要时写入,写入时,单片机的P1.6置低电平(平时为高电平),封锁计数器U13的计数脉冲CP(注:CP为占空比为10:1的方波信号),同时选通缓冲器U8和U9的第2组通道(经非门U11A反向输出的高电平封锁缓冲器U7和U9的第1组通道),使单片机送入的地址信号A0A8通过缓冲器(U8、U9)作为显存的地址信号,单片机送来的数据(P00P07)就可以通过缓冲器U12写入显存(P1.6已为低电平)中的对应地址单元内,显示信息完全写入后,P1.6被置成高电平(缓冲器U8和U9的第2组通道被封锁,缓冲器U7和U9的第1组通道开锁),计数脉冲CP开锁,计数器U13工作,循环提供9位地址信号,使显存中的点阵数据被循环送入显示屏(此时,U12输出高阻态,实现显示屏的数据总线与单片机系统的数据总线间的隔离),以实现汉字提示信息的显示输出。3 软件设计3.1 主程序图:开始计数判断手/自动键是否按下YN调用手动操作程序判断正/反向键是否按下返回YN调用反向程序比较判断到站否NY调用语音报站程序返回 图3.1-1 整体流程图3.2 主程序清单MOV TMOD, #0F8H; 外部中断0工作在方式1MOV TH0, #0FFH ;设计数初值MOV TL0, #0FEH;SETB EA ;开放中断SETB TR0SETB IE0 MOV R0, #20H ;软件计数器地址值MOV R1, #11MOV A, #0MOVX R0, A ;软件计数器清零SETB 21H.0 ;设中断标志位AJMP $ ;等待中断RETL1: CPL 21HMOV TH0, #0FFHMOV TL0, #0FEHMOVX A, R0CLR CCJNE A, #0FFH, L2 ;计满,转移INC A ;未满,计数值加1MOVX R0, AINC R0L2: INC R0 ;计数器地址值加1INC AINC R1MOVX R0, A ;计数值加1RETIORG 1000HJNB P1.0, P0 ;P1.0=0,手动MOV DPTR, #2000HP0: JB P1.1, $ ;未到站,等待MOVX A, R0 ;读入高位计数值MOVX DPTR, AMOV A, #0MOVX R0, ADEC R0INC DPTRMOVX A, R0 ;读入低位计数值MOVX DPTR, AMOV A, #0MOVX R0, AINC DPTRLJMP P0T0: JNB P1.2, T1 ;P1.2=0,反向LCALL C0 ;正向RETT1: MOVX A, R0 ;取计数值高位DEC DPTRMOVX 30H, DPTR ;路程值高位CLR CT2: CJNE A, 30H, T3 ;高位相等LJMP T3 ;不等继续比较T3: INC DPTRDEC R0MOVX 31H, DPTR ;路程值低位MOVX A, R0 ;计数值低位CLR CT4: CJNE A, 31H, T5 ;低位不相等LJMP T4T5: LCALL PLAY ;调用语音报站程序DEC DPTRLJMP T1RETC0: MOVX A, R0 ;取计数值高位MOVX 32H, DPTR ;路程高位CLR CC1: CJNE A, 32H, C2 ;高位相等LJMP C2 ;不等继续比较C2: INC DPTRDEC R0MOVX A, R0MOVX 33H, DPTRCLR CC3: CJNE A, 33H, C4 ;相等转移LJMP C3C4: LCALL PLAY ;调用语音程序INC DPTRRET;3.3 LED汉子显示程序的设计LED汉字显示过程:首先P1.6置低电平(平时为高电平),封锁计数器U13的计数脉冲CP,同时选通缓冲器U8和U9的第2组通道,使单片机送入的地址信号A0A8通过缓冲器(U8、U9)作为显存的地址信号,单片机送来的数据(P00P07)就可以通过缓冲器U12写入显存(P1.6已为低电平)中的对应地址单元内,显示信息完全写入后,P1.6被置成高电平,计数脉冲CP开锁,计数器U13工作,循环提供9位地址信号,使显存中的点阵数据被循环送入显示屏),以实现汉字提示信息的显示输出。LED汉字显示程序: MOV R2, #16 ;16个字 MOV DPTR, #CDATD ;字模库首地址SHU1: MOV A, #DAT ;要显示字的代码首地址 MOV B, #16 ;每个字符占16个字节 MUL AB ;代码*16 ADD A, DPL MOV DPL, A MOV A, B ADDC A, DPH MOV DPH, A MOV R0, 16 ;每个字符16个字节 CLR P1.6 ;写入显存数据 CLR CP MOV R1, #00H ;显存数据存储首地址SHU2: MOVX R1, DPTR INC R1 ;地址值加1 INC DPTR DJNZ R0, SHU2 ;第一个字的显存存完否 INC DAT DJNZ R2, SHU1 ;16个字存完否 SETB P1.6 ;送数、显示 SETB CP RET4 结束语此次设计的公交车自动报站器初始值存入的方式是在车上,单片机处于输入状态,车辆行驶一遍,将站与站之间的脉冲数写入片内,该方式在公交车改变路线时便于修改。系统选用ISD4004语音芯片,它的录音数据被存放方法是通过ISD多级存储专利技术实现的,用声音和声频信号的自然形式直接存放在故态存储器,从而提供高质量回放语音的保真度,使得该系统与其他语音报站系统相比较,语音质量较好。另外,本设计仍然存在的许多的不足之处,比如,对知识的了解还不是那么的深刻,不能很好的运用于实践。在设计过程中,我得到了周围许多人的帮助,在此我对他们表示忠心的感谢。首先我要感谢的是我的指导老师XX老师和XX老师,这个设计的每个细节和每个数据,都离不开你的细心指导,你严谨细致、一丝不苟的作风一直是我学习的榜样;你循循善诱的教导和不拘一格的思路给予我无尽的启迪。其次,我要感谢XX等同学在软件设计方面给予我的帮助。再次我要感谢我的室友们,从遥远的家来到这个陌生的城市里,是你们和我共同维系着彼此之间姐妹般的感情,维系着寝室那份家的融洽。三年了,仿佛就在昨天。三年里,我们没有红过脸,没有吵过嘴,没有发生上大学前所担心的任何不开心的事情。感谢你们,一路有你!参考文献:1 谢渊: 电路分析, 清华大学出版社, 2003.4, P90-932 韦宏利: 语音芯片在报站器中的应用, 现代电子技术, 2003.13, P30-P313 袁成: 自动报站设备, 城市公用事业, 2003.17, P42-P434 余永权: ATMEL89系列单片机应用技术, 北京航空航天出版社,2003.4 P45-P475 张俊谟: 单片机中级教程, 北京航空航天大学出版社,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论