基于STC89C55RD+单片机的LED点阵显示系统的设计
扫描二维码
随时随地手机看文章
1 引言
在车站、商场、学校等一些需要发布多变的实时信息或进行广告宣传的场所,黑板、纸张或是霓虹灯广告牌这些传统的媒介手段,不论是在显示效果还是可修改性上都已无法满足当前的需求。而 LED点阵显示屏具有耗电省、成本低、寿命长、占用空间小以及能够实时显示等特点,而且显示内容的信息量大,用户可随时任意自行编辑修改显示内容,因此,近年来已得到了广泛应用。
2 总体设计
系统采用了上位机——下位机的结构构建,上位机为 PC机,通过串行通信接口与下位机显示系统进行通信[1],以实现对显示内容的实时擦除、更新等操作;下位机系统主要包括单片机控制电路和显示电路两部分,汉字显示采用 16x16点阵模式,通过单片机的控制,实现字符从右往左滚动的动态显示效果。基本框图如图 1所示。
500)this.style.width=500;" border="0" />
3 系统的硬件结构
3.1 MCU的选择
MCU是整个下位机系统的核心部件,其性能和片内资源很大程度上决定了该系统工作的灵活性、先进性和稳定性。基于此,本系统选用了 STC公司生产的 STC89C55RD+增强型 51单片机。
STC89C55RD+单片机的指令系统、硬件结构以及片内资源与标准8052单片机完全兼容,采用DIP40封装形式;支持的最高时钟频率为80M,能最大限度地提高MCU的运行速度;片内包含大容量的20KBFlash程序存储器和1KB的数据存储器,其内部可用Data Flash达58个扇区共29KB;具有在系统可编程(ISP)功能和在应用可编程(IAP)功能,可实现远程软件升级,无需编程器,从而大大缩短开发复杂度,同时可节省购买编程器的额外投入。
3.2 串行通信
系统上位机和下位机通过串行通信接口进行联系。 STC89C55RD+单片机内部含有一个可编程的全双工串行通信接口,即 RXD(P3.0)和TXD(P3.1),具有 UART的全部功能,该接口电路能同时进行数据发送和接收。一般情况下只要通过RXD、TXD和GND三根线就可以实现与上位机PC的串行通信,根据通信距离的远近,可以选择RS232或RS485通信方式,由于本系统中显示屏控制电路与上位机PC的距离较近,故选用了RS-232标准总线接口。具体电路图如图2所示。 [!--empirenews.page--]
500)this.style.width=500;" border="0" />
3.3 驱动及扫描电路 LED点阵选用8x8模块,每 4块排列成一个16x16的点阵,用于显示一个汉字。点阵每一行的所有LED共阴极,每一列的所有LED共阳极。
因为单片机I/O口的驱动能力有限,所以每一行LED阴极通过一个三极管8550与电源相连,I/O口仅需要提供几个毫安的灌入电流即可控制其通断。考虑到本系统可以同时显示六个汉字,故每一列 LED的阳极都通过一个限流电阻和一个三极管8550与电源相连,当六个汉字的同一行汉字字模(即12个字节)通过锁存器74HC377并行送出后,由移位寄存器 74HC595输出行选通信号,来点亮该行的LED,接着再送下一行数据,再选中下一行有效,直到16行全被扫描过一遍。至此,一幅完整的文字信息就显现出来,然后按这种方式反复扫描,借助于程序的控制,即可实现信息从右至左的动态显示了。具体电路图如图3所示。
500)this.style.width=500;" border="0" />
该系统的软件主要实现的功能包括:上位机信息(或命令)的发送和下位机点阵显示内容及方式的控制两部分。
4.1上位机软件
上位机信息(或命令)的发送使用普通的字模提取软件和串口调试软件即可,在与下位机进行通信时,须保证双方具有相同的数据格式和波特率,本设计采用 RS232通信,波特率为9600bit/s。同时,制定了上下位机之间的通信协议,信息包格式如图4所示。
500)this.style.width=500;" border="0" />
4.2下位机软件
LED点阵的显示内容及方式主要由单片机的程序进行控制。程序采用模块化结构,主要包括有主程序、串口中断服务子程序以及扫描显示子程序等。
(1)主程序为顺序结构,主要完成系统对 I/O口和一些变量的初始化,定时器初始值、串行通信工作方式、以及波特率的设置[2],然后循环调用扫描显示子程序,显示原来Data Flash区中已存在的汉字信息。
(2)串口中断服务子程序采用接收中断启动[3],主要负责接收来自上位机 PC发送的信息,包括欲显示的内容以及命令字节,并根据命令完成相应的信息写入、擦除等操作,最后开中断返回主程序。其流程图入图5所示。
其中信息的写入、擦除等操作主要由单片机的IAP功能来完成。 IAP,即在应用可编程,是指在程序运行时程序存储器可由程序自身进行擦写。通过IAP功能的相关指令,既可以将 欲显示的数据写入到程序存储器指定的扇区中,也可以根据需要擦除相应扇区中的数据。这样,数据就如同烧入的程序一样,掉电不会丢失。当然写入数据的区域与程序存储区是分开的,以使程序不会遭到破坏。
[!--empirenews.page--]
(3)扫描显示子程序则负责从显示缓冲区取出字模,输出行选通信号和列扫描信号,进行动态扫描显示。
500)this.style.width=500;" border="0" />
5 结束语
本点阵显示系统无需外扩程序存储器和数据存储器,通过STC89C55RD+单片机的IAP功能实现信息的实时发布和更新。该系统外形美观、工作稳定、字符清晰且字体可自由设定,现已实际应用于我院作为信息发布的主要平台。另外,可对系统稍加改进,便可实现通过一台计算机来控制多块显示屏,以适应不同场所、不同时间显示不同信息的需要。如果在该系统的基础上添加无线通讯模块[4],就可以开发出基于无线数据传输的 LED显示系统。
本文作者创新点:该系统电路结构简单,没有外扩程序存储器和数据存储器,充分发挥了STC89C55RD+单片机的IAP功能,利用软件实现了信息的随时发布和更新。
参考文献:
[1]郭柯娓,李淑琴 .基于STC89C54RD+单片机的点阵显示屏的设计[J].辽宁大学学报,2008,35(1):28-31
[2]侯丽玲.基于AT89S52单片机的LED点阵显示屏控制系统的设计[J].漳州职业技术学院学报,2008,10(3):70-73
[3]张永峰,王宜怀 .基于Motorola新型单片机的汉字点阵显示屏的设计与实现 [J].微型电脑应用,2005,21(4):17-19
[4]张明波.基于单片机的点阵 LED显示系统的设计[J].微计算机信息 ,2007,23(2-2):85-86