基于单片机的交通信息显示系统设计设计论文(编辑修改稿)内容摘要:

要求及方案论证本方案设计一个电子显示屏,具体要求满足以下条件:(1) 设计并制作一个基于单片机的简易16 *16点阵显示的LED电子显示屏。 (2) 利用串口通讯可以实现从电脑上发送汉字和字符,并在点阵屏上显示出来。 (3) 在目测条件下LED显示屏各点亮度均匀、充足、稳定、清晰无串扰。 (4) 能显示一组特定汉字组成的句子,通过控制器切换显示内容,并具有掉电保护功能。 电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。 设计主要框图如图1所示。 行驱动器列驱动器LED点阵 单 片 机图1 硬件设计主框图本设计是一个用LED点阵显示16*16点阵汉字,显示屏长和高均为一个汉字。 总共显示“当前时间、温度、可见度”等汉字从左到右或者从下到上。 设计思路,实现汉字朝固定方向滚动显示这一动作而且给人以连续显示不闪烁的感觉,就必须要求每帧的频率大于25HZ。 将点阵显示屏逐行显示,由于人眼惰性,在很短的时间下从上到下将点阵逐行点亮,就会使人感觉一整屏在显示。 采用的是8*8的LED点阵,8个共阳极COM端(A1~A8),每一个公共端都对应一列的LED共8只。 本设计的屏幕需要4块的LED点阵。 用单片机STC89C52单片机作为本系统的控制模块。 单片机可把由按键读来的数据利用软件来进行解码处理,从而把数据传输到驱动模块(列驱动器和行驱动器),实现文字的显示。 点阵电子显示屏为主要的显示模块,把单片机传来的数据显示出来,并且可以实现滚动显示。 在显示过程中,可以根据要求用按键来对显示屏实时的选择与切换。 显示模块是本次设计最核心的部分,对于8*8LED点阵显示有以下两种方案:方案一:静态显示,从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在的位置相对应的LED器件发光,就可以得到我们想要的显示结果。 将一帧图像中的每一个二极管的状态分别用0和1表示,若为0 ,则表示LED无电流,即暗状态;若为1则表示二极管被点亮。 若给每一个发光二极管一个驱动电路,一幅画面输入以后,所有LED的状态保持到下一幅画。 16*16的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,16*16的点阵需要256/8=32个锁存器。 这个数字很庞大,因为我们仅仅是16*16的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。 方案二:动态显示,对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。 动态显示方式,可以避免静态显示的问题。 但设计上如果处理不当,易造成亮度低,闪烁问题。 因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。 动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。 具体就16*16的点阵来说,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其点亮相同的时间,然后熄灭;以此类推,第十六行之后,又重新燃亮第一行,反复轮回。 当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。 我们通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz, 发光二极管导通时间≥1ms时,显示亮度较好,无闪烁感。 鉴于上述原因, 我采用方案二。 显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。 当列数很多时,并列传输的方案是不可取的。 采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。 但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。 这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。 对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少,以致影响到LED的亮度。 解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。 即在显示本行各列数据的同时,传送下一列数据。 为了达到重叠处理的目的,列数据的显示就需要具有所存功能。 经过上述分析,就可以归纳出列驱动器电路应具有的功能。 对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。 这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。 方案一:采用时分复用的方法,把横引脚直接接到单片机的I/O口上,但如果做到点阵做得比较长时,用得比较多的I/O口,而且随着点阵的长度增加而增加。 方案二:采用串口输入并口输出的方法,主要用到芯片是74HC595和74HC164,此方案是由74HC595输出字码74HC164作选通。 由于74HC595是串口输入并口输出而且可以多块芯片级联,所要的I/O线比较少并不随便显示长度的增长而增多。 基于以上分析,选用方案二。 3系统硬件电路的设计硬件设计以40引脚单片机STC89C52为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。 驱动部份由两个移位存储器的74HC595和两个移位寄存器74HC164组成,74HC595负责列扫描数据,74HC164负责行扫描数据。 系统硬件整体电路整体电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。 整体电路如下图2所示。 图2 系统整体电路通入5V的直流电,送到单片机、74HC595的电源端,单片机开始工作。 单片机的PP3口输出低电平,输到点阵的列信号就是高电平,这样于74HC595相连的的输入点必须有低电平输出否则就不会有灯亮,、先给左面的74HC595导通再控制74HC595导通,这样从上到下从左到右依次扫描,根据程序中输入的字型码来显示出所设定的字。 因为市场上买不到16*16的点阵显示屏,所以在现实中,硬件部分采用了4块8*8的点阵显示屏来构成一块16*6 LED显示屏。 单片机采用MSC51或其兼容系列芯片,采用24MHZ或更高频率晶振,以获得较高的刷新频率,时期显示更稳定。 单片机的串口与列驱动器相连,用来显示数据。 P3口低3位与列驱动器相连,送出列选信号;~。 P0口和P1口空着,在有必要的时候可以扩展系统的ROM和RAM。 最小系统电路如下图3.图3单片机最小系统最小系统包括晶振电路和复位电路。 晶振电路是单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。 他是由一个晶振和两个瓷片电容组成的,晶振和瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。 瓷片电容作用是滤波,防止杂波干扰晶振的正常工作。 复位电路,给单片机一个复位信号一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,这时如果手按着一直不放,系统将一直复位,不能正常工作,在这里我们需要注意用的电容是电解电容,是有正负的,如果接反了,他就会爆炸。 [3]列驱动电路由集成电路74HC595构成。 它具有8位移位寄存器和一个存储寄存器,三态输出的功能。 而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本列数据的同时,传送下一列数据,既达到重叠处理的目的。 数据在SHcp的上升沿输入,在STcp的上升沿进入存储寄存器。 移位寄存器有一个串行移位输入(Ds)和一个串行输出(Q739。 )。 存储寄存器有一个并行8位的具备三态的总线输出,当使能OE时(低电平),存储寄存器的数据输出到总线。 74HC595引脚功能如表1所示。 表1 74HC595引脚说明符号引脚描述Q0~Q7GNDQ739。 MRSHCPSTCPOEDSVCC1~7(其中Q0为15脚)891011121314168位并行数据输入地串行数据输出主复位(低电平)移位寄存器时钟输入存储寄存器时钟输入输出有效(低电平)串行数据输入电源列驱动电路如图4所示。 图4 列驱动电路将2片74HC595进行级连,可共用一个移位时钟SCK及数据锁存信号RCK。 这样,当第一行需要显示的数据经过SCK时钟后便可将其全 部移入74HC595中,此时还将产生一个数据锁存信号RCK将数据锁存在74HC595中,并在使能信号G的作用下,使串入数据并行输出,从而使与各输 出位对应的场驱动管处于放大或截止状态;同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一列LED的正端都接高,显然,第一列LED管的亮灭就取决于74HC595中的锁存信号;此外,在第一行LED管点亮的同时,再在74HC595中移入第二列需要显示的数据,随后将其锁存,同时由列扫描控制电路将第一列扫描管关闭而接通第二列,使第二列LED管点亮,以此类推,当第十六列扫描过后再回到第一列,这样,只要扫描速度足够高,就可形成一幅完整的文字或图像。 行驱动模块由于4点阵显示器有16行,为充分利用单片机的接口,本电路中加入了2个74HC164,74HC164是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。 74HC164是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。 数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。 两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。 引脚图及引脚说明如表2。 时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0,Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。 主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。 具体引脚功能如表2所示。 表2 74HC164引脚说明符号引脚描述DSADSBQ0~Q3GNDCPMRQ4~Q7VCC123—6789101314数据输入数据输入输出地时钟输入(边沿触发)中央复位输入(低电平)输出电源在本驱动电路中,用两个74HC164串。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。