一、LED点阵显示器结构
LED点阵显示器是把LED按矩阵方式排列在一起,通过对每个LED进行发光控制,点亮不同位置的LED,从而完成各种字符及图形的显示。
一块8X8的LED点阵显示器由8行8列LED构成,对外共有16个引脚,其中有8根行线(Y0-Y7),8根列线(X0-X7)。
二、案例要求
采用单片机控制一块8X8 LED点阵显示器,稳定显示“爱心”图形。
三、案例分析
先选中第1行(0x01),同时给8列送11111111;然后选中第2行(0x02),同时给8列送10011001…最后选中第8行(0x80),同时给8列送11111111。每行点亮延时时间为1ms,第8行结束后,再从第1行开始循环显示。利用人眼视觉暂留效应,快速扫描每一行,看到的就是一个稳定显示的“爱心”图形。
四、案例代码
//功能:显示爱心图形
#include<reg51.h>
//实现软件延时
void delayms(unsigned int i)
{
unsigned char k;
while(i--)
for(k=0;k<120;k++); //120次空操作
}
void main()
{
unsigned char code led[]={0xff,0x99,0x66,0x7e,0xbd,0xdb,0xe7,0xff};//“爱心”字形码
//unsigned char code led[]={0xEF,0x00,0xEB,0x01,0xC7,0xAB,0x65,0xEF};//“东”字形码
unsigned char w,i; //定义行变量w,行数变量i
while(1)
{
w=0x01; //行变量指向第一行
for(i=0;i<8;i++)
{
P3=w; //行数据送P3口
P0=led[i]; //列数据(字形码)送P0口
delayms(1);
w<<=1; //行变量指向下一行
P0=0xff; //关显示
}
}
}
五、案例仿真