点阵LED汉字显示
2020-08-04肖娟
肖娟
摘要:LED点阵电子显示屏有色彩鲜艳、亮度高、工作稳定、功耗低、安装方便等优点,广泛应用于各种公共场合,如广告屏、宣传栏、银行叫号器等。本文主要讨论使用8×8LED点阵模块组成的16×16发光点阵,由实现单个汉字的显示原理过渡到多个汉字的动态循环显示。通过掌握单片机控制16×16LED点阵屏的汉字显示方法,能够设计并制作基于16×16LED点阵屏的汉字显示系统。
关键词:单片机;LED点阵;汉字显示;驱动电路
LED点阵显示器一般由基本点阵单元组成,它的屏体部分由微处理器(主要是单片机)和驱动电路控制运行,能够显示图像或文字。本文通过单片机来控制16X16点阵汉字系统的运行,采用逐行扫描的方式实现汉字的显示,主要分为两大部分:控制部分和LED点阵显示屏。控制部分的芯片是AT89S51单片机,利用c语言编程并下载程序,从而实现对单片机各个引脚的控制;LED点阵显示屏包括驱动电路和4个8X8点阵模块,74LSl38译码器输出控制显示屏的行扫描,单片机端口直接驱动列,通过对行列驱动电路的动态控制来实现汉字的显示。用点阵LED实现汉字显示,将从以下几个方面进行讨论。
一、LED点阵基础知识
单色LED点阵,是将很多单个LED按照矩阵的形式排列,通过控制每一个LED发光或熄灭,来显示各种复杂字符或图形。图像由很多“像素”组成,通过LED点阵来显示,就构成了整个图像。为节约成本,点阵显示往往采用动态扫描的方式显示。单色8X8点阵实物图和结构图如下图a,b所示,从图中可以看出,8X8点阵共由64个发光二极管组成,每个发光二极管放在行线和列线的交叉点上,当对应的某一行(H端)置1,某一列(L端)置0,则行列交叉位置的发光二极管被点亮。
二、LED点阵显示原理
简单的汉字显示屏的制作,由单片机控制汉字的显示内容,为了降低成本,16X16点阵使用了四块8X8模块,下面介绍16X 16点阵显示原理。如下图显示汉字“无”。
我们把要显示的点用二进制1表示,不显示的点用0表示。将字型数据分成上下两个8行,共16行,每行各占16列,如果每列分别用一位二进制数表示,这样每行将占用两个字节。因此,一个汉字可以用32个字节的点阵码来表示。如果采用逐行扫描方式,要在16X 16点阵上显示一个字符,则要把需要用到的汉字的字模以表格形式存储到单片机中,每一行以适当的速度分两次传送数据(左右两部分),16行全部送完后,就可显示出一帧汉字。LED有一定的响应时间和余辉效应,如果给它的电平持续时间很短,如1us将不能充分点亮,一般要求电平持续时间是1ms左右。当一个LED点亮后撤掉电平,它不会立即熄灭,这样从左到右扫描完一帧,看起来就是同时亮的。了解汉字的显示原理之后,如何得到汉字的字模信息呢?可以先描点画图像再转换,也可以利用汉字字模生成软件,来获取字符的点阵字模。
三、LED点阵驱动电路
如果仅使用一只8X8LED点阵作为显示器件,可以采用8只数码管动态显示的驱动电路,如果要显示更多像素点,则需要将多个8X8点阵组合使用,用四块8X8点阵可以组成16X16点阵,需要行线和列线各16根來驱动电路,可以采用锁存器和译码器等电路来驱动。如果要显示更多点,则需要更多LED点阵模块组合,更多显示驱动电路。下面的点阵编程应用中使用74LSl38译码器来作为行驱动。
四、LED点阵编程应用
基于以上LED点阵的基本知识和汉字显示原理,可以编程实现16X16汉字点阵上轮流显示“新年快乐”。原理图如下.
16X16汉字点阵由4个8X8点阵组成,将一个汉字点阵分成16行16列,横向逐行扫描、取模,字节倒序。四个74LSl38译码器作为行驱动,片选信号分别受P23,P24,P25,P26引脚电平控制。我们将一个汉字分成上下两部分,每部分有8行16列,每一行又分成左右两部分,每个数据占一个字节。点阵上半部分,首先输出第一行左边一个字节的数据,再输出右边的数据,二至八行同理,直到输出完上半部分所有数据;下半部分和上半部分类似,逐行输出每行从左到右,这样,从P1口总共输出32个字节,即构成一个汉字。当一个汉字显示完一段时间,则取下一个汉字的32个字节输送,如此显示完四个汉字,又从第一个汉字开始循环。关键是要找出每一个汉字起始字节在数组中的位置,从起始位置开始取连续32个字节。指向每个汉字点阵开始位置,用k=32*m表示,m从0开始取0到3。源程序如下:
五、结论
总之,学习用点阵LED实现汉字显示,要掌握LED点阵显示原理,能够理解驱动电路原理图,选择汉字横向还是纵向取模,根据电路图找到显示汉字的合适方法。理解汉字之间怎么过渡,找到每一个汉字点阵的32个字节第一个字节在数组当中的位置,思路要清晰,编好程序并且反复调试。