公交车语音报站系统毕业设计.doc
毕 业 设 计 论 文题 目: 基于单片机的公交自动报站器设计 学 院: 电气与信息工程学院 专 业: 自动化 姓 名: 刘小洁 学 号: 092410102 指导老师: 宁蕴緋 完成时间: 2014年5月23日 摘要随着国民经济的快速发展,我国城市人口高度集中并大幅增长、交通需求不断扩大导致城市道路交通拥挤,乘坐公交车出行是解决我国城市交通发展问题和实践低碳环保绿色出行的有效途径。随着近年来城市公交事业迅速发展,之前靠售票员报站的方式已经不能满足实际需要,而公共汽车的报站直接影响到服务的质量。本设计介绍了基于单片机的公交车语音报站系统的设计,对系统软件设计和硬件实现进行了详细的描述,主要是以STC89C52单片机为核心控制元件,WT588D语音芯片为录音模块,以液晶屏为显示模块,以独立按键K1、K2为输入设备,扬声器为语音输出设备,设计一个带语音报站和液晶显示功能的公交车报站系统。关键词:公交报站 单片机语音提示液晶屏 AbstractWith the take-off of the national economy, China's urban population is remarkably exploding. The increasing demand for transports gives rise to traffic congestion in urban areas. Therefore, public bus system is not only an efficient way to solve the problem of traffic congestion but a way to put the “Low-Carbon Transportation” into of date. The recent development of public transportation requires a phonetic system which can automatically announce bus stations.And the automatic stop announcer directly affects the service bus station reporting quality.This paper introduces the automatic stop announcer based on STC89C52 and aims to explicitly describe the software and hardware applied in the system. The main features of the system are that STC89C52 is used for core controlling components, WT588D pronunciation chip for recording, LCD12864 screen for video displays, independent key K1 and K2 for input device, loudspeaker for output device. This is designed for a stop announcement and display system for buses. Key words: Bus stop announcer MicrocontrollerVoice promptLCD screen目录摘要IABSTRACTII1绪论11.1课题研究的背景11.2课题研究的意义11.3课题研究的主要内容22系统总体设计方案32.1功能要求32.2设计思路32.3方案选择32.3.1显示模块选择方案32.3.2按键选择方案42.3.3芯片选择方案42.4 总体设计框图53系统硬件设计63.1概述63.2主控模块63.2.1STC89C52芯片的简介63.2.2主控模块电路原理图93.3语音芯片模块103.3.1WT588D芯片简介103.3.2语音芯片模块电路原理图113.4LCD液晶显示模块123.4.1组成结构133.4.2引脚功能133.5按键控制模块143.5.1按键控制模块电路原理图144系统软件设计154.1 系统的主流程图154.2显示模块设计164.3键盘扫描模块设计175系统分析与调试186结论与展望20致谢21参考文献22附录A 实物照片23附录B 硬件原理图24附录C程序25 1绪论1.1课题研究的背景随着社会经济的发展,城市化进程越来越快,城市人口急剧增加从而使城市交通压力不断增大,在倡导绿色低碳环保的今天,公交车作为城市公共交通的重要方式,是城市居民出行的重要工具。因为公交车具有方便、快捷、经济实惠等优点。公共汽车为外出的人们提供了方便快捷的服务,而公共汽车的报站直接影响到服务的质量。随着国民经济的持续发展和各级政府对县域经济的高度关注,乡镇的城市化正在全国如火如荼地展开,基础设施得到了突飞猛进的发展。在这个过程中,乘坐公交车逐步取代了以前落后的出行方式,成为广大城乡人民短途出行的首选。近年来城市公交事业迅速发展,以前靠售票员报站的方式已经不能满足实际需要,很多大中城市都在推广实行无人售票。在广大乡镇,公交车如何实现自动报站还缺乏人们的重视。目前,公交车自动报站主要有以下几种方式:一种是通过全球定位系统(GPS)的用户终端接收工作卫星的导航信息,从而解算出车辆的经纬度信息,进而计算出实时坐标,将其与站点坐标相比较,当车辆驶入站点一定距离范围内时,不用人工干预,系统自动报站;另一种是利用无线射频识别(Radio Frequency Identification)技术,在每一个公交站台设置一个具有唯一ID的射频发射器,采用间歇工作方式发射信号,当公交车即将到达车站时,车载系统接收到站信号并解码出站台的ID号,由单片机控制自动播放对应站台编号的报站语音;还有一种是对车轮轴的转角脉冲进行计数,将计数值和预置值对比,即可确定报站时刻,达到准确报站的目的。然而,这三种方式都不太适合乡镇的发展现状。第一种设备造价过高,定位精度也难以达到要求;第二种站台建设投入较大,站点一旦变更,射频发射装置即须移动,较为麻烦;第三种需要公交线路严格固定,稍有改变,报站就难以准确。1.2课题研究的意义传统由乘务人员人工报站的方式工作强度大且效果差,并需要大量的人力资源。而通过单片机和语音芯片的结合,使得公交车到站信息及提示信息以语音和显示的方式告知乘客,为市民提供更人性化,完善的服务,并且节省了大量的人力资源。公交车语音报站系统还可以结合每条线路的特点和实际情况自主设定不同的报站方式和站点设置,在为乘客提供方便的同时也便于公交车的运营和司乘人员的操作。1.3课题研究的主要内容本设计采用人工按键的操作方式,实现公交车对站名的语音提示和文字显示功能。当公交车到达某一站时,司机或乘务人员只需按动按键,就可以使单片机控制语音模块对站名进行语音提示,并控制显示模组在液晶屏上显示站名。论文主要是对C语言和单片机的一些基本知识、概念的应用学习和研究,以及STC89C52芯片模块、WT588D语音模块和LCD12864液晶屏的开发设计,该设计的目的是设计一个实现单片机与语音控制芯片和显示模块互联的系统。通过按键,系统可播报相应的车站信息或者公益提醒,并通过液晶屏用汉字显示出来。本设计的主要工作有以下几个方面:1、整体方案的设计方案的选择要符合芯片功能的要求,既要保证操作简单易行,便于公交司机操作,又要体现出本产品的特点。本文研究设计的带录音功能的公交车语音报站系统是采用STC89C52单片机和WT588D语音芯片,用来实现公交车站信息的播放能,用LCD12864带中文字库的液晶显示屏实现公交站名的显示。 2、程序流程图及软件设计一个程序要想实现其功能,不能没有次序而盲目下手,必须对其有一个全面的了解后画出流程框图,然后逐个模块的实现其功能,最终把模块之间合理的连接起来,构成完整程序。本设计的软件设计主要包括系统的初始化设计、延时子程序的设计、录音子程序的设计、放音子程序的设计、液晶屏的显示设计、中断程序设计、以及主程序设计等。整个系统程序采用模块化结构设计程序,易于修改和调试,系统软件的开发是用C语言设计的。3、系统原理图及硬件调试本设计在进行硬件原理分析后,需要连接实物进行实际操作,检验自己的设计是否可以行得通。需要在protel DXP环境下画出硬件原理图并进行电气测试,检测无异议后进行硬件系统的调试,为了保证系统的可靠性分析查找,硬件的调试分模块分别进行了模拟。2系统总体设计方案2.1功能要求1、通过STC89C52芯片实现对按键的读取并将所对应的信息送至扬声器同时将到站信息通过液晶屏显示;2、语音芯片WT588D完成语音模块,实现公交站信息的录入及到站时的放音功能;3、采用两个独立按键,作为上下行播放录音的控制键;4、采用LCD12864液晶屏,显示相对应的站的信息;2.2设计思路电路总体上分为主芯片控制部分、语音芯片和液晶显示部分。以STC89C52单片机最小系统作为核心控制电路,以独立按键对上下行放音进行选择,具体显示内容及方式由软件来完成。语音部分由WT588D芯片来实现,它是一个多功能的语音芯片,可以多次重复录放,本设计正是运用此特点,完成录音和放音功能的。具体步骤是:先录入站的信息,存储到芯片内部,建立语音库,并且具体锁定到对应的地址中,通过按键的次序播放不同的信息。2.3方案选择2.3.1显示模块选择方案方案一:用LCD1602液晶显示,但是由于1602主要显示英文和字符,不适合用于带汉字的公交车报站。方案二:采用LCD12864不带字库芯片,但需要用取模软件取模,PROTEUS可以仿真HT1621(1602)KS0108(12864) T6963C(24064),等系列的模块,需先学会仿真软件方案三:采用带字库的LCD12864芯片,可直接调用字库,使用比较方便。鉴于上述对比与分析,本设计采用方案三。2.3.1语音模块选择方案 方案一:采用专门的语音芯片,常用的如ISD4004,可以录入长达8分钟的语音,8K采样率。虽然这些语音芯片音质失真度较小,但背景噪声很大,还得额外加功放,无额外发挥功能。 方案二:WT588D语音模块,PWM和DAC输出方式,PWM输出可直接推动0.5W/8的扬声器,DAC输出外接功放,音质好。 应用范围广,几乎可以涉及到所有的语音场所。 考虑报站需良好音质,而且要求控制方便,所以决定采用方案二2.3.3按键选择方案方案一:采用STC89C52的独立键盘,其独立键盘有4个按键,按键数量符合录音和放音两个按键的需要。方案二:采用STC89C52的矩阵键盘,其矩阵键盘具有16个按键,数量太多,不如独立按键方便。故采用K1和K2两个独立按键,K1为上行键,按第一下时,对应播放第一站信息,同时调用显示子程序,在液晶屏上显示对应信息。按第二下时,对应播放第二站信息,并在液晶屏上显示信息。K2为下行键,按下时,播放最后一段语音信息并显示,按下第二下时,播放倒数第二段语音信息并显示。2.3.4芯片选择方案方案一:AT89C51是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。其片内的4K程序存储器是FLASH工艺的,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护我们的劳动成果。再者,AT89C51目前的售价比8031低,市场供应也很充足。AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于4K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需l0ms。AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的加密手段,能完全保证程序或系统不被仿制。PO口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。方案二:完全兼容AT89C51指令系统的STC89C52单片机1、AT89C51不带ISP下载,要用下载器才行,STC89C52可以用USB转串口下载,下载软件可以到STC厂家网上去下。2、STC单片机执行指令的速度很快,大约是AT的3-30倍,所以在AT上好使的程序在STC上不一定好用,最典型的例子就是那些对时序有严格要求的模块,比如IIC,DS18B20、DS1302等的时序。再者,由于执行速度的加快,非定时器控制的精确延时也会受到一定影响,用STC时注意得加长延时,大约是AT的1030倍。3、STC单片机对工作环境的要求比较低,电压低于5伏时仍然正常工作,甚至3伏到4伏之间都还可以工作,然而这样的环境下AT肯定不行了,所以当一个系统用STC单片机好用,但用AT的单片机不工作时,直接查最小系统,看单片机的供电是否正常。比较这两种方案,由于在学校期间学过数字电路、单片机原理、C语言程序设计,综合考虑单片机的各部分资源和作为学生能够获得的资源,经过对比此次设计要求,我选择用STC系列芯片完成。而且学校也提供了相应的硬件操作平台,实际操作起来比较方便,故STC为更合理的选择。2.4 总体设计框图按照系统功能的具体要求,在保证实现其功能的然础上,尽可能降低系统成本。总体设计方案围绕上述思想,初步确定系统的方案如图2.1所示:STC89C52单片机P2.2-P2.7P3.4-P3.7P3.2-P3.3LCD12864液晶显示屏WT588D语音模块独立按键图2.1系统初步方案 从图中可以看出,系统有微处理器模块、液晶屏显示模块、独立按键模块和语音模块组成。在方案设计中,遵循简洁至上的原则,因此所有的外围模块采用串行方式与微处理器模块接口。该设计以STC89C52系列单片机为控制核心,实现公交车语音报站基本功能。在设计系统时,为了更好地采用模块化设计法,分步的设计各个单元功能模块,系统的硬件部分可以分为按键设定、单片机控制、LCD显示和语音控制四大部分。3系统硬件设计3.1概述此次的毕业设计主要由4个大的模块构成,分别是主控模块、语音芯片模块、LCD液晶显示模块、按键控制模块,其中主控模块是此次毕业设计的核心模块,主要是指STC89C52芯片,它控制整个系统的运行,利用其各个口分别控制其他模块,使其他模块能够成为一个整体,实现功能的需要;语音模块主要指WT588D芯片;而LCD液晶显示模块是整个系统的辅助模块,用来显示到站信息;按键控制模块则是用按键来控制实现的是哪个功能,对应上行、下行。3.2主控模块3.2.1STC89C52芯片的简介功能特性:STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O口线,看门狗定时器,2 个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz 、三级加密程序存储器 、32个可编程I/O口线 、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。如图3.1所示:图3.1STC89C52芯片管脚说明:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为STC89C52的一些特殊功能口,如表3.1所示:表3.1P3口的第二功能接口第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:ALE为CPU访问外部程序存储器或外部数据存储器提供一个地址锁存信号,将低8位地址锁存在片外的地址锁存器中。单片机在正常运行时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反相振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反相振荡器的输出。XTAL1和XTAL2分别为反相放大器的输入和输出。该反相放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2.2主控模块电路原理图单片机主控模块由STC89C52芯片和晶振复位组成。复位和晶振电路通过接口与单片机各引脚相连,复位电路接到RST口,晶振接到XTAL1口和XTAL2口上。如图3.2,3.3所示:图3.2STC89C52芯片 图3.3晶振复位3.3语音芯片模块3.3.1WT588D芯片简介语音模块采用WT588D语音模块,WT588D是广州唯创与台湾华邦合作研发的一款语音芯片(单片机)。WT588D不仅可以作为一般语音芯片,当从片发声,而且因为I/O口多,带控制功能和外置FLASH存储器,所以能做FLASH单片机;最重要的是还可以按照样品直接投掩膜,管脚完全不用改动,价钱便宜一半。WT588D性能卓越,简单易用,与51单片机有着极为相似的性能。WT588D语音芯片是一款功能强大的可重复擦除烧写的语音单片机芯片。配套WT588D VioceChip上位机操作软件可随意更换WT588D语音单片机芯片的任何一种控制模式,把信息下载到SPI-Flash上即可。软件操作方式简洁易懂,撮合了语音组合技术,大大减少了语音编辑的时间。 MP3控制模式下,完全迎合市场上MP3的播放/暂停、停止、上一曲、下一曲、音量+、音量-等功能; 按键控制模式下触发方式灵活,可随意设置任意按键为脉冲可重复触发、脉冲不可重复触发、无效按键、电平保持不循环、电平保持可循环、非电平保持可循环、单键向前不循环、单键向后不循环、单键向前可循环、单键向后可循环、音量+、音量-、播放/暂停、停止、播放/停止等15种触发方式,最多可控制10个按键触发输出; 3×8按键组合控制模式下能以脉冲可重复触发的方式触发24个地址位语音,所触发地址位语音可在0219之间设置;并口控制模式最多可用8个I/O口进行控制; 一线串口控制模式可通过发码端控制语音播放、停止、循环播放和音量大小,或者直接触发0219地址位的任意语音,发码速度600us2000us; 三线串口控制模式和三线串口控制I/O口扩展输出模式之间可通过发码切换,三线串口控制模式下,能控制语音播放、停止、循环播放和音量大小,或者直接触发0219地址位的任意语音,三线串口控制I/O口扩展输出可以扩展输出8位,在两种模式下切换,能让上一个模式的最后一种状态保持着进入下一个模式。 PWM和DAC输出方式,PWM输出可直接推动0.5W/8的扬声器,DAC输出外接功放,音质好。 应用范围广,几乎可以涉及到所有的语音场所,如报站器、报警器、提醒器、闹钟、学习机、智能家电、治疗仪、电子玩具、电讯、以及各种自动控制装置等场所,工艺上达到工业应用的要求。 WT588D的特性:1.外挂2M32M的Flash,时间从321054秒。掩膜为内置ROM,最长支持400秒。采样率支持6K22K2.DAC输出:13Bit,PWM输出:12Bit3.内置0.5W功放,可直接推动0.5W/8扬声器4.支持加载MP3/WAV/WMA三种音频格式5.工作电压:DC2.8V5.5V6.静态休眠电流:<10uA7.可通过电脑软件,随意组合语音,可插入静音,插入的静音不占用内存的容量,一个已加载语音可重复调用到多个地址,重复调用的,不占空间,这是其它芯片所不具备的8.USB下载方式,支持在线下载/ISP下载9.7种控制方式: MP3控制模式、按键控制模式、3×8矩阵控制模式、并口控制模式、一线串口控制模式、三线串口控制模式以及三线串口控制I/O口扩展输出模式10.掩膜后的管脚与原来一致,性能一样,音质一样。不用更改电路。且不用焊接FLASH11.最多可加载500段语音;210段可控制地址位,单个地址位最多可加载128段语音,地址位内的语音组合播放;12.插入的静音时间范围10ms25min;静音不占用存储空间。3.3.2语音芯片模块电路原理图STC89C52和WT588D之间的连接较少,其中P3.7接WT588D的片选引脚RESET,控制WT588D的选通与否。P3.5接WT588D的串行输入引脚VSDA,从该引脚读入放音的地址。P3.3接WT588D的串行时钟引脚VSCL,对于WT588D芯片所需要的连接还有音频信号输出引脚AUDOUT,该引脚通过一个滤波电容与扬声器连接,AMCAP为自动静音端,使用时通过一个电容接地。此外由于WT588D的工作电压为3伏,而单片机所需供电电压为5伏,因此需要采用变压电路得到3伏电压供WT588D使用。语音芯片模块电路原理图如图3.7所示:图3.7语音芯片模块电路原理图3.4LCD液晶显示模块液晶显示器LCD(Liquid Crystal Display)广泛应用于微型计算机系统中,与LED相比,具有功率低,抗干扰能力强,体积小,价格低廉等优点。另外,LCD在大小和形状上更加灵活,接口简单,不但可以显示数字、字符,而且可以显示文字和图形。字符和数字的简单显示,不能满足图形曲线和文字显示的要求。点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及文字,并且可以实现屏幕上下左右滚动、动画、分区开窗口、反转、闪烁等功能,用途十分广泛。现在,随着液晶技术的突破,液晶显示器的质量有了很大的提高,品种也在不断推陈出新,不但有各种规模的黑白液晶显示器,还有绚丽多彩的彩色液晶显示器。在点阵式液晶显示器中,把控制驱动电路与液晶点阵集成在一起,组成一个显示模组,可与八位微处理器接口直接连接,不但使用方便,而且价格也比较便宜。LCD12864液晶显示模组是128×64点阵的文字图形型液晶显示模组,内置国标GB2312码简体中文字库(16×16点阵)、ASCII码字符集(8×16点阵)和64×256点阵显示RAM(GDRAM绘图区域);可与CPU直接接口,提供两种界面来连接微处理机(八位并行及串行连接方式);具有光标显示、画面移位等多种功能。3.4.1组成结构 LCD12864使用ST7920作为行驱动器,同时使用ST7921作为列驱动器。液晶显示中应尽量避免一个字符一半在左半屏显示,另一半在右半屏显示的情况。由于LCD12864液晶显示器是一种带有输出驱动的完整的液晶显示器,八位微处理器可直接与其相连,对液晶屏进行行、列驱动。3.4.2引脚功能LCD12864液晶显示器有20个管脚,分电源线、数据线和控制线。其详细功能如下:1、电源部分VDD 电源正极,通常接+5V。VSS 电源负极,接-5V。为了简化电路,可直接接地。V0 电源控制端,用来调节显示屏灰度。调节该端的电压,可以改变显示屏字符、图形的颜色深浅。2、数据线DB0DB7 数据总线,双向。3、控制信号PSB 并口/串口选择信号,接高电平时选择并口,接低电平时选择串口。模块上一般都有跳线方式将其接高或接低,用户可以不处理(事先须声明是用并口还是串口);也可以选择不在模块上处理,而由用户自己选择并口还是串口。RS(CS) 寄存器选择信号,高电平时为数据操作,低电平时为写指令或读状态(串行方式下为片选信号,低电平有效)。R/W(SID) 读/写选择信号,高电平为读选通,低电平为写选通(串行方式下作数据线使用)。E(SCLK) 读/写使能信号,在E的下降沿,数据被锁存(写)入ST7921;在E为高电平期间,数据被读出(串行方式下作时钟输入)。RST 复位信号,低电平有效。当其有效时,关闭液晶显示,使显示起始行为0。可与单片机相连,由单片机控制;也可直接接VDD,使之不起作用。BLA 背光源正极(LED+5V)。BLK 背光源负极(LED0V)。电路原理图如图3.8所示: 图3.8液晶显示模块电路原理图3.5按键控制模块3.5.1按键控制模块电路原理图按键分为两类:独立式按键和矩阵键盘。独立式键盘是最简单的键盘电路,各个键相互独立,每个按键独立的与一根数据输入线相连接。任何一个键按下时,通过门电路都会向CPU申请中断,在终端服务程序中,读入对应值,从而判断是哪一个按键被按下。查询时,平时所有的数据输入线都通过上拉电阻被连接成高电平;当任何一个键被压下时,与之连接的数据输入线将被拉成低电平,要判断是否有键被压下,只要用位处理指令即可。电路原理图如图3.9所示:图3.9 按键控制模块电路原理图 4系统软件设计4.1 系统的主流程图 在对所要设计的课题有了整体的了解之后,需要先建立程序框架的流程图,对整个设计划分模块,逐个模块实现其功能,最终把各个子模块合理的连接起来,构成总的程序。主程序首先要对整个系统进行初始化,然后将指令传给芯片,设置按键功能,按下按键,看其对应的按键,完成预期的功能。系统的主流程图如图4.1所示:系统初始化K1是否被按下?Y调用按键子程序NK2是否按下?调用录音子程序Y调用语音模块放音子程序调用液晶显示子程序判断按键次数开始结束图 4.1主程序流程图4.2显示模块设计显示模块采用带中文字库的LCD12864液晶屏,首先设定汉字地址表,再根据需显示的汉字地址或坐标显示对应的汉字。在主函数调用第一站信息时,显示对应内容,当调用第二站信息时显示第二站对应内容。如图4.2所示:系统初始化判断K1是否被按下?Y判断a是否为奇数?显示:本站:南洛高速路口下车请当心下站:蓝湾新城小区显示:本站:平顶山市卫校下车请当心下站:崇文路口YNN无操作开始返回图4.2显示模块流程图4.3键盘扫描模块设计键盘扫描采用的是独立按键,确定有无按键按下并判断是哪一个按键。当检测到有键按下后,需要去除键抖动,延时一段时间再做下一步的检测判断,识别出是哪一个键闭合。扫描过程如图4.3所示:系统初始化是否有键按下?判断键值Y执行对应操作N无操作开始返回图4.3键盘扫描流程图5系统分析与调试本设计是在Keil C环境下开发的,Keil C软件支持C语言的编程及调试,运用方便,是做C语言毕业设计者的首选。设计的首要任务是安装和学习使用这个软件,在简单的学习和了解Keil C后,我们便可在此环境下开始了对带录音功能的电子琴的设计工作。在编译完Keil C后,再运用STC_ISP_V480软件烧录到开发板上,实现实物与程序的连接。在烧录前要对STC_ISP_V480进行一些必要的设置。第一步:设置MCU Type为STC89C52RC;第二步:打开编写好并编译的程序文件,它是以.hex为后缀的文件;第三步:选择对应的COM端口,(可在我的电脑的设备管理处查看COM选项);第四步:点击Download/下载,等提示请给MCU上电时,打开开发板上的开关,它就自行烧录了。Keil C程序运行如图5.1所示:图5.1keil C运行图图5.2程序烧录运行图在完成对程序的调试及烧录之后,还需要对其进行演示,把开发板与电脑连上,设置好对应的接口,完成供电及下载。按下按键,判断是否为抖动,若不为抖动,则执行按键按下的功能,再判断是为何种按键,是录音键还是播放键,当判断完成后,对其程序进行执行。当按下录音键则开始录第一段语音,再按下时录制第二段语音。当按下放音键时,播放第一站信息并显示对应文字,按下第二次时,播放第二站信息,显示对应文字。6结论与展望本系统以单片机为核心部件的控制系统,利用软件编程,最终基本上实现了各项要求。虽然系统还存在一些不足,但是,我还是从中学到了很多的解决问题的方法。经过近两个月的奋斗,从确定题目,到后来查找资料,理论学习,实验编程调试,这一切都使我的理论知识和动手能力有了很大的提高。了解了单片机的硬件结构和软件编程方法,对单片机的工作方式有了很大的认知。同时,对一些外围设备比如WT588D芯片等有了一定的了解,学会了对一项工程如何设计:首先,要分析需要设计的系统要实现什么功能,需要什么器件;然后,针对设计购买相应的硬件,选用硬件时不仅要选用经济的,更重要的是如何能更精确更方便的完成系统的要求;再次,对各个硬件的软件实现要弄清楚,如何更好的实现各个硬件的协调,更好的通过主控制器件实现硬件的功能。最后,通过各种测试与调试,让设计更好的完成系统要求。 但因为我的水平有限,此设计中也存在一定的瑕疵,有待于去改善。由于使用的是单片机作为核心的控制元件,配合其它器件,使本控制系统具有性能良好、电路简单、成本低的特点。致谢 毕业设计终于在宁蕴緋老师的悉心指导下完成了。作为一名即将离开大学校门的学生,我把本次设计看做是大学中的最后一门功课,投入了巨大的时间和精力。设计题目是基于单片机的公交自动报站器设计,由于在大学中学习知识的欠缺,仅靠自己的力量完成设计任务的难度是相当大的。在制作设计的过程中,我确实遇到了许多棘手的问题。但是,这些问题在老师和同学的帮助下都被一一解决了。在这段时间里,宁老师言传身教,以她广博的知识,敏锐的洞察力,多年的教学和工作经验,在任务完成中给予我很大的帮助。在本次设计中,我不仅学到了很多科学知识和工作方法,而且学到了作为研究人员应有的治学态度和为人处世的道理,这一切都将使我终身受益。谨在此向宁老师致以崇高的敬意!对给予我支持和帮助的所有同学们表示衷心的感谢! 参考文献1 陈明荧.8051单片机课程设计实训教材M. 北京:清华大学出版社,20032 徐新艳.单片机原理、应用与实践M. 北京:高等教育出版社,20053 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用M. 北京:清华大学出版社,20024 王千.实用电子电路大全M. 电子工业出版社,20015 冯博琴.微型计算机原