基于单片机控制的LED点阵显示屏的设计与仿真
2016-03-05徐航
徐航
摘要:LED点阵显示屏以其亮度高、寿命长、视角大、性价比高及面积可定制等优势广泛应用于各种显示场合。以单片机为控制核心,文章设计了一种分辨率为16×128的条型LED显示屏。为了验证设计,运用Proteus软件绘制电路硬件原理图,并通过KeilC51软件编写控制程序,通过2个软件的联合调试来仿真整个设计。整个设计比较实用,控制程序可以针对实际硬件电路进行调整和移植,可以较好地满足-中英文及简单图案的显示要求。
关键词:LED点阵显示屏;单片机;Proteus仿真
随着LED显示技术的深入发展,LED点阵显示系统在各种显示场合的应用日益广泛。其中,条型LED点阵显示屏在火车车厢、地铁、银行、公交车、机场等信息发布场合的应用非常普遍。这些LED点阵显示屏既是重要信息的发布窗口,也是广告宣传的重要媒。很多常见的LED点阵显示屏都是单一的平移显示或静态显示。本设计为基于单片机控制的LED点阵显示屏,可以实现多种中英文显示效果,具有可靠性好、性价比高的特点。
1.LED显示系统
1.1LED点阵显示原理
LED点阵显示屏由特定形状的发光二极管(LED)按照矩阵排列方式连接而成,常见的LED点阵模块的分辨率为8X8,5X8,5X7,各种尺寸的LED显示屏都是由多个点阵模块组合而成的。以最常见的分辨率为8X8点阵模块为例,一个8X8的点阵由64个发光二极管按照每行发光二极管的阴极相连引出l根引脚,每列发光二极管的阳极相连引出l根引脚,总共引出8根行引脚和8根列引脚,组成一个16根引脚的8X8点阵。使用时,行引脚接低电平,列引脚接高电平,行列交叉的发光二极管将导通发光。在显示中英文字符或图案时,需要采用逐行扫描的方式来驱动点阵。具体来说,就是在行引脚逐行给定显示所需要的电平信号,达到逐行“选定”的目的,与此同时,在列引脚给定显示所需要的电平信号则相应位置的发光二极管导通发光。这种行引脚逐次扫描、列引脚逐次输出显示内容所需的电平的逐行显示方式一次点亮一行发光二极管,遍历所有行后,完成一次显示扫描。当显示扫描的频率逐渐增加并大于24Hz的时候,就达到了所谓的闪烁临界频率。人的肉眼由于视觉暂留效应无法识别大于闪烁临界频率的闪烁,而识别为一直发光。这样就实现了让人看起来整个屏幕都在显示的效果。
以单片机为控制核心的LED显示屏,由于引脚驱动能力的限制,需要设计相应的驱动电路来驱动LED显示屏的显示,一般可以选用现成的缓冲器芯片或者直接选用三极管驱动。为了充分利用单片机有限的I/0引脚,显示屏的行引脚一般选用译码器和三极管放大器的组合来输出信号,列引脚则利用移位寄存器来输出信号。
1.216×128长条型LED显示系统的构成
长条型LED显示屏在火车车厢、银行服务窗口、公交车等场合应用时,都需要与相关的设备进行通信。因此这些显示系统一般都是由一个控制核心进行控制,通过常用的CAN总线或者RS485总线与其他单元进行数据传送。具体的系统结构如图1所示。
2.仿真电路设计
2.1仿真环境
由英国的LabcenterElectronics公司开发的EDA软件Proteus是当今应用最广泛的单片机开发仿真工具。本设计应用Proteus中的ISIS软件进行电路原理图的设计和仿真。
整个显示系统采用AT89C8l单片机为控制核心,显示屏由32块分辨率为8X8的LED点阵模块组合而成。最终形成一个16行128列的显示屏,其中16根行引脚连接1片4 6线译码器74LSl54的输出引脚,译码器的4根输入引脚由单片机的I/0引脚控制;128根列引脚的信号由16片74HC595移位寄存器提供。将相关的外围电路和单片机最小系统连接好后,整个电路设计部分就完成了。
2.2单片机系统及外围电路
单片机采用AT89C51型号,选用振荡频率在24MHz以上的晶振来保证显示屏的显示稳定。控制显示屏行引脚信号的译码器和控制列引脚信号移位寄存器都由单片机的Pl口控制。单片机工作所需的晶振电路、复位电路等基本连线都按标准的单片机最小系统连接。整个电路比较简洁实用,没有因为LED显示屏而占用过多的I/0口资源,为LED点阵显示系统与其他系统的通信提供了便利。
2.3LED点阵显示屏
为了更好地显示多个汉字,整个显示屏的分辨率设计为16×128,以16×16分辨率显示一个汉字,整个显示屏一次可以显示8个汉字。以8X8的点阵模块为基本单元,32块模块紧密排列成16行、128列的点阵显示屏。
2.4行驱动电路
行驱动电路由4-16译码器74LSl54和电流放大电路组成。74LS154的4个输入引脚连接单片机的P1.0~P1.3引脚,使能端正常连接。整个显示屏一行有128个发光二极管,如果全部点亮的话,通过译码器输出引脚的电流将达到1280mA,这显然超过了74LS154引脚的驱动能力。因此在74LSl54的每一个输出引脚连接一个2N3392三极管来放大电流,以保证显示屏清晰显示。
2.5列驱动电路
列驱动电路由16片74HC595移位寄存器级联组成,前—片寄存器的Ds引脚与后一片的Q7引脚连接,最后一片寄存器的DS引脚连接单片机P1.4引脚,所有寄存器的控制引脚SHCP并联至单片机的P1.5引脚,控制引脚STCP并联至单片机的P1.6引脚,使能端0E并联至单片机的P1.7引脚。
3.软件设计
显示屏软件的主要功能是接收上位机发送的显示数据并向显示屏提供各种控制信号,保证数据的正常显示。依据软件工程中的分层设计思想,本文把显示屏的软件分为底层的显示驱动程序和上层的系统应用程序。显示驱动程序的主要功能是依据显示的需要产生所需的各种控制信号,保证显示数据正确地传送至显示屏,并配合完成LED点阵显示屏的扫描工作。系统应用程序则完成系统初始化、单帧图像的扫描显示和动态变化显示效果的处理等工作。
3.1开发环境
考虑到程序的可移植性和复杂算法的实现,本文采用c语言进行控制程序设计。为配合Proteus软件联合调试,选用了KeilC5l作为开发环境。利用2个软件的联合调试功能,可以很好地进行仿真开发。
3.2显示驱动程序设计
显示驱动程序通过对单片机定时器T0的控制,实现显示屏刷新频率的稳定输出和精确控制,然后通过查询得到当前点亮的行号,从字码数组中读取下一行显示的字码数据,并通过串口发送至移位寄存器。为了避免“拖尾”现象的产生,在现实数据完成锁存前,驱动程序必须先关闭显示屏显示,即进行“消隐”操作,当数据锁存完成后再重新打开显示。
3.3一帧图像的静态显示
LED点阵静态显示一帧图像是动态显示图像的基础。所以要实现显示屏的动态显示必须先设计好完整显示一帧图像的控制程序。具体的工作流程是首先由单片机的串口接收外部设备传送的字码,并存入字码数组。由单片机控制74LS154选定LED点阵显示屏的第1行,将屏幕第1行对应的显示内容通过移位寄存器移位锁存操作后输出到各列,完成第1行的显示。如此逐行显示,循环16次,完成一帧图像的显示一次扫描。控制好每一行的显示时间,将一帧图像的刷新频率控制在24Hz以上,实现稳定的显示。具体的程序流程如图2所示。
3.4动态图像的显示
在稳定实现一帧图像的基础上,通过控制字码数组的变化形成新的一帧图像。不同的数组变化方式就能实现不同的动态显示效果。具体的字码数组变化控制也可以考虑由上位机的程序进行,以提高显示效率,减轻单片机系统的运算负担。这些设计需要根据显示场合的具体情况灵活处理。
4.结语
通过仿真实验的验证,以单片机为控制核心的长条型LED点阵显示系统,显示效果好,画面稳定,能实现中英文字符及图案的动态显示,电路结构简单,程序可移植性高,整体性能稳定可靠,成本低廉,可根据实际的显示场合进行软硬件订制,体现了良好的实用性。