下面是一个8x8的点阵LED结构
从图上看,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置高电平,某一列置低电平时,则相应的二极管就亮。
将许多这样的模块组合在一起,就是我们通常说的单元板/模组,而驱动其显示需要显示驱动电路和诸如单片机之类的智能控制芯片。通常我们的单元板/模组是带有显示驱动电路的,我们还需要带有单片机的控制卡才能将我们所需要显示的文字/图形显示在屏幕上。
电路原理图示如下:
无论文字还是图形都是由点阵组成的,比如我们常用的汉字,完整的点阵由16x16、32x32等等,每个点就是一个像素点。
将黑点处(点亮的像素点)定义为1,白点处(不亮的像素点)定义为0,就可以编写成能在单片机中保存的字型格式:
{0xDF,0xFD,0xDF,0xFD,0x03,0xC0,0xDF,0xFD,0xDF,0xFD,0x01,0x80,0xDF,0xFD,0xEF,0xFB,
0xFF,0xFF,0x7B,0xEF,0x7C,0x9F,0x77,0xF5,0x77,0xEB,0x7B,0xEB,0x5F,0xFF,0xBF,0xFF},
{0x7F,0xFF,0x01,0xC0,0x7F,0xFF,0x03,0xE0,0xFF,0xFF,0x07,0xF0,0xF7,0xF7,0x07,0xF0,
0xFF,0xFF,0x00,0x80,0xFF,0xFF,0x07,0xF0,0xF7,0xF7,0xF7,0xF7,0x07,0xF0,0xFF,0xFF},
{0xBF,0xFF,0xBB,0xFD,0xBB,0xF3,0xBB,0xF7,0x01,0x80,0xDB,0xFF,0xDF,0xFF,0x1F,0xF8,
0xFF,0xFF,0xAF,0xFB,0xAF,0xFB,0x77,0xFD,0xFB,0xFE,0x7D,0xF9,0x9E,0xC7,0xE7,0xEF},
{0xFF,0xEF,0x81,0xEF,0xBD,0xEF,0xAD,0xEF,0xAD,0x80,0xAD,0xE7,0xAD,0xE7,0xAD,0xEB,
0xFF,0xFF,0xAD,0xED,0xEF,0xED,0xD7,0xEE,0xB7,0xEF,0x3B,0xEF,0xBD,0xEB,0xFE,0xF7}
这是16x16的点阵汉字,每个汉字32个字节。
比如我们要显示"恭喜发财"这4个字,首先:送出"恭喜发财"的各头2个字节0xDF0xFD0x7F0xFF0xBF0xFF0xFF0xEF每个字节都是8位,这样一共送出了8x8=64位(列),送出这些位信号是通过DI信号端送出的(串行送出),在每送出1位时CLK信号端都要高低变换一次,称为串行移位,使得64位(列)的每一位都被移送到了74HC595的输入端口上。送出锁存信号STB,即STB信号高低变换一次,这样74HC595的输入端口上64位(列)数据就被送到74HC595的输出上,一行显示就出来了。锁存信号也使得下一行数据串行移位送出不会影响到上一行的显示。
由单片机再通过74LS138变换ABCD的组合,选出下一个显示行。重复的过程,但送出的数据相应的向后移动,即"恭喜发财"的3-4字节、5-6字节。。。。。。。行选择也是从第1行到第16行,16行显示一遍称为一个显示刷新周期,无论LED显示屏的大小如何,一个显示刷新周期必须在20毫秒以内完成,否则会出现闪动,单片机速度很快,32行200列以内的显示通常是没有问题的。但当LED显示屏更大时就要选择速度更快的单片机或DSP来完成了。
完成LED显示的功能是由控制卡来实现的,无论简单的单色屏还是复杂的全彩屏,显示原理都是一样的,很简单。但如要实现诸如左右移动、飞入飞出、嵌色变换等特殊效果,还需要在单片机或DSP上编写非常复杂的算法程序,却不是一般人能做到的。好在现在有上百家控制卡生产研发的厂家公司,他们推出有性能各异的控制卡可以供我们选择,我们一是要看他们的功能,还要看他们能支持的LED屏像素点,功能越多、支持的像素点越多,价格越贵。