《公交车自动报站系统设计(毕业论文).doc》由会员分享,可在线阅读,更多相关《公交车自动报站系统设计(毕业论文).doc(33页珍藏版)》请在三一办公上搜索。
1、公交车自动报站系统的硬件设计原理摘 要本文介绍了一种的公交车自动报站系统的硬件设计原理,提供了一种以AT89C52单片机为核心,控制大屏幕LED点阵显示的硬件设计方案。系统主要通过AT89C52单片机做为系统CPU,处理包括键盘输入和LED显示屏显示站名的所有信号处理。系统扫描到有键按下,判键确定后给CPU一个脉冲信号,然后CPU处理信号,确定所到站的站名, 再通过扫描驱动从LED显示屏上显示出所到站的站名。达到半自动报站的作用。整个系统硬件设计包括键盘电路、复位电路、显示驱动电路、显示电路、内存扩展电路模块。其中显示模块是本系统的重点。本系统很大程度上提高公交车报站的准确性,可靠性。提高了公
2、交系统的服务质量。促进城市经济发展和交通变化的和谐发展。关键词 : AT89C52单片机; LED点阵; AT24C64; 自动报站;TheDesignofAutomaticBusStation-InformerThis article introduces a new methde to design the bus-stop reporting system。It provides a new scheme ,which is based AT89C52 microcomputer,to control the display of the LED lattice。 The system
3、mainly through AT89C52 as the core system, controls keyboards input and LEDs display . The entire system through manual operation after receiving the keys to a system scan button press, Key subcontractors that determined a signal to the microcontroller, then the micro-processing of signals from the
4、accrued value added to determine the reliability of station names. Driving through the scanning from the LED display by the arrival station names. Reached semi-automatic stations role. The entire system includes some modules ;for example, the key subcontractors, the signal input microcontroller, sig
5、nal processing, LED Drivers and LED display program. LED display is the focus of the system. The system can greatly enhance bus stations accuracy, and improve the quality of service of the transportation system. It will promote the citys economic development and the harmonious development of traffic
6、.Keywords: AT89C52chip microcomputer; LED lattice; reporting system;AT24C64;目 录第一章11.1 绪论11.2 研究前景及国内外的现有水平21.3 课题论述与方案确定21.3.1 课题任务及设计要求21.3.3 方案的论述与确定3第二章 系统硬件设计72.1 单片机的选择和外围电路的设计72.1.1 外部晶振的选用72.1.2 复位电路82.2 按键电路的设计82.2.1 判键及其接口电路设计92.2.2 键盘的工作方式102.3 显示及驱动电路的设计102.3.1 显示电路设计102.3.2 显示驱动电路设计112.
7、4 数据存储器的设计142.4.1 内存扩展电路162.4.2 存储器的组织以及运行分析162.5 串行通信电路的设计18第三章 软件设计213.1 串口通信软件的设计213.1.1 下位机串行通信213.1.2 内存读写程序的设计22第四章 总结2441 系统功能完善244.1.1 语音控制模块的设计244.1.2 抗干扰措施2542 设计心得25致 谢25参考文献26附 录27 第一章 随着科技的不断进步,人们对事物的认知程度已经得到了广泛的提升,在实际生活中,大家都希望能使用简便、智能、人性化的产品。在公交车自动报站方面,由于我国现状,人口众多,口音复杂,对于乘客而言,原来的人工报站存在
8、着很多的问题。为了跟随科技发展,提高公交系统的服务质量,提升城市形象。开发一种能够节省人力和物力,而又能让乘客方便快捷的知道站台报站器就成为一种必然。因此本次毕业设计中提出一个以AT89C52单片机为核心,用LED显示屏显示站名的即经济、高效、直观的公交车到站自动报站系统。1.1 绪论随着国民经济的快速发展,城市建设规模不断扩大,大城市人口高度集中并大幅度增长,同时汽车保有量急剧上升,交通需求迅速扩大,而道路交通基础设施建设的发展则相对滞后。城市交通需求与供给之间的矛盾越来越突出,城市“乘车难”、“行车难”的局面在加剧,交通阻塞呈现出点到线、由线到面的扩展趋势,交通拥挤、交通延误、交通阻塞以及
9、由此引起的噪音、废气污染严重影响着居民的正常的生活以及社会经济的持续、健康发展。近年来,我国城市交通的现状已引起了政府、公众、社会各界的广泛关注,有关专家学者和交通工程师们在吸取各国城市交通发展经验的基础上,找到了一条解决我国城市交通发展问题的有效途径,即优先发展城市公共交通,以公共交通为杠杆降低城市交通需求总量,实现道路交通基础设施发展与交通需求增长的均衡。实施“公交优先”是解决我国城市交通发展问题的有效途径,也是我国目前城市交通发展的基本政策。公交智能化是智能交通的一个重要的子领域,同时也是落实“公交优先”,使城市交通与社会经济和谐发展的重要组成部分。实施公交智能化,必须提高公交服务质量,
10、而到站后的准确、及时报站就是一个方面,本设计基于AT89C52单片机、LED点阵、AT24C64、制作的公交车自动报站系统就能解决这方面的问题。从而,达到公共形象的提升。当前国内主要大城市的公交车大都采用人工报站,即每到一站由司机或者乘务员来进行报站。但有时由于受到各种因素如雨雪天路滑、车上拥挤、乘务员心情的变化等的影响,会出现报错站,漏报站的情况,给乘客特别是不熟悉本市地形的乘客带来了不必要的麻烦,从而影响到了一个城市的窗口形象工程建设。于是开发研制自动报站系统成为必然。1.2 研究前景及国内外的现有水平随着公交优先战略的确定,公交在缓解城市交通拥堵方面的作用将越来越重要,与这种要求相比,我
11、国大城市公共交通还有很大差距,主要表现为:为社会提供服务信息的水平低,只能是以经验为主的被动、滞后的实施服务,仍以人工作业为主。上述问题显然不利于公交对乘客的吸引,也是导致公交运营组织模式落后、调度方式原始陈旧、企业管理效率不高的重要原因。因此,如何提高公交系统的服务质量,是现代公交行业亟待解决的问题。我国发展智能运输的基础较差,因此理论研究虽在进行,但相应技术却得不到推广。在实际生活中得不到应用,达不到广泛服务社会的目的。所以发展一种自动报站系统,提高公交服务质量就成为民用科技研究的一个项目。目前在国际上已经实现了DPS定位车载智能系统,在国内的几个大城市也都有使用,实现了公交系统的全面监控
12、、调度。公交车自动报站系统的研究也达到了无线联络,全自动报站的水平。但其一般其经济投入较高。结合我国现有的公交系统现状,半自动化报站系统还有很大的应用空间。适应用于一些中小城市。1.3 方案论述与方案确定本课题是一个软硬件紧密结合的注重实际应用的系统。在课题研究的期间,我主要研究系统硬件设计,因此,在详细讲述之前,先介绍“公共汽车自动报站”的设计思想及整体硬件方案的设计。实现公共汽车自动报站是是公交智能化的一份子,是促进智能交通的一个不可缺少的步骤,同时也是落实“公交优先”使城市交通与社会经济和谐发展的重要组成部分。 1.3.1 课题任务及设计要求1)课题任务以单片机为核心,制作一个公交车自动
13、报站系统。其必要的功能为:1: 具有2个16*16的点阵汉字显示功能。2: 提示信息具有方便的可修改性。2)课题设计要求 1 硬件设计: A:汉字的显示(点阵),汉字显示模块采用(16*32)。B:串口通信:设计PC机与单片机之间的通信电路,用于把站名信息发送到单片机内部。 C:存储器的扩展:采用大容量长寿命非易失存储器存储数据信息,可永久可靠的保存各项重要数据。本设计才用ATMEL公司的AT24C64串行EEPROM存储器用中断来控制报站。 D:用按键来控制报站的上下行和站名顺序。2 软件设计:A:时钟的显示B:汉字的显示程序C:串口的通信D:存储器的扩展E:各种程序的初始化1.3.2 方案
14、的论述与确定报站器以单片机AT89C52为CPU来控制LED点阵显示屏显示所到站的站名,提高报站的准确性,高效性和直观性。由于线路不同,报站系统中存储的站名需要通过更改来适用于各种线路,以此提高系统的通用性。所以我们需要设计通信模块来实现PC机和单片机之间的通信。并能通过单片机与PC机之间的通信来实现报站名的更改,使其成为多功能开发型报站器。而由于考虑到我的自身设计水平有限,本次设计的系统没有设计语音模块模仿人声报站而是设计了按键模块控制LED显示屏显示站名,达到报站的目的。在内存方面,由于AT89C52的数据存储为256字节,由于站名的信息量比较大,片内数据存储空间有限,所以需要扩展一个片外
15、数据存储,来满足要求,这就要求系统应设置内存扩展模块。LED显示屏考虑系统只是一个演示作用,所以本设计采用了8块8*8的LED显示模块组成的16*32的LED显示屏,可以显示两个汉字,可以达到演示要求。综上系统的框图如图11系统框图;图11系统框图A 方案的论述1.方案A的设计框图如12: 图12 A方案设计框图本系统硬件可分为PC机,AT89C52单片机,数据存储器,显示模块,串行通讯模块和键盘组成。硬件电路框图如图11方案一设计框图。2.方案A的设计方法:基于AT89C52而设计的公交车自动报站系统,为了能够方便的报N*M键盘来控制报站,按1-N键来进行报站,只要按其中的一个按键,就会去处
16、理对应的站台信息。并且设计一些功能键,例如:方向键,结束键等。虽然单片机本身的 I/O口能实现简单的数据I/O操作。但其功能毕竟有限,除了结构和功能的原因之外,还有数量上的原因,单片机本身的I/O口不够用,所以要扩展I/O口。我们使用可编程接口芯片实现I/O口的扩展,常用的接口芯片是8255。AT89C52的数据存储器为256字节,程序存储器为8K,因为本设计需要显示的汉字信息量大,所以得扩展数据存储器,用6264来扩展存储器。以地址锁存器74LS373锁存的P0口低八位地址和P2口低五位作为访问8K片外数据存储器6264的地址线,对6264进行数据的读写。而对于公交车要随时修改站台的信息,我
17、们可以通过一个电平和逻辑关系转换的器件来使得单片机和PC机进行通信,EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,这里用MAX232。为了显示汉字信息。可以用LED点阵显示屏来显示汉字信息。用74LS244来驱动LED点阵的列,用单片机的I/O口来驱动LED点阵的行。因为74LS244的驱动能力比较强,所以不用加别的驱动电路。3.方案A的优缺点
18、: 方案一采用了常规的方法利用89C52的P0口,P2口提供数据线,用P3口的部分管脚提供控制线。虽然能达到扩充系统功能的目的,但也需要增加74LS373等接口芯片,接口连线较多,不利于小型化,同时由于系统扩展的需要,P0口,P2口及P3口的部分信号线不能再作为基本I/O口使用,及在扩充外围功能的同时,浪费了单片机的I/O口资源。像访问6264和键盘就使用了太多的I/O口。但方案一比较常用,程序设计简单。B方案二的论述1.方案B的设计框图本系统硬件可分为PC机,AT89C52单片机,EEPROM为AT24C64的存储模块,显示模块,串行通讯模块,CPU复位电路,外部振荡电路,按键组成。硬件电路
19、图如图13方案B设计框图所示:图13方案B设计框图2.方案B的设计方法基于AT89C52而设计的公交车自动报站系统,为了能够方便的报站和硬件设计的简单用两个外部中断来控制站台的”+”和“-“,通过记数来判断所到的站台,并且通过RESET来复位.由于汉字信息的存储量大,而单片机内部RAM比较少,不够用,为了提高可靠性可用串行E2PROM,它是可在线电擦除和电写入的存储器,该存储器具有体积小,接口简单,数据保存可靠,可在线改写和功耗低等特点,在单片机系统中应用十分普遍。在此,我们选用AT24C64,它是8K的串行EEPROM,是支持IIC总线数据传送协议的串行通信的片外存储CMOS,EEPROM。
20、而对于公交车要随时修改站台的信息,我们可以通过一个电平和逻辑关系转换的器件来使得单片机和PC机进行通信,EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,这里用MAX232。为了显示汉字信息,可用LED点显示屏(16*32)来显示汉字,用晶体管来驱动。3.方案B 优缺点:方案二采用了只占用两根普通口线串行输入输出片外数据存储器EEPROMAT24C
21、64,采用了IIC总线,地址和数据都是通过由普通口线模拟IIC总线串行口送出,大大节省了MCU宝贵的口线,不需要地址锁存器和8255有利于对系统升级和扩展,此外方案2器件较少,硬件设计简洁;此外,由于使用普通的口线来模拟IIC总线给程序设计带来一定的困难。用晶体管驱动点阵也能达到比较好的效果。对于站台的报站,通过外部中断来实现更加方便,这样可以减少硬件和软件的设计。通过以上的比较,我们选择方案2。第二章 系统硬件设计硬件的设计主要围绕系统的功能完全实现,并且要保证整个系统在运行过程中的稳定性、安全性及生产的经济性。2.1 单片机的选择和外围电路的设计因为公交车车自动报站系统设计需要较大的存储量
22、,所以要选择一个数据和程序容量较大的单片机,这样就不用扩展数据和程序存储器。在这里我们选用了ATMEL公司的AT89C52单片机作为本设计硬件电路的主控芯片,它是一个低电压,高性能CMOS 8位单片机,片内8K BYTES的可反复擦写的只读程序存储器和256BYTES的随机存取数据存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置有8位中央处理器和FLASH存储器单元,功能强大的AT89C52单片机可提供许多复杂系统控制应用场合。1: AT89C52有40个引脚,32个外部双向输入/输出端口,同时内含2个外中断口,3个16位可编程定时计数器,2个
23、全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和FLASH存储器结合在一起,特别是可反复擦写的FLASH存储器可有效地降低开发成本。2: ALE/PROG端除输出地址锁存允许脉冲外,在编程期间还作为编程脉冲输入端,参与控制对FLASH存储器的读,写,加密,擦除等操作。而EA/VPP端在寻址片内8KB FLASH程序存储器时,必须连到VCC,如果将此端连到GND端,将迫使单片机寻址外部0000H-1FFFH范围的程序存储器。如果加密位被编程了,AT89C52的CPU将对EA的状态进行采样并锁存,EA的状态不得与实际使用的内部或外部程序存
24、储器的状态发生矛盾。2.1.1 外部晶振的选用AT89C52的内部有一个用于构成振荡器的高增益反相放大器。通过XTAL1,ATAL2外部接上一片作为反馈元件的晶体,与C1和C2构成了并联谐振电路,使其构成自激振荡器。电容的值具有微调的作用,我们取30PF。具体的接法如图21外部晶振电路: 图21外部晶振电路AT89C52的工作频率范围在 0-24MHZ。我们选用的是12MHZ的晶振,振荡周期为1us机器周期为1us,所以这个晶振可以满足这个系统的要求。并且晶振不能离单片机太远,不然使用外部晶振进行软件调试时就会发现找不到信号。2.1.2 复位电路复位有硬件和软件两种,复位的作用是使程序自动从0
25、000H开始执行,因此我们只要在AT89C52单片机的RESET端加上一个高电平信号,并持续10ms以上即可,RESET端接有一个上电复位电路,它是由一个小的电解电容和一个接地的电阻组成的。人工复位电路另外采用一个按钮来给RESET端加上高电平信号。 图2-2人工复位电路我们采用放电型人工复位电路,如图2-2人工复位电路,上电时C通过R充电,维持宽度大于10ms的正脉冲,完成上复位功能。C充电结束后,RESET端出现低电平CPU正常工作。在此我们取了典型值R=10K,R1=1K,C=10uf。上电复位实现的时间 :T=R*C =10K*10UF =100ms=10ms需要人工复位时,按下按钮K
26、,C通过K和R1放电,RESET端电位上升到高电平,实现人工复位,K松开后C重新充电,充电结束后,CPU重新工作,R1是限流电阻,阻值不可以过大,否则不能起到复位作用。22 按键电路的设计键盘实质上是一组按键开关的集合,控制CPU通过按键来识别特定的用户命令,从而转入相应的程序来执行用户命令。键盘的软硬件的设计涉及下面几个方面的问题:对于此设计来说我们要准确的显示我们所要对应的信息,每按下一次按键要显示所要显示的信息。这按键是主要用来报站的而设计的。这样比键盘操作方便,也比较实惠。按键电路采用中断模式。当有按键按下时,系统产生中断,CPU响应中断后,开始计数,即查询键号,通过软件来实现该键号所
27、对应键的功能键盘的大体设置为:第一个键为报站控制键S1用来控制站台“+”例如:第一站为东华站,按下S1时显示第二站:火车站,其余的站台工作原理也一样。S2用来控制站台的“-”,第二站为火车站,在按下S2时这样就显示火车站。电路如图23按键电路:图23按键电路2.2.1 判键及其接口电路设计键的闭合与否反应在电压上就是呈现出高电平或低电平,如果高电平表示断开,那么低电平则表示闭合,通过电平的高低状态的检测可确认键按下与否。为了确保CPU对一次按键动作只确认一次,并且防止干扰信号的影响,必需加入消除电平抖动的措施,下图3.3为按键抖动示意。消除抖动通常有硬、软硬两种方法,硬件消除抖动可采取双稳态电
28、路或滤波消抖电路;软件消抖是在第一次检测到有键按下时,执行一段延时程序再确认该键是否仍闭合,如果还是闭合状态则确认该键按下,从而消除抖动和干扰影响。当按键较多时,我们多采用硬件件消抖法。按键接口设计有两种方法,独立式按键和矩阵式键盘。独立式按键各键相独立,每个按键各接入一根输入线,只要检测输入线的电平就可以识别按键状态。这种方法电路配置灵活,软件结构简单,但每个按键需占用一根输入口。由于该设计方案IO资源浪费大。故此方法只适用于按键少或其他控制功能很简单的场合。矩阵键盘适用于按键数量较多的场合,它把键盘输入线分为行线和列线,按键位于列的交叉点上。按键的识别需要软件分别扫描行线和列线,根据扫描的
29、结果判具体按下的按键。由于本设计中的按键只有三个,考虑系统可靠性和键盘设计的简单所以采用独立式按键。图24 按键闭合及断开时的电压。图24按键闭合及断开前后的电压2.2.2 键盘的工作方式键盘扫描只是CPU的工作内容之一,CPU在忙于各项工作时,如何处理键盘输入取决于键盘的工作方式,键盘工作方式有三种,编程扫描、定时扫描和中扫描。在编程扫描中,CPU反复地扫描键盘,等待用户的输入命令,而执行键入命令或处理输入数据时,CPU不再相应输入要求,直到CPU返回重新扫描键盘为止。时扫描工作方式利用单片机内部定时器产生定时中断,CPU相应定时器中断后对键盘进行扫描,在有键按下时识别出该键并执行相应功能程
30、序。使用中断方式时要求在没有键按下时,不占用CPU处理时间,只有当有键按下时产生键盘中断,由于中断识别键并执行功能程序,这种方法使用最多。 23 显示和驱动电路的设计我们知道的用来显示的器件很多。比如数码管、LCD、点阵式LED。数码管只能显示数字,LCD可以显示汉字、符号、数字和图形。虽然LCD的显示效果要比LED好,显示电路也比较简单(很大一部分已经集成化)。但是它的价格比较高,也不容易采购。所以综合考虑生产成本,本系统采用点阵式LED显示。它具有以下优点:1 价格比较便宜 2 容易扩展显示比较多的汉字 3 显示汉字效果好,广泛用于广告显示屏,交通屏幕。通常情况下,点阵式LED显示屏是由标
31、准的LED显示模块组成的。2.3.1 显示电路设计HS 1088BS点阵式LED显示模块是8行8列64个LED组成。单块点阵式LED显示模块能够显示各种字母,数字和常用的符号。点阵式LED显示模块在8行8列的每一个交点上装有一个LED。模块有共阳极和共阴极之分。LED的正极接行引线,负极接列引线的称为共阳极LED显示模块,反之为共阴极LED显示模块。由4个8*8的LED显示屏组成的16*16的LED汉字显示屏如图24, 4个8*8的LED显示屏组成的16*16的LED显示屏,行引脚逐个连接而成。 图25 4个8*8的LED显示屏组成的16*16的LED显示屏2.3.2 显示驱动设计单个LED器
32、件的驱动:从LED器件的发光原理可知,当向LED器件施加正向电压时,流过器件的正向电流使其发光,因此LED的驱动就是如何使它的PN结处于正偏置,而且为了控制它的发光程度,还要解决正向电流的调节问题,具体的驱动方法可以分为直流驱动和恒流驱动,脉冲驱动和扫描驱动,这里采用恒流驱动。由于LED器件的正向特性比较陡,加上器件的分散性,使得在同样电源电压和同样的限流电阻的情况下,各器件的正向电流并不相同,引起发光强度的差异。如果能够对LED正向电流直接进行恒流驱动,只有恒流值相同,发光强度比较接近,我们知道晶体管的输出特性具有恒流性质,所以用晶体管驱动LED,单个LED驱动如图26单个LED驱动电路。P
33、2,P1输出的电流约为400UA左右,LED点阵的工作电流大约为20MA,工作电压大约为2V为了不使LED烧坏R最大约为6.75千欧。在此选R=4.7千欧。图26单个LED驱动电路本次设计中采用的是(16*32)的LED显示屏显示汉字,一次可以显示两 个汉字,由于站名的长度比显示屏长,所以必须实现移位的功能。LED显示的三种方式:1) 占空比控制驱动:减少驱动电路。在需要进行灰度级控制显示的情况下要求随时调整占空比使LED达到响应的发光强度。2) 组合驱动:按照行列进行驱动。3) 扫描驱动: 所谓脉冲驱动方式,就是利用人眼的视觉暂留效应,以脉冲的方式对LED器件进行供电,使之间歇性地点亮。采用
34、这种驱动方式需要对以下两个方面进行考虑:脉冲电流的幅值和其重复颇率。首先,脉冲电流幅值的选择,当脉冲驱动的平均值与直流驱动的电流值相等时,我们人眼的感觉是相同的,也就是说两者的发光强度相当。扫描驱动是通过数字逻辑电路,使若干LED器件轮流导通,用以节省控制驱动电路。LED显示屏是将发光灯按行按列布置的,驱动时也就按行按列驱动。在扫描驱动方式下可以按行扫描.A: 按列控制也叫可按列扫描,按行控制。所谓“扫描”的含义,就是指一行一行地循环接通整行的LED器件,而不问这一行的哪一列的LED器件是否应该点亮,某一列的LED器件是否应该点亮,由所谓的列控制电路来负责。B: 按行扫描按列控制的方式。一个m
35、行n列结构的LED显示屏,当采用行扫描列控制的驱动方式时,从H1到Hm轮流将高电位接通各行线,使连接到各行的LED器件接通正电源,但具体哪一个LED导通,还要看它的负电源是否接通,这就是列控制所要完成的工作。例如在LED显示屏上需要LED 11熄灭,LED21点亮,那么当扫描到H1行时,L1列的电位就应该为高:当扫描到H2行时,L1列的电位就应该为低。根据驱动方式的不同,LED大屏幕显示方式可分为静态显示和动态扫描显示两种。静态显示是指将一幅画面输入以后要保持到下一幅画面的输入;动态显示是指将画面分为若干部分分别进行刷新。静态显示每一个像素需要一套驱动电路,如果显示屏为n*m个像素屏,则需要n
36、*m套驱动电路;动态扫描显示则采用多路复用技术,如果是P路复用的话,则每P个像素需一套驱动电路,n*m个像素仅需n*m/p套驱动电路。另外,对于静态显示方式,需要较多的译码驱动装置,需要的引线也比较多;对于动态扫描显示方式,可以避免以上不足,但是容易造成显示亮度低、屏幕闪烁等问题。在实际的LED大屏幕显示中,很少有采用静态驱动的。LED发光器件的数量巨大,不宜使用静态显示驱动电路。扫描驱动电路一般采用多行的同名列驱动器。行驱动器一行的行线连到电源的一端,列驱动器一列的列线连接到电源的另一端。当行驱动选中第I行,列驱动选中第J列时,对应的LED器件根据列驱动的数据要求进行显示,控制电路负责有序的
37、选通各行。在选通每一行之前还要把该行各列的数据准备好。一旦该行选通,这一行上的LED发光器件就可以根据列数据进行显示。在本设计中LED点阵显示模块采用动态扫描方式显示,下图是列扫描的LED点阵显示的驱动接口,要显示一个清楚的汉字要求要4块1088BS组成。显示两个汉字就需要8块,对于组成一个16*16的点阵就要求把每两个行列组合。其中行方向接在P1和P2口,考虑负载能力,接16个2n5551的PNP三极管驱动。列方向则由两片4-16译码器74L154完成扫描,它由89C52的P0.4-P0.7控制。同样的驱动部分是由32个2N5041的三极管完成的,如图2-7汉字的显示电路。 图2-7汉字的显
38、示电路按列扫描时。动态显示方式的列驱动电流大,而行驱动电流小,最大电流计算有以下公式: 行驱动电流=列数*平均工作电流 列驱动电流=行数*行驱动电流由上式可以知道,列驱动电流大于保护能够驱动电流的倍数等于显示点阵的列数,所以列的三极管要有大电流输出的晶体管。LED显示屏作为单独显示硬件,具有能够将外来数据转换成汉字(或者图形)显示出来。这个过程由硬件驱动程序完成控制和实现。显示过程是这样的:首先控制显示屏的单片机接受LED屏主控微机传来的数据,下来,主孔程序将数据转换成屏幕显示的图形,储存起来。在按照扫描的顺序与屏幕对应的关系,将存储的内容转换成扫描内容,在将数据输出到控制单个的LED模块的数
39、据存储器,最后扫描锁存器中的数据。刷新屏幕,我们把行列总线接在单片机的I0口,然后把上面分析到扫描代码送入总线,就可以得到显示汉字。但是在设计中每次显示两个汉字,由于一共用到16行,32列,如果全部接到89C52单片机,一共需用48条IO口,这样就造成IO资源不够使用。就得扩展系统才能实现功能。点阵显示屏每个单元由8个8*8点阵LED显示模块,行信号选择P1口、P2口,行驱动器组成。列信号选择译码器74L164、列驱动器组成。8个8*8点阵LED显示模块组成一个16*32的LED点阵,用于同时显示2个 16*16点阵汉字字符或数字。单元显示屏可以接受来自控制器或者上一级显示单元模块传输下来的数
40、据信息和命令信息,并可将这些数据信息和命令信息不经任何变化的再传输到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容,显示屏控制系统由显示控制器和LED点阵显示屏组成,控制系统的逻辑结构框图见图28显示框图NPN行驱动NPN行驱动P1.0-P1.7P2.0-P2.7AT89C528*8LED1,23,48*8LED1,23,4PNP列驱动两片译码器74LS154图28显示框图2.4 数据存储器的设计由于一般的公交车报站的数量都比较大,一般每站显示的汉字都有二三十个,那么总共的汉字就有几百个汉字。这样系统的数据存储器的存储空间就要求好几K。所以必须扩展一片E2PRO
41、M来存储汉字。这片E2PROM必须满足汉字存储容量要求。我们选择AT24C64芯片作为本系统的外部扩展E2PROM芯片,它的地址空间满足本次设计的要求。使用I2C总线扩展以达到简化电路,提高系统可靠性的目的。2.4.1 内存扩展电路AT24C64是一个64K位的支持I2C数据总线传送协议的串行E2PROM。可用电擦除、可编程、自定义写周期(可编程、擦除100万次)的串行E2PROM。一般采用的两种写入方式。一种是字节写入方式、另一种是页写入方式,具有32字节的数据的页面写能力。其管脚排列和功能描述如图2-9 AT24C64管脚排列和功能描述:管脚名称功能A0、A1、A2器件地址选择SDA串行数
42、据地址SCL串行时钟WP写保护Vcc-6V+1.8V工作电压Vss接地图2-9 AT24C64管脚排列和功能描述管脚功能描述:1) SCL:串行时钟这是一个输入管脚,用于产生器件所有数据发送或接收的时钟。2) SDL:串行数据地址这是一个双向传输端,用于所有地址和数据的发送和接收。对于一般的数据传输,仅在SCL为低期间SDA才允许变化。在SCL为高期间变化,留给指示START和STOP条件。3) A0(CE0)、A1(CE1)、A2(CE2),器件地址输入端这些输入端用于多个器件级联时设置器件地址,当这些管脚悬空时默认值为0. A0、A1、A2不需片选,可任意接,本设计A0接VCC,A1和A2
43、接地。4) WP:写保护如果WP管脚接到VCC,所有内容被写保护(处于只读状态)。当WP管脚连接到VSS或者悬空,允许器件进行正常的读写功能。通过控制WP管脚,就可以进行正常的显示数据的存储,并在系统使用中可以将WP管脚接到VCC从而达到保护内存中的数据的作用。由于AT24C64的容量为8KB,已经满足本设计的容量要求,所以本系统只需满足扩展一片AT24C64芯片。AT24C64的WP管脚是写保护,设计中接到VSS管脚(以此满足设计中此模块的工作任务)。允许进行正常的读写操作。由于只扩展一片AT24C64、A0、A1、A2不需片选,可任意接,本设计A0接VCC,A1和A2接地。6脚SCL时钟接
44、I2C总线时钟线(P0.0);5脚SDL数据线接I2C总线数据线(P0.1)。如图2-10 AT89C52与AT24C64的接口电路:图2-10 AT89C52与AT24C64的接口电路发送AT24C64的地址。从地址的高4位D7D4固定为1010,接下来的D3D1为器件的片选地址。本次设计A0接高电平,A1、A2接低电平,所以D3D1为001.器件的D0位是读写功能控制位,“1”表示对AT24C64进行读操作,“0”表示对AT24C64进行写操作。因此本设计中AT24C64的地址位是1010001X。2.4.1 存储器的组织以及运行分析存储器的的组织:AT24C64内部分为32页,每页256
45、个字节,故需要13位地址对其内部字节进行寻址。运行方式:对于时钟和数据传输,串行数据IO端SDA一般需要设置外部上拉电阻以达到使其处于高电平。加到SDA的数据只有在串行时钟SCL对于低电平的时钟周期内可以改变。当串行时钟SCL处于高电平时,SDA的数据变化用于指示起始或停止状态。起始状态:当SCl为高电平时,SDA由高电平变到低电平则处于起始状态,起始状态应该处于其他任何命令之前。停止状态:当SCl为高电平时,SDA由低平变到高电平则处于低功耗的备用方式(Standby Mode)。应答信号:应答信号是由接收数据的器件发出的。当EEPROM接收完成一个写入数据之后,会在SDA上发一个“0”应答
46、信号ACK信号。ACK信号在第九个时钟周期出现。a) 读写操作过程AT24C64在进入起始状态之后,需要一个8位的器件地址字去启动存储器进行读写操作。其器件地址为10 10 A2 A1 A0 RW.器件地址的最高4位1010为器件标志;A2、A1、A0为硬件布线地址,AT24C6不用硬件布线地址,故这三位就用于内部页面寻址。AT24C6的字节地址为:真正地址=( A2 A1 A0)*28+字地址;RW为读写选择位,当其为1时,执行读操作,为0时执行写操作。1)字节写这种写方式只执行一个字节的写入,在起始状态中,首先写入8位的起始地址,则芯片会产生一个“0”信号ACK;随后,接着写入8位数据,在接到数据后,芯片又产生一个“0”信号ACK作为应答,到此为止,完成了一个字节的写过程,故此在SDA产生一个停止状态,这是外部写过程。在这个过程中控制芯片的单片机应在芯片的SCL、SDA断入恰当的信号。当然在一个字节的写过程结束时,单片机应以停止状态结束写过程,这时,芯片进入内部定时的写周期,以便把接受的数据写入到存储单元中。在芯片的内部写周期中,其所有输入被屏蔽,同时不响应外部直到写周期完成。这是内部写过程,这个过程大约需要10ms时间,内部写过程处于停止状态余下一次起始状态之间。 2)现行地址读:在上一次读写操作完成之后,芯片内部字地址计数