《公交车报站系统的设计_毕业设计(18页).doc》由会员分享,可在线阅读,更多相关《公交车报站系统的设计_毕业设计(18页).doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-公交车报站系统的设计_毕业设计-第 15 页公交车报站系统的设计【摘要】当今社会,对于一些学生和一些上班族来说,公交车成为了一种必不可少的交通工具。目前,就我们所在地来说,公交车一般采用的是手动报站系统,这样,就给司机增加了一些困难和劳动强度,也为乘客的安全增加了一些隐患。如果道路复杂的情况下,司机忘报站或错报站这类失误往往还会给乘客造成一些不必要的麻烦。本设计运用AT89C51单片机来实现公车的自动报站功能,使公交车在快到达每一个站点的情况下自动进行语音报站,并且把站台名字显示在LED数码管上。本系统利用AT89C51作为主控芯片来完成主控电路的设计,语音电路、汉字点阵显示电路、电源电路作
2、为辅助电路等,主要实现到站自动报站自动显示站点。【关键词】:自动报站、80C51单片机、语音电路、LED【ABSTRACT】In todays society, to some students and some office worker, bus becomes a necessary means of transportation. At present in our location, the bus usually adopts automatically stops, which increases some difficulties and labor strength of d
3、rivers and some risks of passengers. Under the complex road circumstance, drivers may forget to stop or stop by mistake, which will cause some unnecessary troubles.This design uses single-chip microcomputer AT89C51 to realize the automatic bus stops function,which makes bus in quick arrive every sit
4、e under the condition of the automatic for voice stops, and put in LED digital display platform name tube. This system is required to exploit the AT89C51 as the master chip to complete the main control circuit design, voice circuits, Chinese characters dot matrix display circuit, the power circuit a
5、s auxiliary circuit, etc.,and it mainly realizes automatic station stops and automatic display site. 【KEY WORD】:automatic stops,80C51 SCM,pronunciation chip,LED 目 录一、引言1(一)课题研究的背景、意义1(二)国内外研究动态1(三)设计的主要任务1二、方案比较1三、系统总体设计与框图2四、硬件电路的设计2(一)AT89C51单片机2(二)电压变换电路4(三)脉冲检测电路6(四)语音电路6(五)LED显示电路9五、系统程序的设计12(一
6、)主程序12(二)语音报站程序12(三)显示子程序13总结14附录一:原理图15附录二:原理图16附录三:原理图19附录四:LED汉字显示程序23参考文献24致谢25一、引言(一)课题研究的背景、意义通过观察,现在的无人售票公交车都是由公交车驾驶员操控按钮来实现报站,但这种方式存在很多缺陷:首先影响司机的驾驶,会使司机在驾驶中,特别是在靠站过程中分散精力,容易造成安全事故;另外,由于一些司机的责任心不强,经常会出现漏报、错报等问题。市民都希望自己的出行是安全、便捷的,所以,本设计将研究一种方便大家的公车自动报站器,让生活变的更加和谐美好。(二)国内外研究动态公交车报站器在公交事业中占有举足轻重
7、的地位,它直接影响到公交车的服务质量。目前公交车报站有三种方式,一种是利用GPS全球卫星定位系统的公交车报站系统,在司机座位后面隔板上,安装了一台15英寸的液晶电视和 GPS信号接收器,安装了这套设备后,公交车在语音报站的同时,通过液晶电视还可以显示到站的站名字幕,这样如果没听清报站的话,通过显示屏,乘客也可以一目了然。当出现紧急情况时,调度中心将会给公交车发出相应的信息,以短信的形式传送到显示屏上,同时车载台会发出相应的提示音;驾驶员也可以通过相应的工具进行回复。目前在美国部分城市GPS卫星定位系统已经投入使用,国内也有此类产品的研制开发,其功能强大,系统稳定,但其投资昂贵,尤其是一些中小城
8、市无法承受。另外一种是手动电子报站和人工报站的方式,这样,会加大司乘人员的工作强度。(三)设计的主要任务本课题主要是对里程计数来控制报站时刻, 以实现公交车的语音自动报站,即在进站、出站时候自动播报语音提示信息及服务用语,同时利用LED点阵电路进行汉字显示。本设计要求利用AT89C51作为主控芯片完成主控电路的设计,辅助电路要求包括语音电路、汉字点阵显示电路、电源电路等。二、方案比较方案一:公交车站自动报站器的设计,对车轮轴的转角的脉冲进行计数,将计数值与预置值对比,即可确定报站时刻,达到准确自动的目的。以AT89C51为主控芯片,对外来脉冲计数,结合语音芯片ISD4004输出语音。方案二:利
9、用8031单片机作为CPU来进行总体控制,当汽车到达某站时,汽车司机通过键盘来控制本系统进行工作,并且,系统将使用状态指示电路,向司机指示出当前的行驶方向及站号方案选择:将方案一与方案二进行比较,方案二是采用8031单片机控制,通过键盘来控制报站时刻,并不完全符合设计的要求,它仍然需要操作员员手动控制,所以本课题决定选用方案一,它使用AT89C51作为主控制芯片,通过对里程的计数来控制报站时刻,完全无需人工介入,选用的语音芯片是美国ISD公司的ISD4004,该芯片与其它语音芯片相比较,其语音音质好,录放时间长。三、系统总体设计与框图整个系统主要由主控电路、脉冲检测电路、语音电路以及LED点阵
10、汉字显示电路等组成。图2.1系统框图系统框图如图2.1所示,该系统主要由89C51单片机作为CPU来控制整个电路。主要是根据车轮的转数来实现脉冲。首先两站之间的距离是不变的,也就是任意两站之间,公交车到达所需的车轮转数是基本一定的。我们利用这一点,多次试验,记录任意两站间公交车所行驶的最小距离,因为里程=转数*车轮周长,那么我们就因为公交车行驶的路线是固定的,从起点到终点中途经过的站点是固定的。因此,任意知道任意两站之间的最少圈数。只要把一圈的距离设为一个脉冲,并用计数器记录,到达一定的脉冲后把数据传送到CPU,再由CPU把信号传到语音电路中。从而达到自动报站效果。再通过LED显示电路显示出来
11、。若是公交车突然要改变路线或者出现系统错误的时候,还能通过控制信号来实现。保证更准确、更及时、更精确的报站。四、硬件电路的设计硬件在电子系统中,硬件电路不仅是控制系统的基础,同时也是软件运行的载体,硬件电路的好坏,直接关系到整个系统的有效性,稳定性,对整个系统的优劣起着至关重要的作用。因此,应该高度重视硬件电路的设计。大到总的规划布局,小到元器件的选择,都要谨慎小心。公交车报站系统主要由四个部分组成,即主控电路、脉冲检测电路、语音电路以及LED点阵汉字显示电路。(一)AT89C51单片机1.AT89C51结构框图AT89C51单片机的结构框图如图3.1所示。它主要由下面几个部分组成。图3.1
12、单片机AT89C51结构框图(1)一个8位的微处理器(CPU)。(2)片内数据存储器RAM(128B/256B)。存放可以读/写的数据,运算的中间结果、最终结果、欲显示的数据等。(3)片内程序存储器ROM/EPROM(4KB/8KB)。存放程序,一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31等。(4)四个8位并行I/O接口P0-P3。每个口既可以用作输入,也可以用作输出。(5)两个定时器/计数器。每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。(6)五个中断源的中断
13、控制系统。(7)一个全双工UART(通用异步接收发送器)的串行I/O口。用于实现单片机之间或单片机与微机之间的串行通信。(8)片内振荡器和时钟产生电路。但石英晶体和微调电容需要外接。最高允许振荡频率12MHZ。2.振荡器电路89系列单片机的内部振荡器电路由一个单级反相器组成。XTAL1为反相器的输入,XTAL2为反相器的输出。当它内部的振荡器产生时钟,只要在XTAL1和XTAL2引脚上外接一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器。如图4.1所示,外接晶体及电容C1,C2,组成并联谐振电路。通常情况下C1,C2都选择30pF,如果使用陶瓷振荡器,则电容C1,C2的值取47
14、pF。图4.1振荡器等效电路3.复位电路AT89S51的上电复位电路如图4.2所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。上电复位的过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。图4.2上电复位的电路(二)电压变换电路1.24V变5V(如图4.3所示) 图4.3 24V变5V公交车上所使用的电源电压
15、为24V,而AT89C51芯片的工作电压为5V,所以需要将24V的电压转换成5V电压。设计中采用了三端固定正电压集成稳压器7805,来得到+5V稳定电压。2.24V变6V如图4.4所示,由于功率放大器LM386要接+6V电压,因此还需要一个电压变换电路将24V电压变换成+6V的电压。这里选用的是芯片LM317。LM317是三端可调式集成稳压器,其电路结构和外接元件如图5.2所示。图4.4电压变换电路它的内部电路有比较放大器、偏置电路、恒流源电路和带隙基准电压等,它的公共端改接到输出端,器件本身无接地端。所以消耗的电流都从输出端流出,内部的基准电压(约1.2V)接至比较放大器的同相端和调整端之间
16、。若接上外部的调整电阻R1、R2后,输出电压为 LM317的=1.2V,=50uA,由于调整端电流、,故可以忽略,所以上式化简为仅仅从公式看的话,R1、R2的阻值是可以随意变换的,而作为稳压电源的输出计算公式,R1、R2阻值是不能随意变换的。根据以上的公式来看,我们只要调整R1、R2的阻值就可以改变输出电压。 (三)脉冲检测电路本设计的关键是对转轴所转过的圈数进行计数,考虑到车辆将在复杂的环境中运行,而霍尔元件具有耐震动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀的优点,故采用可靠的霍尔元件DN6848作为信号采集装置,再经过光电耦合器4N25输入给单片机。光电耦合器的电流传输比为10%250%
17、,响应时间小于10us,其电路如图4.5所示.图4.5 脉冲检测电路(四)语音电路1.语音芯片ISD4004介绍ISD4004语音芯片采用CMOS技术,内含晶体振荡器、防混叠滤波器、平滑滤波器、自动静噪、音频功率放大器及高密度多电平闪烁存储阵列等,因此只需很少的外围器件就可构成一个完整的声音录放系统。芯片设计是基于所有操作由微控制器控制,操作命令通过串行通信接口(SPI或Microwire)送入。采样频率可为4.0Hz、5.3Hz、6.4Hz、8.0kHz,频率越低,录放时间越长,而音质则有所下降。片内信息存于内烁存储器中,可在断电情况下保存100年(典型值)反复录音10万次。器件工作电压3V
18、,工作电流2530mA,维持电流1uA,单片录放语音时间816min,音质好,适用于移动电话机及其它便携式电子产品中。2.ISD4004的主要性能及其特点 (1) 单片实现声音录放功能(2) 单片录放时间为8min、10min、12min和16min(3) 自动静音电路可以在无声状态时消除背景噪音(4) 具有微控制器SPI或Microwire串行接口(5) 可以对多段信息寻址控制(6) 可以通过SPI或Microwire控制寄存器控制功耗(7) 语音数据断电不丢失,可以保存100年(8) 允许反复录音10万次(9) 有PDIP、SOIC、TSOP和CSP多种封装形式3.外部引脚及其说明,如图4
19、.6所示图4.6 ISD4004引脚图电源(VCCA,VCCD):为使噪声最小,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。地线(VSSA,VSSD):芯片内部的模拟和数字电路使用不同的地线。同相模拟输入(ANA IN+):这是录音信号的同相输入端。输入放大器可用单端或差分驱动。反相模拟输入(ANA IN-):差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV音频输出(AUD OUT):提供音频输出,可驱动5K的负载。片选(SS):此端为低,即向该ISD4004芯片发送指令,两条指令之间为高电平。串行输入(MOSI):此端
20、为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。串行输出(MISO):ISD的串行输出端。ISD未选中时,本端呈高阻态。串行时钟(SCLK):ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据传输。中断(/INT):本端为漏极开路输出。ISD在任何操作(包括快进)中检测到EOM或OVF时,本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取。行地址时钟(RAC):漏极开路输出。每个RAC周期表示ISD存储器的操作进行了一行(ISD4004系列中的存贮器共2400行)。该端可用于存储管理技术。外部时钟(XCLK)
21、:本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在+1%内。在不外接地时钟时,此端必须接地。自动静噪(AMCAP):当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。通常本端对地接1mF的电容,构成内部信号电平峰值检测电路的一部分。4功放电路的设计ISD4004芯片的音频输出引脚AUD OUT可以驱动一个5k的负载,当器件上电后,该引脚输出的电源为1.2V。本设计中选用的放大器是LM386,LM386是为低电压应用设计的音频功率放大器,其工作电压为6V,最大失真度为0.2,功率频响为20100kHz。功放电路连线图如图4.7
22、所示。图4.7 功放电路5.录音电路的设计连线图如图4.8所示,MIC是麦克风,即语音信号的输入端,输出的模拟语音信号经过三极管组成的放大器放大后加到ISD4004语音芯片的ANA IN-反向模拟输入端,随后ISD4004语音芯片把传送的信息储存下来。图4.8 录音电路(五)LED显示电路1.发光二极管特性发光二极管与普通二极管一样具有单向导电性,但是其使用的半导体材料不同,其导通电压较高。对小功率LED,支流工作电流以1-15mA为宜,最大电流不得超过50mA,最大平均电流不超过30mA,所以使用中必须要加限流电阻。中功率LED的电流工作电流可达200mA左右。LED其正向压降变化不大,有一
23、定的稳定作用,其发光强度随工作电流增大而增大。LED的发光强度还一环境温度有关,温度越低发光强度越高,随温度升高,发光强度呈准线性下降,在75时发光强度仅为25时的一半,在80时,LED几乎就不能工作,LED的最大工作电流也随温度升高而线性下降。2LED显示器LED显示器是用发光二极管构成的显示器。有笔段字符式和点阵字符式两大类。为了适应不同电路的需要,根据构成LED显示器的发光二极管公共极的极性,有共阴极和共阳极两种形式。对共阴极数码管,公共阴极接地,当各段阳极上的电平为高电平时,该段接通亮,电平为0时,该段关断不亮。对共阳极数码管则刚好相反,高电平时不亮,低电平时亮。3.LED显示译码方式
24、要驱动LED显示器显示相应字符,必须通过接口向其提供字符的笔段字形码和数位代码。如何得到字符的笔段字形码,可以通过硬件译码方式,也可以通过软件译码方式。(1)硬件译码常用的硬件译码器有BCD7段译码器MC14558,把译码器与驱动电路集成在一起的BCD7段译码驱动器MC14547,进一步把锁存器、译码器和驱动器集成在一起的BCD7段锁存译码驱动器MC14513和十六进制输出的锁存译码驱动器MC14495等。(2)软件译码当LED显示器用于微处理器或微控制器应用系统时,利用微处理器的强大功能,通过软件查表方式对所需要显示的字符到笔段字形码的变换实现译码不是一件困难的事,所以目前大多数嵌入式系统应
25、用都是采用这种软件译码方式。4.LED显示器驱动方式LED显示器驱动方式可以分成静态显示驱动和动态显示驱动两种。静态显示驱动一般是通过数字集成电路对所需要显示的字符笔段连续施加电压;而动态显示驱动则是利用矩阵少秒方式间断向所需要显示的字符笔段轮流施加电压。(1)静态显示驱动当LED显示器工作于静态显示驱动方式时,不同数位LED数码管的公共极(共阴极或共阳极)将被连接在一起并接地或+5V,而每个数位的8段笔段分别与一个8位锁存器相连。不同数位的数码管相互独立,分别用不同的驱动器件进行驱动,它们的显示字符一旦确定,只要不改变显示字符,相应的锁存器的输出就将一直维持不变。这种驱动方式的优点是编程容易
26、、管理简单、显示亮度高、稳定性好,占用CPU时间较少;但缺点是占用硬件电路和微处理器系统接口资源较多、引线多、印刷板布线复杂、硬件投入成本高。(2)动态显示驱动当LED显示器工作于动态显示驱动方式时,通常把不同数位的同名笔段互连起来,共用一个显示驱动器。每一个数位上的字符显示都需要靠笔段字形驱动和数位驱动相配合,如果数位显示该位字符,持续施加一段时间的电压,然后再显示下一个数位的字符。这样轮回扫描所有的数位,利用人眼的视觉暂留现象,只要扫描时间恰当,就会感觉到不同数位上在同时稳定地显示不同的字符。动态显示驱动方式的优点是引线少、线路简单、硬件成本相对较低。其缺点是需要不断刷新,当采用软件扫描时
27、,占用CPU的时间较多;当采用硬件扫描时,又会增加硬件成本,LED显示数位越多,显示亮度越低,若处理不好或数位太多,将会引起显示闪烁。5.数据输入接口方式(1)并行输入数据并行输入方式是以并行方式传送数据,其优点是传送数据速度快,其缺点是需要占用较多的I/O接口线。(2)串行输入数据串行输入方式是以串行方式传送数据,其优点是占用I/O接口资源少,其缺点是传送数据的速度相对较慢。6.LED点阵汉字显示电路的设计图5.7 LED点阵汉字显示电路电路图如图5.7所示,本电路采用16*256的LED点阵显示屏来显示16个16*16的汉字,采用显存U14来存放汉字点阵信息。显示屏分32页,每页由16行8
28、列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行的显
29、示数据信息。系统通过循环地址的方法将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通过缓冲器(U
30、8、U9)作为显存的地址信号,单片机送来的数据(P00P07)就可以通过缓冲器U12写入显存(P1.6已为低电平)中的对应地址单元内,显示信息完全写入后,P1.6被置成高电平(缓冲器U8和U9的第2组通道被封锁,缓冲器U7和U9的第1组通道开锁),计数脉冲CP开锁,计数器U13工作,循环提供9位地址信号,使显存中的点阵数据被循环送入显示屏(此时,U12输出高阻态,实现显示屏的数据总线与单片机系统的数据总线间的隔离),以实现汉字提示信息的显示输出。五、系统程序的设计(一)主程序流程图如图4.1所示。图4.1 整体流程图(二)语音报站程序流程图如图4.2所示。 (a)录音 (b)放音图4.2 语音
31、程序流程图(三)显示子程序LED汉字显示过程:首先P1.6置低电平(平时为高电平),封锁计数器U13的计数脉冲CP,同时选通缓冲器U8和U9的第2组通道,使单片机送入的地址信号A0A8通过缓冲器(U8、U9)作为显存的地址信号,单片机送来的数据(P00P07)就可以通过缓冲器U12写入显存(P1.6已为低电平)中的对应地址单元内,显示信息完全写入后,P1.6被置成高电平,计数脉冲CP开锁,计数器U13工作,循环提供9位地址信号,使显存中的点阵数据被循环送入显示屏),以实现汉字提示信息的显示输出。总结我毕业设计的题目是公交车自动报站器的设计,经过几个月的奋斗,终于完成了设计,使系统实现了自动报站
32、功能。该设计的创新之处在于它应用89C51单片机的高速计数器端口进行脉冲计数,以距离来控制报站时刻。本系统功能强大,成本低,系统稳定,无需人工介入,语音音质好,很好的实现了车辆报站的自动化,具有很强的实用性。此次设计的公交车自动报站器初始值存入的方式是在车上,单片机处于输入状态,车辆行驶一遍,将站与站之间的脉冲数写入片内,该方式在公交车改变路线时便于修改。另外,本设计仍然存在的许多的不足之处,比如它在报站时刻上不能十分的精确,存在一定的误差。这些问题都需要在今后的研究工作中加以改进,使系统更完善,更好的为人们服务。在科技高速发展的今天,公交车在城市交通事业中占有举足轻重的地位,它给人们外出提供
33、了方便快捷的服务,而报站器直接影响到公交车的服务质量,因此,我认为在不久之后,自动报站器将完全取代传统的人工报站,普遍使用于各大、中、小城市。附录一:原理图附录二:主程序MOV TMOD, #0F8H; MOV 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
34、MOVX R0, AINC R0L2: INC R0 INC AINC R1MOVX R0, A RETIORG 1000HJNB P1.0, P0 MOV DPTR, #2000HP0: JB P1.1, $ MOVX A, R0 MOVX DPTR, AMOV A, #0MOVX R0, ADEC R0INC DPTRMOVX A, R0MOVX DPTR, AMOV A, #0MOVX R0, AINC DPTRLJMP P0T0: JNB P1.2, T1LCALL C0RETT1: MOVX A, R0DEC DPTRMOVX 30H, DPTRCLR CT2: CJNE A, 30
35、H, T3LJMP T3T3: INC DPTRDEC R0MOVX 31H, DPTRMOVX A, R0CLR CT4: CJNE A, 31H, T5LJMP T4T5: LCALL PLAYDEC DPTRLJMP T1RETC0: MOVX A, R0MOVX 32H, DPTRCLR CC1: CJNE A, 32H, C2LJMP C2C2: INC DPTRDEC R0MOVX A, R0MOVX 33H, DPTRCLR CC3: CJNE A, 33H, C4LJMP C3C4: LCALL PLAYINC DPTRRET;附录三:语音报站程序ORG 0000HAJMP M
36、AINMAIN: MOV SP, #10H MOV P1, #OFFH MOV P2, #OFFH MOV P3, #0FFH MOV P0, #0FFH CLR EAMAII: SETB LEDACALL DSTOPMAS0: MOV 3AH, #200MASI: JB P1.4, MAS0 DJNZ 3AH, ANS1ACALL UPMOV 20H, #00HMOV 21H, #00HMOV 22H, #0000HJNB P1.3, RECAJMP PLAYREC: MOV A, 20 ACALL ISDX MOV A, 21H ACALL ISDX MOV A, 22H ACALL IS
37、DXSETB P0.0REC1: MOV 36H, #10REC2: ACALL YS50 DJNZ 36H, REC2CLR P1.7 MOV A, #0B0H ACALL ISDXSETB P0.0REC3: MOV 35H, #200REC4: JNB P0.2, REC7 JNB P1.4, REC3 DJNZ 35H, REC4SETB P1.7ACALL STOPPREC5: JNB STOP, REC6JB P1.4, REC5ACALL STOPP AJMP REC1REC6: CLR P0.3SETB P0.0ACALL STOPP AJMP MAIIREC7: SRTB P
38、1.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 ACALL ISDXMOV A, 21H ACALL ISDX MOV A, 22H ACALL ISDXSETB P0.0PLAY1: CLR P1.7MOV A, #OFOH ACALL ISDXSETB P0.0PLAY2: JNB STOP, REC6JB P0.2, PLAY2S
39、ETB P1.7ACALL STOPPCLR P0.0CLR P0.3SETB P0.3JB P0.4, REC6CLR SCLKSETB P0.0ACALL STOPPPLAY3: JNB STOP, REC6 JB P1.4, PLAY3AJMP PLAY1UP: MOV A, #20H ACALL ISDX SETB P0.0ACALL YS50 RETSTOPP: MOV A, #30H ACALL ISDX SETB P0.0 ACALL YS50 ACALL YS50 RETISDX: CLR P0.0 MOV R6, #8CLR P0.3ISD1: MOV C, ACC.0MOV
40、 P0.1, CSETB P0.3 RR ACLR P0.3 DJNZ R6, ISD1 RETYS1: MOV TMOD, #01HMOV TH0, #0D8HMOV TL0, #0F0HSETB TR0 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 END附录四:LED汉字显示程序MOV R2, #16MOV DPTR, #CDATDSHU1: MOV A, #DATMOV B, #16MUL AB
41、 ADD A, DPL MOV DPL, A MOV A, B MOV DPH, AMOV R0, 16CLR P1.6 CLR CPMOV R1, #00HSHU2: MOVX R1, DPTRINC R1 INC DPTRDJNZ R0, SHU2 INC DATDJNZ R2, SHU1 SETB P1.6 SETB CP RET参考文献1韦宏利.语音芯片在报站器中的应用J.现代电子技术.20032袁成.自动报站设备J.城市公用事业.20033余永权.ATMEL89系列单片机应用技术M.北京航空航天出版社.20034张俊谟.单片机中级教程M.北京航空航天大学出版社.19995窦振中.单片机外围器件实用手册M.北京航空航天大学出版社.20036苏文平.新型电子电路应用实例精选M.北京航空航天大学出版社.2004