《基于单片机的公交语音自动报站器系统设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的公交语音自动报站器系统设计.doc(49页珍藏版)》请在三一办公上搜索。
1、基于单片机的公交语音自动报站器系统设计摘 要随着我国经济的飞速发展和城市化进程的加深,城市人口日益膨胀,机动车辆急剧增加,城市交通压力越来越大。发展公共交通事业是为居民提供安全有序的出行方式的不可替代的途径,公共交通管理的高质量和公共服务水平的人性化是吸引居民采用公交出行的有效途径,是中国解决交通问题的重要措施。公交车报站系统是公共交通系统的一个重要的组成部分,设计先进的报站系统能为广大居民乘车提供优质的服务,提高公交系统的服务水平。本设计利用了Atmol公司的AT89C51单片机来设计一个公交语音自动报站系统。用JHD162A LED来提供站台信息的显示;用ISD1700系列语音芯片来对语音
2、进行各种操作控制;并使用DF无线收发模块及PT2262、PT2272编解码芯片来实现信号的无线收发与识别。最后通过AT89C51对各个模块的控制实现无线收发与识别、信息显示及语音报站任务。关键词:51单片机,ISD1700语音芯片,DF无线收发模块,PT2262/PT2272芯片,JHD 162A,Speech based on single chip bus stop reporter systemAbstractWith the development of national economy and the deepening of the process of urbanization.
3、 The pressure on city traffic is increasing because of the Increasing urban population and the Sharp increase in motor vehicles. Development of public transport is the Irreplaceable way for the Residents safe and orderly travel. The high-quality of Public transport management and public services is
4、a effect way to attract People take bus. and the important measure for China to solve the traffic problems. The bus stop device is a very important Part of Public transport system. The Advanced design of the device can serve people well and improve the Service level of public transportation systems.
5、At present, the city buses have generally installed the station voice system which gives the passengers a very comfortable experience. However, most of the system is manual. The driver have to control it when the car entering and leaving the station. At this time, the traffic condition is so complic
6、ated that it usually brings security risks. The paper design a bus automated voice system with Atmel Companys AT89C51 single-chip. Using JHD162A LCD to display the stations information, ISD1700 series voice chip controls the voice paragraph and DF wireless transceiver module,PT2262/PT2272 chip to ac
7、hieve the signals wireless transmission and identification. Finally, all the modules are controlled by AT89C51 and the simulation of the system. KEY WORDS: AT89C51,ISD1700s chip,DF wireless transceiver modules,PT2262/PT2272 chi,;JHD 162A目录 前言1第1章 设计概述21.1 课题的研究意义21.2 国内外现状及发展趋势21.3课题设计介绍3第2章 概要设计42.
8、1 设计思路42.2 系统框图42.3 模块设计分析52.3.1 无线收发编解码模块52.3.2 语音模块52.3.3 语音模块62.4 系统体系结构6第3章 硬件设计73.1 硬件电路设计73.1.1 主控芯片AT89C5173.1.2 语音芯片ISD17283.1.3 DF无线收发模块133.1.4 DF JHD162A液晶显示模块17第4章 软件设计204.1系统程序流程图204.2程序子函数模块代码214.3系统任务设置26第5章 电路设计与绘制305.1电路板制作软件Protel 99 SE介绍305.2 电路设计与绘制305.2.1 电路原理图315.2.2 转化成CAD图纸32结
9、论33谢 辞34参考文献35外文资料翻译36前言从1831英国人沃尔特汉考克为他的国家制造出了世界上第一辆装有发动机的公共汽车起,到今天,公交车已经历经了将近200年的发展过程。从最初的“闷罐头”到如今配套的空调系统;从专人售票到无人售票;从人工报站到半自动语音报站,公交车向着越来越人性化的方向发展。可是目前存在的一个问题,半自动语音报站系统需要司机在车进出站时人工操作,由于这两个时间点往往是路面情况最复杂的时刻,因此也给行驶中的车辆带来了安全隐患。论文的目标就是彻底抛弃人工操作,实现公交进出站的全自动语音报站。利用AT89C51单片机、ISD1700系列语音芯片、JHD162A LCD液晶模
10、块以及DF无线数据收发模块来实现所需要的功能。单片机体积小,重量轻,具有很强的灵活性而且价格便宜,得到越来越广泛的运用,例如工业控制领域、家电产品,智能化仪器仪表,计算机外部设备,特别是机电一体化产品中都有重要的用途。20世纪80年代中期,Intel公司将8051内核使用权以专利互换或出售的形式转给世界许多著名IC制造厂商,这样8051就变成有众多制造厂商支持的,发展出上百个品种的大家族。到目前为止,其它任何一个单片机系列均未发展到如此的规模。正因为51单片的运用是如此广泛,因此学习单片机的运用是非常重要的。学好单片机也是学习其他嵌入式控制器如ARM、DSP的基础,任何嵌入式控制器都离不开单片
11、机种所涵盖的如中央处理器,定时器、中断控制器,IO口控制器,串行通讯控制器,I2C总线控制器,片内外存储控制器,汇编语言,C语言,操作系统的概念。因此说学好单片机,再去学习其他嵌入式控制器如ARM、DSP是比较简单的。可以说学好单片机是其它进阶微处理器的一个台阶1。本次设计的课题是“基于单片机的公交语音自动报站系统”,设计中利用无线收发模块及编解码芯片实现站台的自动识别,通过单片机对无线模块、液晶模块及语音模块的综合控制实现全自动语音报站的功能。 第1章 设计概述 1.1 课题的研究意义目前随着城市区域的扩大、旅游资源的发展、城市人口的增加、人民生活水平的提高,公交车己经成为城市人民生活不可替
12、代的交通工具,它的运行状况直接影响到人们的生活,同时也成了衡量当地城市形象的一个标准。因此,发展良好的公交服务事业将给人们的生活带来很大的方便,进而提高当地城市形象。近年来单片机技术迅猛发展,广泛应用于诸多领域,在公交事业上已经运用单片机来实现公交报站这项功能。但由于现在的公交车大部分还是采用的人工手动控制的报站器,这不但影响了公交司机的正常驾驶,分散了驾驶员的注意力,同时也加重了他的工作的负担。不过这相对于以前的人工报站已经有了大的提高,但同时由于人工控制就存在着差错,给人们的出行带来不便。为了使大家的生活更加便捷,让公交车驾驶员的工作量能有效减轻,减少报站出错等的问题,故运用单片机技术、语
13、音芯片技术、无线收发技术以及液晶显技术溶于一体设计出既能手动又能自动报站的公交语音自动报站系统,使每辆公交车都能准确无误的实现报站,让每位乘客准确知道自己的位置。 1.2 国内外现状及发展趋势现今社会,公交事业关乎到大多数城市居民的出行,可公交车上的报站系统依然无法满足大家对其的要求。现在普遍使用的是人工按键报站系统,而此系统存在二个弊端:(1)报站不准确:因驾驶员操作报站系统时经常会按错键或忘按键,而且在调整系统时会连续报出几个站点,这样使不熟悉线路站点的乘客不知所措。(2)安全隐患:每次报站时到需要由驾驶员对报站器进行操作,而在车辆车辆起动和进站时往往是路面情况最复杂的时候,这样驾驶员既要
14、对行驶中的公交车进行操作,同时还要兼顾报站系统,因此给行驶中的车辆和行人带来一定的安全隐患。目前我国城市公交报站主要有三种方式:(1)人工报站:一般是由当地人用方言来进行报站,这样给外地乘客带来很大的不便,但这种方式已逐渐被替代。(2)半自动报站:这种报站方式是现在运用普遍的,但由于此报站系统需要驾驶员来控制,故会有错报、误报现象,并且还存在安全隐患。(3)自动报站系:这种报站方式实现了智能化,无需驾驶员参与,系统自动识别车站,比较准确,但易出现问题,且价格昂贵。故研究这种方式较多。虽然国能外都在研究公交自动报站系统,但采用的技术手段不一样,如:采用GPS定位系统自动报站等等。这些开发成本较高
15、,且难以实现普及,特别是一些中小城市难以负担,故开发一种综合性强的、且价格交低、易于实现普及的系统是公交事业迫切需要的的。1.3课题设计介绍 根据对公交报站器的调研,最后确定采用单片机来设计既能手动又能自动报站的公交语音自动报站系统。此设计主要采用了AT89C51单片机、JHD162A LED显示模块、DF无线收发模块及PT2262、PT2272编解码芯片、ISD1700系列语音芯片来设计选用TMEM公司的AT89C51作为控制芯片,成本低,开发周期短,配合各种专用芯片的使用能够实现丰富的功能。并且51单片机具有高效能,资源占用率低等特点。目前51单片机的使用非常广泛,关于51单片机设计开发的
16、资料非常丰富,很适合初学者自学。使用C语言编程可以实现丰富的功能。第2章 概要设计 2.1 设计思路本系统采用两种工作模式,分别为自动模式和手动模式。当自动模式出现问题时可以切换到手动模式进行应急操作,保证系统的正常运行。本次设计采用一个AT89C51单片机作为接收端的控制器。在每个站台上安装上无线发射装置,信号由无线发射头通过PT2262编码芯片不断向一定半径范围内发射无线信号。而公交车上则安装主体器件。包括JHD 162A液晶显示模块、无线接收识别模块以及语音播报模块等。无线接收识别模块由无线接收头通过PT2272解码芯片解码接收到的信号。C51对无线接收模块的端口进行扫描,当公交车即将到
17、站进入信号范围时,端口电平发生改变,C51识别到后先调用语音芯片内部播放指针,让其指向预置的数据段,并进行播报。同时改变LCD的显示内容,将下一站的站名进行更新。接着下车指示灯亮起,通知到站乘客下车。车子驰离站台后信号消失,指示灯熄灭。2.2 系统框图图2-1系统框图(手动模式) 图2-2系统框图(自动模式)2.3 模块设计分析2.3.1 无线收发编解码模块本次设计采用的编解码芯片PT2262和PT2272除了地址编码必须完全一致,振荡电阻还必须匹配,否则接收距离会变近甚至无法接收。这里在编码端选用1.2M电阻,解码端选用200K电阻。该模块要实现的功能有两点:1、发射端通过PT2262编码发
18、射调幅AM信号。2、接收端通过PT2272解码收到的AM信号,并将状态变化输出给C51单片机。2.3.2 语音模块ISD1700系列语音芯片有两种工作模式,分别为按键触发模式与SPI控制模式。鉴于两种模式实现的功能一致这里采用单片机输出模拟按键信号实现对语音芯片的控制。实现的功能有:1、录音2、播放3、快进4、擦除5、复位6、音量调节2.3.3 语音模块该模块需要实现的功能主要是:1、实现西文字符的显示2、显示公交线路与下一站站名2.4 系统体系结构图2-3系统体系结构图第3章 硬件设计 3.1 硬件电路设计图3-1硬件电路图 3.1.1 主控芯片AT89C51AT89C51是美国ATMEL公
19、司生产的低电压,高性能CMOS 8位单片机,片内含4k byte的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MSC-51指令系统,片内置通用8位中央处理器和FLASH存储单元,适合在开发阶段的使用。AT89C51提供以下标准功能:4k字节FLASH闪存存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止C
20、PU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位1。图3-2管脚配置图13.1.2 语音芯片ISD17202ISD1700系列芯片是华邦公司新推出的单片优质语音录放电路,是ISD1400S与ISD2500S的升级产品。该芯片提供多项新功能,包括内置专利的多信息管理系统,新信息提示(vAlert),双运作模式(独立&嵌入式),以及可定制的信息操作指示音效。芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等的全方位整合系统功能。特点:可录、放音十万次,存储内容可以断电
21、保留一百年两种控制方式,两种录音输入方式,两种放音输出方式可处理多达255段以上信息有丰富多样的工作状态提示多种采样频率对应多种录放时间音质好,电压范围宽,应用灵活,价廉物美电特性:工作电压:2.4V5.5V,最高不能超过6V静态电流:0.5-1uA工作电流:20mA可利用振荡电阻来自定芯片的采样频率,从而决定芯片的录放时间和录放音质,如图3-4。而芯片的采样率可以通过外部振荡电阻来调节,如图3-5。图3-3 ISD1700的引脚2图3-4 ISD1700的参数表2图3-5 ISD1700的采样率调节表2独立按键工作模式:ISD1700的独立按键工作模式录放电路非常简单(后附图),而且功能强大
22、。不仅有录、放功能,还有快进、擦除、音量控制、直通放音和复位等功能。这些功能仅仅通过按键就可完成。而且按键信号相当于一个负脉冲信号,可用软件模拟出来。在按键模式工作时,芯片可以通过/LED管脚给出信号来提示芯片的工作状态,并且伴随有提示音,用户也可自定4种提示音效。录音操作:按下REC键,/REC管脚电平变低后开始录音,直到松开按键使电平拉高或者芯片录满时结束。录音结束后,录音指针自动移向下一个有效地址。而放音指针则指向刚刚录完的那段语音地址。放音操作:放音操作有两种模式,分别是边沿触发和电平触发,都由/PLAY管脚触发。A)边沿触发模式:点按一下PLAY键,/PLAY管脚电平变低便开始播放当
23、前段的语音,并在遇到EOM标志后自动停止。放音结束后,播放指针停留在刚播放的语音起始地址处,再次点按放音键会重新播放刚才的语音。在放音期间,LED灯会闪烁直到放音结束时熄灭。如果在放音期间点按放音键会停止放音。B)电平放音模式:如果一直按住PLAY键,使/PLAY管脚电平持续为低,那么会将芯片内所有语音信息播放出来,并且循环播放直到松开按键将/PLAY管脚电平拉高。在放音期间LED闪烁。当放音停止,播放指针会停留在当前停止的语音段起始位置。快进操作:点按一下FWD按钮将/FWD端拉低,会启动快进操作。快进操作用来将播放指针移向下一段语音信息。当播放指针到达最后一段语音处时,再次快进,指针会返回
24、到第一段语音。当下降沿来到/FWD端时,快进操作还要决定于芯片当时的状态:A)如果芯片在掉电状态并且当前播放指针的位置不在最后一段,那么指针会前进一段,到达下一段语音处。B)如果芯片在掉电状态并且当前播放指针的位置在最后一段,那么指针会返回到第一段语音处。C)如果芯片正在播放一段语音(非最后一段),那么此时放音停止,播放指针前进到下一段,紧接着播放新的语音。D)如果芯片正在播放最一段语音,那么此时,放音停止,播放指针返回到第一段语音,紧接着播放第一段语音。擦除操作:擦除操作分为单段擦除和全体擦除两种擦除方式,区别如下:A)单个擦除:只有第一段或最后一段语音可以被单个擦除。点按一下ERASE健将
25、/ERASE管脚拉低,这时具体的擦除情况要看播放指针的状态:如果芯片空闲并且播放指针指向第一段语音,则会删除第一段语音,播放指针指向新的第一段语音(执行擦除操作前的第二段)。如果芯片空闲并且播放指针指向最后一段语音,则会删除最后一段语音,播放指针指向新的最后一段语音(执行擦除操作前的倒数第二段)。如果芯片空闲并且播放指针指向没有指向第一或最后一段语音,则不会删除任何语音,播放指针也不会被改变。如果芯片当前正在播放第一段或最后一段语音,点按下ERASE键会删除当前语音。B)全体擦除:当按下ERASE键将/ERASE管脚电平拉低超过2.5秒钟,会触发全体擦除操作,删除全部语音信息。复位操作:如果用
26、RESET控制此管脚,建议/RESET管脚与地之间连接一个0.1F电容。当/RESET被触发,芯片将播放指针和录音指针都放置在最后一段语音信息的位置。音量操作:点按一下VOL键将/VOL管脚拉低会改变音量大小。每按一下,音量会减小一档,再到达最小档后再按的话,会增加音量直到最大档,如此循环。总共有8个音量档供用户选择,每一档会改变4dB。复位操作会将音量档放在默认位置,即最大音量。FT直通操作:将/FT管脚与GND短接,持续保持在低电平会启动直通模式。出厂设定的是在芯片空闲状态,直通操作会将语音从Analn端直接通往喇叭端或AUD输出口。在录音期间开启FT功能,会同时录下Analn进入的语音信
27、号。提示音(SE)编辑:ISD1700S中设计了4种声音来提示当前的工作状态,分别为SE1,SE2,SE3,SE4。SE1为录音,下一曲或全部擦除的开始;SE2为录音,单首擦除或最后一曲结束时;SE3为无效的擦除操作;SE4为全部擦除成功。ISD1700储存体系原理:图3-6 ISD1700储存体系示意图2ISD1700s典型应用电路: 图3-7 MIC录音电路2图3-8 SPI接口控制电路23.1.3 DF无线收发模块5 无线数据传输广泛地运用在车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火
28、系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、无线232数据通信、无线485/422数据通信、数字音频、数字图像传输等领域中。无线发射模块 图3-9 R315无线发射模块电路原理图3主要技术指标:1.通讯方式:调幅AM2.工作频率:315MHZ3.频率稳定度:75KHZ4.发射功率:500MW5.静态电流:0.1UA6.发射电流:350MA7.工作电压:DC 312VDF数据发射模块的工作频率为315M,采用声表谐振器SAW稳频,频率稳定度极高,当环境温度在112585度之间变化时,频飘仅为3ppm/度。特别适合多发一收无线遥控及数据传输系统。声表谐振器的频率稳定度仅次于晶体,而
29、一般的LC振荡器频率稳定度及一致性较差,即使采用高品质微调电容,温差变化及振动也很难保证已调好的频点不会发生偏移。DF发射模块未设编码集成电路,而增加了一只数据调制三极管Q1,这种结构使得它可以方便地和其它固定编码电路、滚动码电路及单片机接口,而不必考虑编码电路的工作电压和输出幅度信号值的大小。比如用PT2262等编码集成电路配接时,直接将它们的数据输出端第17脚接至DF数据模块的输入端即可。DF数据模块具有较宽的工作电压范围312V,当电压变化时发射频率基本不变,和发射模块配套的接收模块无需任何调整就能稳定地接收。当发射电压为3V时,空旷地传输距离约2050米,发射功率较小,当电压5V时约1
30、00200米,当电压9V时约300500米,当发射电压为12V时,为最佳工作电压,具有较好的发射效果,发射电流约60毫安,空旷地传输距离700800米,发射功率约500毫瓦。当电压大于l2V时功耗增大,有效发射功率不再明显提高。这套模块的特点是发射功率比较大,传输距离比较远,比较适合恶劣条件下进行通讯。天线最好选用25厘米长的导线,远距离传输时最好能够竖立起来,因为无线电信号传输时收很多因素的影响,所以一般实用距离只有标称距离的20甚至更少,这点需要在开发时注意考虑。DF数据模块采用ASK方式调制,以降低功耗,当数据信号停止时发射电流降为零,数据信号与DF发射模块输入端可以用电阻或者直接连接而
31、不能用电容耦合,否则DF发射模块将不能正常工作。数据电平应接近DF数据模块的实际工作电压,以获得较高的调制效果。DF发射发射模块最好能垂直安装在主板的边缘,应离开周围器件5mm以上,以免受分布参数影晌。DF模块的传输距离与调制信号頻率及幅度,发射电压及电池容量,发射天线,接收机的灵敏度,收发环境有关。一般在开阔区最大发射距离约800米,在有障碍的情况下,距离会缩短,由于无线电信号传输过程中的折射和反射会形成一些死区及不稳定区域,不同的收发环境会有不同的收发距离。DF无线接收模块超外差式RX3310接收模块: 图3-10超外差接收模块等效原理图3主要技术指标:1.通讯方式:调幅AM2.工作频率:
32、315MHZ(声表上标注为316.8)3.频率稳定度:75KHZ4.接收灵敏度:102DBM5.静态电流:5MA6.工作电流:5MA7.工作电压:DC 5V8.输出方式:TTL电平超外差接收机对天线的阻抗匹配要求较高,要求外接天线的阻抗必须是50欧姆的,否则对接收灵敏度有很大的影响,所以如果用1/4波长的普通导线时应为23厘米最佳,要尽可能减少天线根部到发射模块天线焊接处的引线长度,如果无法减小,可以用特性阻抗50欧姆的射频同轴电缆连接(天线焊点右侧有一个专门的接地焊点)。编解码芯片的使用5PT2262/2272是台湾普城公司生产的一种CMOS工艺制造的低功耗低价位通用编解码电路,PT2262
33、/2272最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码,PT2262最多可有6位(D0-D5)数据端管脚,设定的地址码和数据码从17脚串行输出,可用于无线遥控发射电路。PT2262/2272特点:CMOS工艺制造,低功耗,外部元器件少,RC振荡电阻,工作电压范围宽:2.615v,数据最多可达6位,地址码最多可达531441种。应用范围:车辆防盗系统、家庭防盗系统、遥控玩具、其他电器遥控。 图3-11 PT2262器件引脚5 图3-12 PT2272器件引脚5DF无线数据模块和PT2262/PT2272等专用编解码芯片使用时,连接很简
34、单只要直接连接即可,传输距离比较理想,一般能达到600米以上,如果和单片机配合使用时,会受到单片机的时钟干扰,造成传输距离明显下降,一般实用距离在200米以内。编码芯片PT2262发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。当发射机没有按键按下时,PT2262不接通电源,其17脚为低电平,所以315MHz的高频发射电路不工作,当有按键按下时,PT2262得电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平期间
35、315MHz的高频发射电路起振并发射等幅高频信号,当17脚为低平期间315MHz的高频发射电路停止振荡,所以高频发射电路完全收控于PT2262的17脚输出的数字信号,从而对高频电路完成幅度键控(ASK调制)相当于调制度为100的调幅。3.1.4 DF JHD162A液晶显示模块4特性:显示内容:16字符x 2行字符点阵:5 x 8点驱动方式:1/16D接口:图3-13 JHD162A器件引脚说明4基本操作时序:读状态:RSL,RWH,EH写指令:RSL,RWL,D0D7=指令码,E高脉冲读数据:RSH,EH写数据:RSH,RWL,D0D7=数据,E高脉冲控制器内部带有808位(80字节)的RA
36、M缓冲区。对应关系如图3-18。图3-14 RAM地址映射图4JHD162A各种功能命令设置如下表:表3-1显示模式指令码表3-2显示开/关及光标设置表3-3数据指针设置表3-4其它设置第4章 软件设计 4.1系统程序流程图为满足系统程序设计,根据设计要求和设计思路以及各个模块设计系统流程图如下所示:图4-1系统程序流程图4.2程序子函数模块代码按键扫描驱动该模块为语音芯片内部集成模块。无线接收端扫描函数该函数采用while语句判断P31端口是否出现下降沿,如果出现下降沿则往下执行,如果没有则等待。while(P31); /扫描P31端口delay(); /延时防止尖峰信号的干扰红外发射模块(
37、实验室演示用)void send() /41.7KHZ红外发送re=0;TMOD=0x02; /计数器工作模式EA=1;TH0=0xf3;TL0=0xf3;ET0=1;void ttl(void)interrupt 1/定时器/计数器0(TF0)re=re;图4-2信号发射波形通过设定采用定时器/计数器0以方式2工作。定时/计数方式2是将两个8位计数器THx、TLx分成独立的两部分,组成一个8位可自动再装入的定时器/计数器。由TLx作为8位计数器,THx作为计数初值寄存器,设置初值时同时送THx和TLx,启动后,当TLx计数满回0产生溢出,不仅置为TFx,向主机请求中断,并且控制THx中的初值
38、重新装入TLx中,继续下一轮计数。通过软件只需设置一次初值,启动后可连续无限次定时/计数运行,上一次计数结束,立即继续下一次,中间不会丢失计数信号。重新再装入将不影响THx的内容7。系统采用12MHz晶振,时钟周期为1/12 us,机器周期则为1us。中断计数时间为(FF-F3)*2*1us=12us。如果忽略指令的执行时间,那么re的电平改变周期为24us。发射频率为1/24us41.7KHz。语音模块该模块采用单片机端口输出负脉冲信号模拟按键信号对语音芯片进行控制。P24=0;/模拟负脉冲FWD有效,播放指针指向下一段delay();P24=1;delay();/给语音芯片一定的执行时间1
39、6P25=0;/模拟负脉冲PLAY有效,播放当前段delay();P25=1;本模块程序流程如图4-3。图4-3语音芯片运行流程液晶显示模块1、内部等待函数LCD_Wait(void)unsigned char LCD_Wait(void)LcdRs=0; /读状态LcdRw=1; _nop_();LcdEn=1; _nop_();while(DBPort&0x80); /判断读写状态使能标志LcdEn=0;return DBPort;2、向LCD写入命令或数据子函数LCD_Write()void LCD_Write(bit style,unsigned char input)LcdEn=0;
40、LcdRs=style;LcdRw=0; _nop_();DBPort=input; _nop_();/注意顺序LcdEn=1; _nop_();/注意顺序给En一个高脉冲LcdEn=0; _nop_();LCD_Wait();3、设置显示模式子函数LCD_SetDisplay()该函数可以根据表3-2设置显示的开关、光标的有无、光标是否闪动。void LCD_SetDisplay(unsigned char DisplayMode)LCD_Write(LCD_COMMAND,0x08|DisplayMode); /|算术或4、设置输入模式子函数LCD_SetInput()该函数可根据表3-2
41、设置画面是否平移以及平移的方向。void LCD_SetInput(unsigned char InputMode)LCD_Write(LCD_COMMAND,0x04|InputMode);5、初始化LCD子函数LCD_Initial()void LCD_Initial()LcdEn=0;LCD_Write(LCD_COMMAND,0x38);/8位数据端口,162行显示,5*7点阵LCD_Write(LCD_COMMAND,0x38);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);/开启显示,无光标LCD_Write(LCD_COMMAND,LCD_CLEA
42、R_SCREEN);/清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);/AC递增, 画面不动6、显示定位子函数GotoXY()void GotoXY(unsigned char x,unsigned char y)if(y=0)LCD_Write(LCD_COMMAND,0x80|x);/第一行设数据指针地址if(y=1)LCD_Write(LCD_COMMAND,0x80|(x-0x40);7、显示字符子函数Print()void Print(unsigned char*str)while(*str!=0)LCD_Write(LCD_DATA,*str);str+
43、;delay1();站点信息设置及调用用数组定义站点信息字符串:uchar code dis1=ZhaoHu Z;uchar code dis2=JuYuan Z;uchar code dis3=Jin Shan;uchar code dis4=Shang Du;uchar code dis5=Shi Da;uchar*p;用case语句判断要显示的站点switch(i)19case 0:p=dis1;break;case 1:p=dis2;break;case 2:p=dis3;break;case 3:p=dis4;break;case 4:p=dis5;break;4.3系统任务设置 任
44、务体系划分:整个任务体系大致分为5个任务,任务之间通过发送信号实现任务任务0:进行系统任务初始化任务1:通过中断系统发射一定频率的TTL电平信号。(实验室演任务2:识别无线信号任务3:根据任务2控制语音芯片任务4:根据任务2控制液晶显示主程序代码:#includeREGX52.H#includeLCD1602.h#define uchar unsigned charsbit P31=P31; /无线信号接收端sbit P24=P24; /控制快进sbit P25=P25; /控制播放sbit led=P10; /到站指示灯sbit re=P30; /41.7KHzTTF电平发射端sbit re
45、set=P34; /语音芯片复位char i;uchar code dis1=ZhaoHu Z; /站点内容可更新或增加uchar code dis2=JuYuan Z;uchar code dis3=Jin Shan;uchar code dis4=Shang Du;uchar code dis5=Shi Da;uchar*p;void Delay1ms(unsigned int count) /延时1msunsigned int i,j;for(i=0;icount;i+)for(j=0;j120;j+);void delay()int i,j;for(i=0;i255;i+)for(j=0;j120;j+);void send() /41.7KHZ红外发送re=0;TMOD=0x02;/计数器工作模式:方式2自动再装入的8位EA=1;/允许全部中断TH0=0