基于单片机的LED汉字条屏显示技术
扫描二维码
随时随地手机看文章
摘要:文中设计了一种基于单片机动态扫描控制的16x16LED汉字显示条屏,简单分析了汉字显示的原理,并对LED显示模块单元如何进行行列信号控制及信号传输中的驱动问题进行了研究。结果表明采用并行数据输入、串行数据输出的专用电路可大大减少CPU的辅助时间,提高数据的发送速度。
LED显示屏是八十年代后期在全球迅速发展起来的新型信息显示媒体,它利用发光二极管构成的点阵模块或像素单元组成在面积显示屏幕,有可靠性高、使用寿命长、环境适应能力强、价格性能比高、使用成本低等特点。在短短的几十年中,技术、产业都取得了长足的进步,已经发展成为重要的现代信息发布媒体手段,在证券交易、金融、交通、体育、广告等领域得到广泛应用,随着社会信息化的进程,LED显示屏在信息显示领域的应用愈加宽广。
目前LED显示屏的种类越来越多,从使用场合及亮度考虑可分为室内和室外屏,从扫描方式可分为动态扫描显示屏和静态扫描显示屏。室外使用的交通诱导屏,通常采用计算机同步控制的静态扫描显示,每个像素由几个高亮的LED发光管组成,可做成多色或全色。其优点在于播放的内容信息量大,实时性强,且由于采用静态显示,亮度高;其缺点是硬件电路复杂,成本高。室内使用的由8x8LED点阵拼成的显示屏也有同步和异步之分,同步控制显示屏由计算机作为主控器,异步控制显示屏的主控器可采用单片机。单片机控制的单色显示屏由于结构简单,成本低廉,深受人们的喜爱。设计一个室内用16x16点阵LED图纹显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。
1 汉字显示的基本原理
16x16的点阵共有256个发光二极管,用各个位的亮暗来表示一个字,凡是笔画经过的地方都为1(亮),没有笔画的地方都为0(暗),这样就可以表示不同的汉字。从理论上说,不论显示图像还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动方式。在计算机中,所有的数据都是以0和1保存的,按不同的数据操作,可以得到不同的结果。而对于中文显示操作,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。这样就可以用一组数字来表示汉字的内码,数字的各位信息来记载汉字的形状,即:字模。只要将汉字的相应字模信息文件存入ROM,形成汉字编码;在使用时,先根据汉字编码组成语句,添加到程序的相应位置,即可显示相应的汉字。
2 硬件电路组成及工作原理
该LED汉字条屏采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74HC154)、16x16LED点阵5部分组成。其中,AT89C51是一种带4 kB闪烁可编程可擦除只读存储器的低电压、高性能CMOS型8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1 000次写/擦循环,数据保留时间为10年。它是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。
2.1 列驱动电路设计
列驱动电路由集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且一位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。
列驱动电路如图1所示。一个模块有4片74HC595,8块LED点阵,每一片74HC595限流电阻后接2块LED点阵,图中只画出了部分电路。DATA IN和DATA OUT分别为模块的数据输入和数据输出,RCLR为74HC595移位寄存器信号索入输出所存器的时钟信号,CLK为同步时钟。将模块中前一片8位移位寄存器74HC595的数据输出(07)与下一片的输入(SER)相连接组成32位的串行数据链,每一位控制一列发光管,若显示方式为1/16占空比的动态扫描方式,则每一列控制16个方光管。当74HC595的某一输出引脚为低电平时,该列上对应行扫描选中行的像素点亮。由于吸收电流的能力相对较强,且为动态扫描,因此在74HC595的输出脚上只需串接一个47 Ω的限流电阻而不需要再用列驱动也能得到满意的亮度效果。
图1 列驱动电路
2.2 行驱动电路设计
采用逐行扫描的方式,当全部列信号准备就绪后,控制信号锁存器输出,相应的行信号应同时跟上。由于采用点阵的行为共阳极,行选的作用就是为待点亮行提供电源。8位移位寄存器方法的行选电路如图2所示。该电路中LS为串行行选信号,MR为74HC164的清零信号,LCLK为行选同步时钟。74HC164的输出经反相后控制三机管的导通与截止,从而分别控制第1行LINE1至第16行LINE16与电源接通。从极端情况来看,驱动功率应满足1行全部32个LED点亮的要求,尽管LED点阵要求单点驱动电流在10~20 mA,但由于采用1/16占空比的动态扫描显示方式,单个LED的瞬时电流即使未100mA,实际平均电流不到7 mA,因此驱动电流大于3 A即可。供方部分应采用达林顿管或开关管。
图2 8位移位寄存器方法的行选电路
2.3 AT89C51单片机的外围电路
单片机采用89C51或其兼容系列的芯片,采用24 MHz或更高频率的晶振,以获得较高的刷新频率,为了使显示更稳定。单片机的串口与列驱动器相连,用来送显示数据。P1口低四位与行驱动器相连,送出行选信号;P1.5~P1.7口则用来发送控制信号。P0和P2口空着,在有必要时可以扩展系统的ROM和RAM。
3 系统程序的设计
程序流程图如图3所示。
图3 程序流程图
根据软件分层次的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。
4 结论
LED显示屏硬件电路只要器件质量可靠,引脚焊接正确,一般无需调试即可正常工作。软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。这个方案设计的16x16点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、清晰无串扰;可用静止、移入移出等多种显示方式显示图形或文字。