1.LED点阵显示器结构
LED点阵显示器亦称LED点阵或LED矩阵板。它是以发光二极管为像素,按照行与列的顺序排列起来,用集成工艺制成的显示器件,具有亮度高且均匀,高可靠性,接线简单,拼装方便等优点,被广泛用于大屏幕LED智能显示屏、智能仪器等设备中。常见的规格有8×8点阵、16×16点阵的单色、彩色LED点阵显示器。图5.6所示为单色8×8 LED点阵模块及其内部电路。
图5.6 单色8×8 LED点阵模块及其内部电路
LED点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号,如5×7点阵显示器用于显示西文字母,5×8点阵显示器用于显示中西文,8×8点阵可以用于显示简单的中文文字,也可用于简单图形显示。用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过PC机或单片机控制驱动。
2.LED点阵显示器显示方式
LED点阵显示系统中各模块的显示方式有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。
点阵式LED汉字广告屏绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。将连续的几帧画面高速地循环显示,只要帧速率高于24帧/s,人眼看起来就是一个完整的、相对静止的画面。最典型的例子就是电影放映机。在电子领域中,这种动态扫描显示方式极大地缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。
下面以8×8点阵模块为例,介绍其使用方法及控制过程。图5.6中,红色水平线Y0、Y1、…、Y7叫作行线,接内部发光二极管的阳极,每一行8个LED的阳极都接在本行的行线上,相邻两行线间绝缘。同样,蓝色竖直线X0、X1、…、X7叫作列线,接内部每列8个LED的阴极,相邻两列线间绝缘。
在这种形式的LED点阵模块中,若在某行线上施加高电平(用“1”表示),在某列线上施加低电平(用“0”表示),则行线和列线的交叉点处的LED就会有电流流过而发光。例如,Y7为1,X0为0,则右下角的LED点亮。再如Y0为1,X0~X7均为0,则最上面一行8个LED全点亮。
现描述一下用动态扫描显示的方式,显示字符“0”的过程,如图5.7所示。
若形成的列代码为00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。送显示代码过程如下:送第一列线代码到P3端口,同时置第一行线为“0”,其他行线为“1”,延时2 ms左右,送第二列线代码到P3端口,同时置第二行线为“0”,其他行线为“1”,延时2 ms左右,如此下去,直到送完最后一列代码,又从头开始送。
利用16×16点阵可以显示国标一、二级汉字,西文,数字和字符,常见的汉字均可用32个字节点阵的16进制码表示。以显示汉字“大”为例,来说明其扫描原理。
每一个字由16行16列的点阵组成显示。如果采用8位的AT89C51单片机,一个字需要拆分为两个部分。一般将它拆分为上部和下部,上部由8×16点阵组成,下部也由8×16点阵组成。
在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的P00~P07口。方向为P00~P07,显示汉字“大”时,P05点亮,控制信号为1,其他二极管为灭,控制信号为0,由上往下排列,二进制为00000100,转换为16进制为04H。字符“大”如图5.8所示。
图5.7 字符“0”
图5.8 字符“大”
上半部第一列完成后,扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从P27向P20方向扫描,从图5.8中可以看到,这一列全部为不亮, 即为00000000,16进制则为00H。
然后单片机转向上半部第二列,仍为P05点亮,为00000100,即16进制04H。下半部分的扫描,P21点亮,为二进制00000010,即16进制02H。
依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“大”的扫描代码为
04H,00H,04H,02H,04H,02H,04H,04H
04H,08H,04H,30H,05H,0C0H,0FEH,00H
05H,80H,04H,60H,04H,10H,04H,08H
04H,04H,0CH,06H,04H,04H,00H,00H
通过以上分析得出,无论显示何种字体或图像,都可以采用上述方法来分析出它相应的扫描代码,从而显示在屏幕上。
3.LED点阵与单片机的接口电路
目前常见的是并行传输方式,通过8位锁存器将8位总线上的列数据进行锁存显示,各8位锁存器的片选信号由译码器提供。此种方式的优点是传输速度快,对微控制器(MCU)的通信速度要求较低。下面以51单片机控制8×8 LED点阵显示数字0~9的数字为例予以介绍。
LED点阵与51单片机的接口电路如图5.9所示,此电路核心件是MCS-51单片机(AT89C51),包括时钟电路、复位电路以及74LS245驱动电路。
图5.9 LED点阵与51单片机的接口电路
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code Table_of_Digits[]=
{
0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00, // 0
0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00, // 1(www.xing528.com)
0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00, // 2
0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00, // 3
0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00, // 4
0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00, // 5
0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00, // 6
0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00, // 7
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, // 8
0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00 // 9
};
uchar i=0,t=0,Num_Index;
//主程序
void main()
{
P3=0x80;
Num_Index=0; //从0 开始显示
TMOD=0x00; // T0 方式0
TH0=(8192-2000)/32; // 2 ms 定时
TL0=(8192-2000)%32;
IE=0x82;
TR0=1; //启动T0
while(1);
}
// T0 中断函数
void LED_Screen_Display() interrupt 1
{
TH0=(8192-2000)/32; //恢复初值
TL0=(8192-2000)%32;
P0=0xff; //输出位码和段码
P0=~Table_of_Digits[Num_Index*8+i];
P3=_crol_(P3,1);
if(++i==8) i=0; //每屏一个数字由8 个字节构成
if(++t==250) //每个数字刷新显示一段时间
{
t=0;
if(++Num_Index==10) Num_Index=0; //显示下一个数字
} }
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。