毕业设计----单片机控制公交汉字显示.doc_第1页
毕业设计----单片机控制公交汉字显示.doc_第2页
毕业设计----单片机控制公交汉字显示.doc_第3页
毕业设计----单片机控制公交汉字显示.doc_第4页
毕业设计----单片机控制公交汉字显示.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

电气自动化专业毕业设计 设计课题:单片机控制公交汉字显示学生姓名: 学 号: 0220090302 指导教师: 专 业:电气自动化技术 年 级: g09 2012年2月14日5路公交车汉字显示系统摘要本文介绍了一种新型的公交车自动报站系统的设计原理,同时提供了一种以89c51单片机为核心,控制isd4004语音芯片及ocm4x8c液晶显示模块做屏幕的新方案。利用89c51单片机作为cpu来进行总体控制,通过语音控制电路进行各种提示语音的播放,同时使用lcd点阵电路进行汉字显示,实现了公共汽车的语音自动报站以及汉字提示的功能,实现了图文、语音一体化协调工作,减轻了司售人员的劳动强度,提高了车辆的服务质量,是一种科技、时尚的新产品。lcd液晶显示已经是人机界面的关键技术。同传统的led显示屏不同的是,它可以存储大量的文字信息,通过内置微处理器控制文字、字体的显示方式,定时显示功能等。摆脱传统电子屏线的束缚,使其应用更加市场化,其流动显示的特点更为广告界所推崇,是一种全新的媒体。isd4004语音系列芯片是美国isd4004公司推出的产品,具有多次重复录放,存储时间长,使用时不需扩充存储器,所需外围电路简单等特点。本系统是以单片机的基本语言汇编语言来进行软件设计,指令的执行速度快,节省存储空间。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,使硬件在软件的控制下协调运作。关键词: 89c51单片机,led点阵显示,语音芯片目录摘要11.绪论31.1引言31.2 目的及意义41.3 设计的主要目标任务41.4 技术指标42.1设计方案43硬件电路的设计53.1 振荡器电路的设计53. 2 复位电路的设计83.3 手动复位83.4 电压变换电路的设计93.5脉冲检测电路的设计103.6 功放电路的设计103.7 录音电路的设计123.8 led显示电路的设计134.软件设计144.1 主控程序的设计144.2 流程图144.3 程序清单154.3 led汉字显示程序的设计20参考文献21致 谢221.绪论1.1引言现在的公交车上大部分都采用投币的购票方式,同时,不再设乘务员。本设计主要是解决如何方便、准确地指示乘客到站的问题,另外,该系统还可以为乘客提供各种各样的提示或警示服务,使得乘客能愉快、安全地上下车。设计中使用89c51单片机来控制语音合成芯片,使得报站器的实现成为可能,再配上一块液晶显示器,使其在语音报站的同时显示出站名,便能使得人们得到更加人性化的服务。同时,实现了图文、语音一体化协调工作,减轻了司售人员的劳动强度,提高了公交车辆的服务质量。1.2 目的及意义 公共汽车为外出的人们提供了方便快捷的服务,而公共汽车的报站直接影响服务的质量。传统由乘务人员人工报站,该方式因其效果太差和工作强度太大,在很多大城市已经被淘汰。近年来,随着科学技术的日益发展和进步,微型计算机技术已经在许多领域得到了广泛的应用。在声学领域,微机技术与各种语音芯片相结合,即可完成语音的合成技术,使得汽车报站器的实现成为可能,从而为市民提供了更加人性化的服务。鉴于传统公交车报站系统的不足之处,结合公交车辆的使用特点及实际营运环境,设计了一种由单片机控制的公交车自动报站系统。公交车自动报站器的设计主要是为了弥补改变传统语音报站器必须有司机操控才能工作的落后方式,进站、出站自动播报站名及服务用语,为市民提供更人性化,更完善的服务。1.3 设计的主要目标任务本课题要求设计一公交车自动报站系统,以实现公交车的语音自动报站,即在进站、出站时候自动播报语音提示信息及服务用语,同时利用led点阵电路进行汉字显示。本设计要求利用at89c51作为主控芯片完成主控电路的设计,辅助电路要求包括语音电路、汉字点阵显示电路、电源电路等。1.4 技术指标工作电压 24v静态功耗 6w音频输出 10w信噪比 34db系统容量 可容纳300个站点信息和8分钟语音广告信息环境温度 -3080最大广告条数 100条2.1设计方案公交车站自动报站器的设计,对车轮轴的转角的脉冲进行计数,将计数值与预置值对比,即可确定报站时刻,达到准确自动的目的。以at89c51为主控芯片,对外来脉冲计数,结合语音芯片isd4004输出语音。系统由脉冲检测、脉冲计数、cpu控制、控制信号、语音芯片、输出显示等组成。原理框图如图2.1所示。语音芯片控制信号脉冲计数cpu控制输出显示放音电路脉冲检测 图2.1 原理框图1. 脉冲检测:该系统关键是对转轴所转过的圈数进行计数,考虑到车辆将在复杂的 环境中运行,故采用可靠的霍尔元件dn6848作为信号的采集装置,再经光电耦合器4n25输入给单片机。2. 脉冲计数:光电耦合器的信号进入c51后,采用中断方式对脉冲计数。外部晶振12mhz。3. cpu控制:程序中将计数值于预置值进行比较,判断是否到站,当到站时就输出信号控制语言芯片进行报站。4. 控制按键:用于手动控制、手动调整、预置值的输入等5. 语言芯片:由专用语音芯片isd4004组成,可擦写,便于在不同公交线上使用。6. 输出显示:led点阵汉字显示。7. 预置存储:采用两种方式存储,一种是在烧写器上将数据写入,另一种是在车上,单片机处于输入状态,车辆行驶一遍,将站与站之间的脉冲数写入片内。3硬件电路的设计3.1 振荡器电路的设计51系列单片机的内部振荡器电路如图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。xtal2xtal1内部定时/pd400d1d2q1rfq2vccq3q4图3.3 at89c51单片机内部振荡器电路xtal2xtal1gndnccmos门外部振荡信号图3.4 外部时钟接法xtal1xtal289系列单片机gnd内部定时vcc/pdrf石英晶体或陶瓷振荡器c1c2图3.5 片内振荡器等效电路通常,在单片机中对所使用的振荡晶体的参数要求如下:esr(等效串联电阻):根据所需频率按图3.6选取。c0(并联电容):最大7.0pf。cl(负载电容):30pf+3pf。通常,其误差及温度变化的范围要按系统的要求来确定。6005004003002001000 4 8 12 16 图3-6 esr与频率的关系曲线在本设计中,采用的是内部方式,即如图3.5所示,在xtal1和xtal2引脚上外接一个12mhz的晶振及两个47pf的电容组成。3. 2 复位电路的设计| s5 | s6 | s1 | s2 | s3 | s4 | s5 | s6 | s1 | s2 | s3 | s4 | s5 | s6 | s1 | s2 | s3 |rst:inst addr inst addr inst addr inst addr inst addr instale:/psen:p0:11振荡周期19振荡周期89系列单片机与其他微处理器一样,在启动的时候都需要复位,使cpu及系统各部件处于确定的初始状态,并从初始状态开始工作。89系列单片机的复位信号是从rst引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如rst引脚上有一个高电平并维持2个机器周期(24个振荡周期),则cpu就可以响应并将系统复位。复位时序如图3.7所示,因外部的复位信号是与内部时钟异步的,所以在每个机器周期的s5p2都对rst引脚上的状态采样。当在rst端采样到“1”信号且该信号维持19个振荡周期以后,将ale和/psen接成高电平 ,使器件复位。在rst端电压变低后,经过1-2个机器周期后退出复位状态,重新启动时钟,并恢复ale和/psen的状态。如果在系统复位期间将ale和/psen引脚拉成低电平,则会引起芯片进入不定状态。图3.7 内部复位定时时序3.3 手动复位手动复位需要人为在复位输入端rst上加入高电平。一般采用的办法是在rst端和正电源vcc之间接一个按钮。当人为按下按钮时,则vcc的+5v电平就会直接加到rst端。由于人的动作很快也会使按钮保持接通达数十毫秒,所以,保证能满足复位的时间要求。手动复位的电路如图3.8所示。vcc at89c51rst gnd8.2k10uf+vcc 图3.8 手动复位电路3.4 电压变换电路的设计公交车上所使用的电源电压为24v,而at89c51芯片的工作电压为5v,所以需要将24v的电压转换成5v电压。设计中采用了三端固定正电压集成稳压器7805,来得到+5v稳定电压。电压变换电路如图3.9所示。集成稳压器是指将不稳定的直流电压变为稳定的直流电压的集成电路。由于集成稳压器具有稳压精度高、工作稳定可靠、外围电路简单、体积小、重量轻等显著优点,在各种电源电路中得到了普遍的应用。在电子制用中应用较多的是三端固定输出稳压器。78xx系列集成稳压器是常用的固定正输出电压的集成稳压器,输出电压有5v、6v、9v、12v、15v、18v、24v等规格,最大输出电流为1.5a。它的内部含有限流保护、过热保护和过压保护电路,采用了噪声低、温度漂移小的基准电压源,工作稳定可靠。根据输出电流值的不同,选用不同系列的芯片,当电流小于100ma时,可以选用78l00系列;当电流在0.5a以内时,可选用78m00系列;当电流在1.5a以内,应选用7800系列的芯片。7805的最大输出电流为1.5a。 图3.9电压变换电路3.5脉冲检测电路的设计本设计的关键是对转轴所转过的圈数进行计数,考虑到车辆将在复杂的环境中运行,而霍尔元件具有耐震动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀的优点,故采用可靠的霍尔元件dn6848作为信号采集装置,再经过光电耦合器4n25输入给单片机。光电耦合器的电流传输比为10%250%,响应时间小于10us,其电路如图3.10所示。 图3.10 脉冲检测电路3.6 功放电路的设计isd4004芯片的音频输出引脚aud out可以驱动一个5k的负载,当器件上电后,该引脚输出的电源为1.2v。本设计中选用的放大器是lm386,lm386是为低电压应用设计的音频功率放大器,其工作电压为6v,最大失真度为0.2,功率频响为20100khz。功放电路连线图如图3.11所示。图3.11 功放电路由于功率放大器lm386要接+6v电压,因此还需要一个电压变换电路将24v电压变换成+6v的电压。这里选用的是芯片lm317。lm331是三端可调式集成稳压器,其电路结构和外接元件如图3.15所示。它的内部电路有比较放大器、偏置电路(图中未画出)、恒流源电路和带隙基准电压等,它的公共端改接到输出端,器件本身无接地端。所以消耗的电流都从输出端流出,内部的基准电压(约1.2v)接至比较放大器的同相端和调整端之间。若接上外部的调整电阻r1、r2后,输出电压为 (3.1)lm317的=1.2v,=50ua,由于调整端电流 ,故可以忽略,所以上式化简为 (3.2)基准电压比较放大器调整管vrefivbti1iadji2+-vivoadj+图3.12 三端可调试集成稳压器结构图3.7 录音电路的设计连线图如图3.13所示,mic是麦克风,即语音信号的输入端,输出的模拟语音信号经过三极管组成的放大器放大后加到isd4004语音芯片的ana in-反向模拟输入端。vcc图3.13 录音电路3.8 led显示电路的设计图3.14所示是 2k8 位静态cmos ram6116 的引脚排列图。a0a10是地址码输入端,d0d7是数据输出端, cs 是选片端, oe 是输出使能端,we 是写入控制端。图3.14 6116引脚图电路图如图3.15所示。 图3.15 led点阵汉字显示电路本电路采用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的数据线向8个发光二极管送入显示信息。九位地址线a0a8的地址范围为0511,适当选择循环周期,即可实现汉字的显示。4.软件设计4.1 主控程序的设计在本设计中,单片机的p1.0到p1.4组成按键组,其功能说明如表4.1所示:表4.1 按键功能说明p1.0p1.4名称功能p1.0手/自动键选择手动、自动操作p1.1输入键进行初始值的输入p1.2正/反向键选择正向、反向行驶报站p1.3录音键录制语音报站信息p1.4执行键分段录音公交车站与站之间的距离必须在第一遍行驶时,手动存入单片机内,其具体过程如下: 按下手/自动键,使p1.0为低电平,即选择手动操作; 启动开始计数; 到第一个站时,按输入键,将此时的计数值存入地址为2000h的片外数据存储器单元内; 复位,准备开始下一段计数; 如此反复操作,将站与站之间的距离依次存入存储器。公交车自动报站行驶过程:首先是启动开始计数,然后将计数值与原来存于系统内的初始值进行比较,相等时停止计数,同时调用语音报站程序进行报站;汽车到一站后,准备重新开始下一段计数。4.2 流程图开始流程图如图4.1所示:计数判断手/自动键是否按下yn调用手动操作程序判断正/反向键是否按下返回yn调用反向程序比较判断到站否ny调用语音报站程序返回 图4.1 整体流程图4.3 程序清单org 0000hajmp mainmain: mov sp, #10h mov p1, #offh mov p2, #offh mov p3, #0ffh mov p0, #0ffh clr eamaii: setb led ;关指示灯 acall dstop ;isd掉电mas0: mov 3ah, #200masi: jb p1.4, mas0 ;等按执行键 djnz 3ah, ans1 acall up ;isd上电 mov 20h, #00h ;isd低位地址 mov 21h, #00h ;isd高位地址 mov 22h, #0000h ; 操作码 jnb p1.3, rec ;p1.3=0,录音 ajmp play ;放音rec: mov a, 20 acall isdx mov a, 21h acall isdx mov a, 22h acall isdx setb p0.0 ;关片选rec1: mov 36h, #10rec2: acall ys50 ;延时录音 djnz 36h, rec2 clr p1.7 ;开指示灯 mov a, #0b0h acall isdx setb p0.0 ;关片选rec3: mov 35h, #200rec4: jnb p0.2, rec7 ;ovf=0芯片溢出 jnb p1.4, rec3 djnz 35h, rec4 setb p1.7 ;关指示灯 acall stopp ;停止当前操作rec5: jnb stop, rec6 ;中断reset jb p1.4, rec5 acall stopp ;停止当前操作 ajmp rec1rec6: clr p0.3 ;时钟sclk=0 setb p0.0 ;关片选 acall stopp ;停止当前操作 ajmp maiirec7: srtb p1.7 ;关指示灯 mov 36h, #15rec8: acall ys50 ;延时录音 jb p1.4, rec6 djnz 36h, rec8 clr p1.7 mov 36h, #15rec9: acall ys50 jb p1.4, rec6 djnz 36h, rec9 ajmp rec7play: mov a, 20h ;低8位地址 acall isdx mov a, 21h ;高8位地址 acall isdx mov a, 22h ;操作码 acall isdx setb p0.0 ;关片选play1: clr p1.7 mov a, #ofoh ;发11110000 acall isdx setb p0.0 ;关片选play2: jnb stop, rec6 ;停止放音 jb p0.2, play2 ;无ovf eom继续放音 setb p1.7 ;关指示灯 acall stopp ;停止当前操作 clr p0.0 ;开片选 clr p0.3 ;时钟sclk=0 setb p0.3 ;时钟sclk=1 jb p0.4, rec6 ;芯片到来 clr sclk ;时钟sclk=0 setb p0.0 ;关片选 acall stopp ;停止当前操作play3: jnb stop, rec6 ;中断放音 jb p1.4, play3 ajmp play1 ;顺序放音up: mov a, #20h acall isdx setb p0.0 acall ys50 ;延时 acall ys50 retstopp: mov a, #30h acall isdx setb p0.0 acall ys50 acall ys50 retdstop: mov a, #10h acall isdx setb p0.0 acall ys50 acall ys50 retisdx: clr p0.0 ;开片选 mov r6, #8 clr p0.3 ;时钟sclk=0isd1: mov c, acc.0 mov p0.1, c ;数据写mosi setb p0.3 ;时钟sclk=1 rr a clr p0.3 ;时钟sclk=0 djnz r6, isd1 retys1: mov tmod, #01h mov th0, #0d8h ;10ms延时初值置入 mov tl0, #0f0h ;(65536-x)*1=10ms setb tr0 ;65536-(10000/1)=d8f0h jnb tf0, $ clr tf0 clr tr0 retys50: mov tmod, #01h mov th0, #3ch mov tl0, #0b0h setb tr0 jnb tf0, $ clr tf0 clr tr0 ret end4.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, #da

温馨提示

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

评论

0/150

提交评论