《基于单片机的公交报站系统的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的公交报站系统的设计.docx(27页珍藏版)》请在课桌文档上搜索。
1、内容摘要随着我国经济的飞速开展和城市化进程的加深,城市人口口益膨胀,机动车辆急剧增加,城市交通压力越来越大。开展公共交通事业是为居民提供平安有序的出行方式不可替代的途径,公共交通管理的高质量和公共效劳水平的人性化是吸引居民采用公交出行的有效途径,是中国解决交通问题的重要措施。公交车报站系统是公共交通系统的一个重要的组成局部,设计先进的报站系统能为广阔居民乘车提供优质的效劳,提高公交系统的效劳水平.本设计主要研究的是基于AT89C51的公交车自动报站系统,以实现公交车的语音自动报站,即在进站、出站时候自动播报语音提示信息,同时利用LCD液晶屏进行站点信息显示。本设计要求利用AT89C51作为主控
2、芯片完成主控电路的设计,辅助电路要求包括语音电路、LCD显示电路、电源电路等。本设计介绍基于AT89C51单片机实现自动报站功能,该系统能实够实现语音质最好,良好的显示站台信息和站点数,自动报站并及时更新等功能。在附录中,本文还将给出一些重要的程序设计,供参考之用。关健词:自动报站;AT89C51单片机;语音电路:LCDABSTRACTWiththedeepeningofChina,srapideconomicdevelopmentandurbanization,theurbanpopulationswelling,asharpincreaseinmotorvehicles,theincrea
3、singpressureofurbantraffic.Thedevelopmentofpublictransportisanirreplaceablewaytoprovidetheresidentswithasafeandorderlywaytotravel,publictransportmanagementqualityandthehumanizationofthelevelofpublicservicesisaneffectivewaytoattractresidentsusingthebustravelisimportantforChinatosolvethetrafficproblem
4、smeasures.Thebusslopannouncementsystemisanimportantpartofthepublictransportsystem,thedesignofadvancedstopsystemforthemajorityofresidentstravelingtoprovidequalityservices,toimprovethetransitsystem,sservicelevel.ThemainstudyofthisdesignisAT89C51-bus-basedautomaticstopannouncementsystems,inordertoachie
5、vethevoiceofthebusstopinthepitstopoutboundtimeautomaticallybroadcastavoicemessage,whiletakingadvantageoftheLCDscreentositeinformation.ThedesignrequirementsbyAT89C51asthemainchiptocompletethedesignofthemaincontrolcircuit,auxiliarycircuitrequirementsincludevoicecircuits,LCDdisplaycircuit,powercircuit.
6、Thisdesignintroducestheautomaticstopfunction,thesystemcanberealenoughtoachievegoodvoicequality,gooddisplaysiteinformationandthenumberofsites,andautomaticallystopandpromptlyupdatethefunctionalitybasedonAT89C51microcontroller.Atthesupplement,somethinglikeprogramcode,dialogsetcwillbewritten.Ilmaybehelp
7、fulforthefuturedesign.KEYWORDS:SCMAT89S51,ISD1700speechchip,LCD目录第一章.绪论1.1公交报站系统的现状与开展方向11.2公交报站系统设计的意义11.3公交报站系统设计的任务及要求11. 4公交报站系统设计研究内容2第二章.公交报站系统方案设计2寸kv占T卜各ttttttt+k+t+22.2公交报站系统方案比拟和选择22.2,方案一22. 2.2方案二32. 2.3方案选择3第三章.公交报站系统硬件设计53J主控电路设计53. 1.1AT89C51单片机的介绍54. 1.3复位电源电路设计82 .2语音输出电路脉设计103 .3LC
8、D1602液晶显示电路设计143. 3.1LCD液晶显示器件介绍144. 3.2LCD液晶显示流程图165. 3.3LCD1602液晶显示电路设计17第四章软件设计184.1 系统程序流程图184.2 程序子函数模块代码20第五章系统仿真与调试255. 1系统的仿真255.2系统调试27结束语28参考文献29附录程序清单30致谢37第一章绪论随着科学技术的日益开展和进步,城市化进程的加快,公共交通作为城市的根底设施之一,是绝大多出行者的首选交通方式。为了使得人们特别是为外来旅游、出差、就医、工作等急需了解本地的公交路线的人提供高效、方便、快捷的公交系统,使他们能够方便的获得自己所需要的各种信息
9、,以此来减少各种不必要产生的交通流量,缓解交通压力,提高公交车的运作效率,由此公交车自动报站系统便得到了快速开展。在计算机还未普及之前公交车报站管理都是有工作人员人工报站的方式来操作的0随着社会的进步和计算机的快速开展,便有了公交车自动报站系统的出现。语音报站系统在公交车上的广泛使用,这在相当大的程度上免除了乘务人员沿途报站的麻烦,防止了错报、漏报,给许多不熟悉公交线路的乘客带来了方便。1.1 公交报站系统的现状与开展方向公交车报站器在公交事业中占有举足轻重的地位,它直接影响到公交车的效劳质量。Fl前公交车报站有三种方式,一种是利用GPS全球卫星定位系统的公交车报站系统,在司机座位后面隔板上,
10、安装了一台15英寸的液晶电视和GpS信号接收器,安装了这套设备后,公交车在语音报站的同时,通过液晶电视还可以显示到站站名的字幕,这样如果没听清报站的话,通过显示屏,乘客也可以一目了然。当出现紧急情况时,调度中心将会给公交车发出相应的信息,以短信的形式传送到显示屏上,同时车载台会发出相应的提示音;驾驶员也可以通过相应的工具进行回复。目前在美国局部城市GPS卫星定位系统已经投入使用,国内也有此类产品的研制开发,其功能强大,系统稳定,但其投资昂贵,尤其是一些中小城市无法承受。另外两种是手动电子报站和人工报站的方式,而它们都离不开司务人员,加大司乘人员的工作强度。手动电子报站一般有司机或者乘务员控制,
11、经常出现错报,误报的情况。城市公共交通是市民出行的主要交通工具之一。提供舒适,平安、便捷的乘车环境,对于公交企业来说,不仅是应尽的责任,亦是不断追求的目标。1.2 公交报站系统设计的意义近年来单片机技术迅猛开展,广泛应用于诸多领域,在公交事业上已经运用单片机来实现公交报站这项功能。但由于现在的公交车大局部还是采用的人工手动控制的报站器,这不但影响了公交司机的正常驾驶,分散了驾驶员的注意力,同时也加重了他的工作的负担。不过这相对于以前的人工报站已经有了大的提高,但同时由于人工控制就存在着过失,给人们的出行带来不便。为了使大家的生活更加便捷,让公交车驾驶员的工作量能有效减轻,减少报站出错等的问题,
12、故运用单片机技术、语音芯片技术、无线收发技术以及液晶显技术溶于一体设计出既能手动又能自动报站的公交语音自动报站系统,使每辆公交车都能准确无误的实现报站,让每位乘客准确知道自己的位置。1.3 本设计的任务及要求本设计主要设计一种用单片机设计公交车报站系统。利用AT89C51单片机控制语音芯片ISD1700语音芯片模块来控制播报站点信息,站点信息那么通过LCD液晶屏显示出来。该设计可以模拟人声音进行报站和预报站;能准确报站,可及时更新。本设计要求利用AT89C51作为主控芯片完成主控电路的设计,辅助电路要求包括语音电路、LCD显示电路、电源电路等。1.4 设计研究内容根据对公交报站器的调研,本设计
13、主要研究一种采用单片机来设计既能手动又能自动报站的公交语音自动报站系统。此设计主要采用AT89C51单片机、LCD显示模块、ISD1700语音芯片来设计本公交报站系统。第二章系统方案设计2.1 系统设计思路本系统采用两种工作模式,分别为自动模式和手动模式。本次设计采用一个AT89C51单片机作为接收端的控制器。在每个站台上安装上无线发射装置,信号由无线发射头通过编码芯片不断向一定半径范围内发射无线信号。而公交车上那么安装主体器件。包括LCD液晶显示模块、无线接收识别模块以及语宫播报模块等。无线接收识别模块由无线接收头通过解码芯片解码接收到的信号。C51对无线接收模块的端口进行扫描,当公交车即将
14、到站进入信号范围时,端口电平发生改变,C51识别到后先调用语音芯片内部播放指针,让其指向预置的数据段,并进行播报。同时改变LCD的显示内容,将下一站的站名进行更新。接着下车指示灯亮起,通知到站乘客下车。车子离站台后信号消失,指示灯熄灭。2.2 系统方案比拟和选择2. 2.1方案一公交车站自动报站器的设计,对车轮轴的转角的脉冲进行计数,将计数值与预置值比照,即可确定报站时刻,到达准确自动的目的。以AT89C51为主控芯片,对外来脉冲计数,结合语吾芯片ISD1700输出语吾。系统由脉冲检测、脉冲计数、CPU控制、控制信号、语宫芯片、输出显示等组成。原理框图如图2-1所示。控制信号4语音芯片音频播放
15、 电路脉冲检测图脉冲计数1 .CPU控制:程序中将计数值于预置值进行比拟,判断是否到站,当到站时就输出信号控制语言芯片进行报站。2 .控制按键:用于手动控制、手动调整、预置值的输入等3 .语言芯片:由专用语音芯片ISD1700组成,可擦写,便于在不同公交线上使用。4 .输出显示:LCD液晶屏显示。5 .预置存储:采用两种方式存储,一种是在烧写器上将数据写入,另一种是在车上,单片机处于输入状态,车辆行驶一遍,将站与站之间的脉冲数写入片内。2. 2.2方案二利用8031单片机作为CPu来进行总体控制,当汽车到达某站时,汽车司机通过键盘来控制本系统进行工作,并且,系统将使用状态指示电路,向司机指示出
16、当前的行驶方向及站号。原理图框图如图2-2所示。进行语音再生时,由CPU控制语音合成电路中的语音芯片来读取其外接的存储器内部的语音信息,并合成语音信号,再通过语音输出电路,进行语音报站和提示。CPU同时通过程序读取汉字信息,送入I.CD屏显示电路来进行站点信息提示。当系统进行语音录制时,语音信号通过语音输入电路输入给语音合成电路中的语音合成芯片,由语音合成芯片进行数据处理,并将生成的数字语音信息存储到语音存储芯片中,从而建立语吾库。3. 2.3方案选择将方案一与方案二进行比拟,方案二是采用8031单片机控制,通过键盘来控制报站时刻,需要全人工员手动控制,比拟繁琐。所以本课题决定选用方案一,它使
17、用AT89C51作为主控制芯片,通过对里程的计数来控制报站时刻,无需人工控制,选用的语音芯片是美国ISD公司的ISD1700,该芯片与其它语音芯片相比拟,其语音吾质好,录放时间长。第三章系统硬件设计3.1 主控电路设计公交车报站系统主要由四个局部组成,即主控电路、显示电路、语音电路以及电源电路.3.1.1 AT89C51单片机的介绍AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4Kbytes的可反复擦写的只读程序存储器和128的随机存取数据存储器,器件采用AEMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和F
18、LASH存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMoS8位微处理器,俗称单片机。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51提供以下标准功能:4k字节FIaSh闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电
19、路。同时,AT89C51可降至OHZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。T89C51的封装采用双列直插式封装(DIP),其外部含有40个引脚,如下列图所示:图3-1AT89C51引脚图VCC:供电电压。GND:接地。Po口:PO口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当Po口的管脚第一次写1时,被定义为高阻输入。PO能够用于外部程序数据存偌器,它可以被定义为数据/地址的低八位。在FIASH编程
20、时,PO口作为原码输入口,当FIASH进行校验时,PO输出原码,此时PO外部必须接上拉电阻。Pl:PI口是一个内部提供上拉电阻的8位双向I/O口,PI口缓冲器能接收输出4TTL门电流。Pl口管脚写入1后,被内部上拉为高,可用作输入,Pl口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,Pl口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流这是由于内部上拉的缘故。P2口当用于外部程序存储
21、器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能存放器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:表3-1端口引脚第一功能P3.0RXD(串行输入口)P31TXDe串行输出口)P3.2INT0(
22、外中断0)P3.3INTM外部中断1P3.4T0(定时/计数器0外部输入)P3,5Tl(定时/计数器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH
23、地址上置0。此时,ALE只有在执行MoVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA:当/EA保持低电平时,那么在此期间外部程序存储器(OOoOH-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。
24、3.1.2 振荡器电路设计89系列单片机的内部振荡器电路如图3-2所示,由一个单级反相器组成。XTALl为反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要在XTALI和XTAL2引脚上外接一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器,如图3-4示,此方法称为内部方式。另一种使用方法如图3-3示,由外部时钟源提供一个时钟信号到XTAu端输入,而XTAL2端浮空。在组成一个单片机应用系统时,多数采用图3-4所示的方法,这种方式的结构紧凑,本钱低廉,可靠性高。振荡器的等效电路如图3-4上部所示。在图中给出了外接元件,即外接晶体及电容Cl,C2,并组成并
25、联谐振电路。在电路中,对电容CI和C2的值要求不是很严格,如果用高质的晶振,那么不管频率为多少,Cl,C2通常都选择20nF。有时,在某些应用场合,为了降低本钱,晶体振荡器可用陶瓷振荡器代替。如果使用陶瓷振荡器,那么电容Cl,C2的值取47p3图3-2 AT89C51单片机F僦宙器电路VCCNCXTAL2Dl内p ) Q%号通常,在单片4中对所彳 ESR (等效串M电阻)图3-4片为振荡器第效电路JLGNDxrE用件神叫本的类数要求如下:TAL2YTYT石英晶体CO (并联哪60S最大5岐 U UCL (负载电容):30pF+3pF通常,其误差及温度变化的范围要按系统的忽来确定。4tM-1Q4
26、ESR与频率的关系曲线600 - 500 - 触一 300 -在本设计中,采用的殖内部方式,71如图3-4所示,在XTALI和XTAL2引脚上外接一个12MHZ的晶振及两个20nF的电容做3.L3复位电源电路设计48121689系列单片机与其他微处理器一样,在启动的时候都需要复位,使CPU及系统各部件处于确定的初始状态,并从初始状态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,那么CPU就可以响应并将系统复位。1、手动复位手动复位需要人为在复位输入端RST上参加高电平。一般采用的方法是在RST端和正电源VCC之间接一个
27、按钮。当人为按下按钮时,那么VCC的+5V电平就会直接加到RST端。由于人的动作很快也会使按钮保持接通达数十亳秒,所以,保证能满足复位的时间要求。手动复位的电路如图3-6所示。图3-6手动复位电路2、上电复位AT89C51的上电复位电路如图3-7所示,只要在RST复位输入引脚上接一电容至VCC端,下接一个电阻到地即可。对于Cw)S型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至IuFo上电复位的过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐l5落,即RST端的高电平信号必须维持足够长的时间上电时,V
28、cc的上升时间约为IOms,而振荡器的起振时间取决于振荡频率,如晶振频率为IOMHz,起振时间为1ms;晶振频率为IMlIz,起振时间那么为IOms0在图3-7的复位电路中,当VCC掉电时,必然会使RST端电压迅速下降到OV以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全1态。如果系统在上电时得不到有效的复位,那么在程序计数器PC中将得不到一个适宜的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。Vcc图33、复位后存放器的状猖F当系统复位时,内部存M器的状态如SP和串行口的SBUF外,否独勺存放器全S
29、BUF内为不定值。内部rmJ状态不受害ESFRS中,除了端口锁存器、堆栈指针亨的复位值为OFFH,堆栈指针值为07H,上电时,RAM的内容是不定的。VCCAT89C51RSTGND专用存放器复位值器复位值PCTCON00HACCOOHB(X)HPSWOOHSP07HDPTR0000HP0-P3FFHIP00000BIEOxxOOO(X)BTMOD00HTHOOOHTLOOOHTHl00HTLlOOHSCON00HSBUF不定PCON(CHMOS)OOO(X)B表3-2各特殊功能存放器的复位值在本设计中复位电路采用的是上电复位,即如图3-7所示。3.2 语音输出电路脉设计ISD1700是华邦IS
30、D公司2007年新推出的单片优质语音录放电路,该芯片提供多项新功能,包括内置专利的多信息管理系统,新信息提示,双运作模式,以及可定制的信息操作指示音效。芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等的全方位整合系统功能。1、特点:(1)可录、放音十万次,存储内容可以断电保存一百年(2)两种控制方式,两种录音输入方式,两种放音输出方式(3)可处理多达255段以上信息(4)有丰富多样的工作状态提示(5)多种采样频率对应多种录放时间2、电特性:(1)工作电压(2)静态电流(3)工作电流(6)音质好,电压范围宽,应用灵活2. 4V-5.5V,最高不能超过6V0.5-1UA
31、20nA图3-8ISD1700引脚图用户可利用震荡电阻来自定芯片的采样频率,从而决定芯片的录放时间和录放音质。芯片的采样率可以通过外部振荡电阻来调节:采样频率(KHZ)1286,45,34ROS阻值(Ka)6080100120160表3-33、独立按键工作模式ISDl700的独立按键工作模式录放电路非常简单,而且功能强大。不仅有录、放功能,还有快进、擦除、音量控制、直通放音和复位等功能。这些功能仅仅通过按键就可完成。在按键模式工作时,芯片可以通过LED管脚给出信号来提示芯片的工作状态,并且伴随有提示,用户也可自定4种提示音效。录音操作:按下REC键,/REC管脚电平变低后开始录吾,直到松开按键
32、使电平拉高或者芯片录满时结束。录音结束后,录音指针自动移向下一个有效地址。而放吾指针那么指向刚刚录完的那段语音地址。放音操作!放音操作有两种模式,分别是边沿触发和电平触发,都由PLAY管脚触发。快进操作:点按一下FWD按钮将FWD端拉低,会启动快进操作。快进操作用来将播放指针移向下一段语音信息。当播放指针到达最后一段语音处时,再次快进,指针会返回到第一段语音。当下降沿来到FWD端时,快进操作还要决定于芯片当时的状态。擦除操作:擦除操作分为单段擦除和全体擦除两种擦除方式。复位操作,如果用RESET控制此管脚,建议RESET管脚与地之间连接一个OjIlF电容。当RESET被触发,芯片将播放指针和录
33、音指针都放置在最后一段语音信息的位置。音量操作:点按一下VOL键将VOL管脚拉低会改变音量大小。每按一下,音量会减小一档,再到达最小档后再按的话,会增加音量直到最大档,如此循环。总共有8个吾量档供用户选择,每一档会改变4dB.复位操作会将音量档放在默认位置,即最大音量。FT直通操作:按住FT键将FT管脚持续保持在低电平会启动直通模式。出厂设定的是在芯片空闲状态,直通操作会将语音从AnaIn端直接通往喇叭端或AUD输出口。在录吾期间按下FT键,会同时录下Analn进入的语音信号。4、管脚功能说明:管脚名称PDIP/SOICTSoP管引脚说明VCCD122数字电路电源/LED223LED指示信号输
34、出/RESET324芯片夏位MISO425SPI接口的串行输出。MOSI526SPI接口的数据输入端口。SCLK627SPI接口的时钟。/SS728为低时,开启SPl接口。VSSA81模拟地AnaIng2芯片录音或直通时,辅助的模拟输入。MIC+103麦克风输入+MIC-114麦克风输入-VSSP2125负极PWl喇叭驱动器地SP-136喇叭输出-VCCP147PWM喇叭驱动器电源SP+158喇叭输出+VSSPl169正极PWv喇叭驱动器地AUD/AUX1710辅助输出,用来输出一个AUD或AUXAGC1811自动增益控制/VOL1912音量控制ROSC2013振荡电阻,决定芯片的采样频率VC
35、CA2114模拟电路电源/FT2215在独立芯片模式下,当FT一直为低,3.3/PLAY2316播放控制端LCD16/RRC2417录音控制端02液/ERASE2518擦除控制端晶显/FWD26NJ快进控制端示电路设计RDY/INT2720-个开路输出。VSSD2821数字地3.11.CD液晶显示器件介绍字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,市面上字符液晶绝大多数是基于HD44780液晶芯片,HD44780是带西文字库的液晶显示控制器,用户只需要向HD44780送ASCII的字符码,HD44780就按照内置的ROM点阵发生器自动在LCD液晶显示器上显示出来。所以,
36、HD44780主要适用于显示西文ASCll字符内容的液晶显示。1602字符型La)能够同时显示16*2即32个字符(16列2行)。其内置192种字符(160个5*7点阵字符和32个5*10点阵字符),具有64个字节的自定义字符RAM,可自定义8个5*8点阵字符或4个5*11点阵字符。1602通常有14条引脚线或16条引脚线两种,多出来的2条线是背光电源线和地线,带背光的比不带背光的略厚,控制原理与14脚的LCD完全一样,是否带背光在应用中并无差异。本设计中采用带背光14引脚线的。其主要技术参数为:图3-9LCDI602引脚图VSS:电源地(GND)IlVDD:电源电压(5V)。VEE:LCD驱
37、动电压,液晶显示器比照度调整端。使用时可以通过一个IOK的电位器调整比照度,接正电源时比照度最弱,接地电源时比照度最高。RS:存放器选择输入端,选择模块内部存放器类型信号。RS=O,进行写模块操作时指向指令存放器,进行读模块操作时指向地址计数器。RS=L无论进行读操作还是写操作均指向数据存放器。R/肌读写控制输入端,选择读/写模块操作信号。R/W=0,读操作:R/W=1,写操作。本设计中只需往LCD里写数据即可,写时序见图3-4。E:使能信号输入端。读操作时,高电平有效:写操作时,下降沿有效DB0、DB7:数据输入/输出口,单片机与模块之间的数据传送通道。选择4位方式通讯时,不使用DB(TDB
38、3。1602模块内部主要由LCD显示屏、控制器、列驱动器和偏压产生电路构成。控制器接受来自MPU的指令和数据,控制着整个模块的工作.主要由显示数据缓冲区DDRM,字符发生器CGRoM,字符发生器CGRAM,指令存放器IR,地址存放器DR,忙标志BF,地址计数器AC以及时序发生电路组成。模块通过数据总线DB0、DB7和E、R/KRS三个输入控制端与MPU接口。这三根控制线按照规定的时序相互协调作用,使控制器通过数据总线接受MPU发来的数据和指令,从CGROM中找到欲显示字符的字符码,送入DDRAM,在LCD显示屏上与DDRAM存储单元对应的规定位置显示出该字符。控制器还可以根据MPU的指令,实现
39、字符的显示,闪烁和移位等显示效果。CGROM内提供的是内置字符码,CGRAM那么是供用户存储自定义的点阵图形字符。模块字符在1.CD显示屏上的显示位置与该字符的字符代码在显示缓冲区DDRAM内的存储地址一一对应。1.CDl602模块内部具有两个8位存放器:指令存放器IR和地址存放器DR,用户可以通过RS和R/W输入信号的组合选择指定的存放器,进行相应的操作。RSR/W操作00将DB0、DB7的指令代码写入指令存放器IR中01分别将状态标志BF和地址计数器AC内容读到DB7和DB6、DB010将DB0、DB7的数据写入数据存放器中,模块的内部操作将数据写到DDRAM或者CGRAM中的数据送入数据
40、存放器中11将数据存放器内的数据读到DB0、DB7,模块的内部操作自动将DDRAM或者CGRAM中的数据送入数据存放器中表3-5存放器选择组合1602提供了较为丰富的指令设置,通过选择相应的指令设置,用户可以实现多种字符显示样式。下面仅简要介绍本次设计中需要用到的一些指令设置。清屏指令Cleardisplay清显示指令将空位字符码20H送入全部DDRAM地址中,时DDRAM中的内容全部去除,显示消失,地址计数器AC=O,自动增一模式。显示归位,光标闪烁回到原点(显示屏左上角),但不改变移位设置模式。清屏指令码见表3-6。RSR/WDB7DB6DB5DB4DB3DB2DBlDBO00000000
41、01表3-6清屏指令码进入模式设置指令Entrymodeset见表3-7,进入模式设置指令用于设定光标移动方向和整体显示是否移动。RSR/WDB7DB6DB5DB4DB3DB2DBlDBO00000001I/DS表3-7模式设置指令码显示开关控制指令Displayon/offcontrol指令码见表3-8,该指令功能为控制整体显示开关,光标显示开关和光标闪烁开关。RSR/WDB7DB6DB5DB4DB3DB2DBlDBO00000011)CB表3-8显示开关控制指令码D:显示开/关标志。D=L开显示:1)=0,关显示。关显示后,显示数据仍保持在DDRAM中,开显示即可再现。C:光标显示控制标志
42、。C=I,光标显示:C=O,光标不显示。不显示光标并不影响模块其他显示功能。显示5*8点阵字体时,光标在第八行显示:显示5*10点阵字符时,光标在第11行显示。B:闪烁显示控制标志。B=I,光标所在位置会交替显示全黑点阵和显示字符,产生闪烁效果:B=O,光标不闪烁。功能设置指令Functionset功能设置指令用于设置接口数据位数,显示行数以及字形。指令码见表3-9。RSR/WDB7DB6DB5DB4DB3DB2DBlDBO00001DLNF*表3-9功能设置指令码DL:数据接口宽度标志。DL=L8位数据总线DB7DB0;DL=O,4位数据总线DB7DB4,DB3DB0不使用,此方式传送数据需
43、分两次进行1602模块内部设有上电自动复位电路,当外加电源电压超过+4.5V时,自动对模块进行初始化操作,将模块设置为默认的显示工作状态。初始化大约持续IomS左右。但是需要特别注意的是,倘假设供电电源达不到要求,模块内部复位电路无法正常工作,上电复位初始化就会失败。因此,最好在系统初始化时通过指令设置对模块进行手动初始化。3.2LCD液晶显示流程图1.CD液晶显示是通过调用初始化程序,写数据子程序,写指令子程序,地址转换子程序,读忙状态子程序以及延时子程序组合。具体如下:调用延时子程序LfD写在今子程手清屏LCD写指令子程序调用延时子程序设定方向及位移调用延时子程序返回返I可图3.10写数据
44、子程序流程图1.CD主要负责将各个站台的名称显示出来,首先由CPU中央处理器调用延时子程序,然后传入LCD,LCD首先清屏,清屏结束后LCD读取写指令子程序,并调用延时子程序,将方向和位移存入LCD,再利用LCD显示出来,在汽车运行过程中,会出现忙碌状态,汽车上会有自动提醒系统,首先由CPU写入忙碌时报警的程序,再由LCD显示出来,3. 3.3LCDl602液晶显示电路设计图3.11LCD1602液晶显示电路设计程序存入AT89C51单片机系统,汽车会根据行驶的路程方向等条件判别到了哪个站,然后单片机读取相对应的子程序传入LCD,LCD会显示相应的站台,并提示下一站的名字第四章软件设计3.1
45、系统程序流程图图47系统程序流程图首先翻开程序,程序自动显示下一站的名称,由公交司机确定采用自动还是手动程序,如果采用自动模式,由无线接收扫描是否到站,如果确定到站,那么语音播报当前到站信息,LCD显示更新下一站的信息,同时下车指示灯亮,规定时间结束后,程序跳转到运行模式,再重复之前的步骤,假设采用手动模式,那就由司机确定站台名称,并按下按键,出现语音播报,液晶显示还有下车指示灯亮,确定下车指示灯灭的情况下重复运行模式。4. 2程序子函数模块代码按键扫描驱动该模块为语音芯片内部集成模块无线接收端扫描函数该函数采用WhiIe语句判断P31端口是否出现下降沿,如果出现下降沿那么往下执行,如果没有那么等待。while(P31);delay();红外发射模块(实验室演示用)voidsendOre=0;TM0D=0x02:EA=I;TH0=0xf3;TL0=0xf3:ETO=1;voidttl(void)interrupt1re=re:通过设定采用定时器/计数器0以方式2工作。定时/计数方式2是将两个8位计数器THx、TLx分成独立的两局部,组成一个8位可自动再装入的定时器/计数器。由TLX作为8位计数器,THX作为计数初值存放器,设置初值时同时送THX和TLX,启动后,当TLX计数满回0产生溢出,不仅置为TFx,向主机请求中断,并且控制THX中的初值重新装入TLX中,继续下一轮计数