LED点阵屏介绍
LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。LED点阵屏广泛应用于各种场合,如:广告屏、公告牌等。
分类:
按颜色:单色、双色、全彩;
按像素:8*8、16*16等(大规模的LED点阵屏通常由很多个小点阵屏拼接而成);
显示原理
如图为8*8点阵模块,总共有8×8=64个LED灯,由16个引脚来控制,其中8个为正极(Da、Db、...、Dh);8个为负极(P00、P01、...、P07);
LED点阵屏与数码管一样,有共阴和共阳极两种接法,不同的接法对应的电路结构不同(对于单色点阵屏区别不大,对于双色或多色区别大)。
LED点阵屏需要逐行或逐列扫描,才能使所有LED同时显示。
原理:当16个引脚状态确定,LED点阵屏中的所有LED状态也确定,就构成了一幅画面。不停地改变16个引脚的状态,就会组成不同的画面,也就显示出了动态画面。
74HC595芯片
74HC595芯片是一个串行输入、并行输出的设备。内部包含一个8位移位寄存器、一个存储器以及三态输出门电路。其中移位寄存器和存储器都有相互独立的时钟。
用三根线(SER、SRCLK、RCLK)输入串行数据,8根线输出并行数据;多片级联后可输出16为、24位、32位等数据。
-
引脚定义
OE:输出使能(上图为低电平有效),即当其为0时这个芯片才能工作(通过跳线帽将J24的VCC和OE连接在一起即可)。
SER(DS):串行数据输入。
RCLK:移位寄存器时钟。当出现上升沿时,将移位寄存器的数据存到存储寄存器。
SRCLR(MR):串行清零端(低电平时将清空移位寄存器的数据),一般不用,接高电平即可。
SRCLK:串行时钟。当出现上升沿时,移位寄存器的数据向前移位,并从SER上读取新的一位数据存到移位寄存器里(压子弹一样)。
QH':当串行数据多于8位时,会将已有的位挤出去。级联后可作为下一级的SER引脚输入。
Qa到Qh:并行输出引脚。
-
工作流程
(1)每个芯片的数据都是通过SER引脚输入,并保存到移位寄存器中;
(2)SRCLK引脚出现一次上升沿,就读取SER引脚状态,将数据保存到移位寄存器中;
(3)当需要传递的数据都保存到各级芯片的移位寄存器后,RCLK引脚出现一次上升沿,就将移位寄存器的值刷新到存储寄存器中,更新8个并行输出引脚的状态;
-
芯片应用
通常使用74HC595芯片来控制LED点阵屏,优点如下:
1、采用74HC595芯片,只需3个引脚就能控制LED点阵屏,减少了引脚的使用数;
2、控制更大的LED点阵屏,还是只需使用3个引脚,只是要增加级联的74HC595芯片数量;
LED点阵屏显示图片代码:
#include <REGX52.H>
#include <delay.h>
sbit RCK=P3^5; //RCLK
sbit SCK=P3^6; //SRCLK
sbit SER=P3^4; //SER
void _74HC595(unsigned char Byte){
unsigned char i;
for(i=0;i<8;i++){
SER=Byte&(0x80>>i);
SCK=1;
SCK=0;
}
RCK=1;
RCK=0;
}
void LEDshow(unsigned char x,y){
_74HC595(y); //代表这一列亮哪几个灯
P0=~(0x80>>x);//代表第几列亮
Delay100us();
P0=0xFF;
}
void main (){
SCK=0;
RCK=0;
while(1){
LEDshow(0,0x70);
LEDshow(1,0x88);
LEDshow(2,0x44);
LEDshow(3,0x22);
LEDshow(4,0x22);
LEDshow(5,0x44);
LEDshow(6,0x88);
LEDshow(7,0x70);
}
}