点亮点阵LED模块

准备工作:
材料:
点阵LED模块、51单片机系统板,杜邦线。
硬件连接




按原理图用杜邦线连接系统板和模块。
LEDPin_1 接系统板 P1^0;
LEDPin_2 接 系统板P1^1;
LEDPin_3 接系统板 P1^2;
LEDPin_4 接系统板 P1^3;
LEDPin_5 接 系统板P1^4;
LEDPin_6 接 系统板P1^5;
LEDPin_7 接 系统板P1^6;
LEDPin_8 接 系统板P1^7;
LEDPin_9 接 系统板P2^0;
LEDPin_10 接 系统板P2^1;
LEDPin_11 接 系统板P2^2;
LEDPin_12 接 系统板P2^3;
LEDPin_13 接 系统板P2^4;
LEDPin_14 接 系统板P2^5;
LEDPin_15 接 系统板P2^6;
LEDPin_16 接 系统板P2^7;
编写程序

用keil编写程序:
#include <reg52.h>
bit mark = 0;
unsigned char data_buff = 0;
//字模数据我是用字模提取软件v2.1提取的。
unsigned char LedZhen[ ][8]={{0x00,0x18,0x24,0x24,0x24,0x24,0x18,0x00}, //数字0
{0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x7C},//数字1
{0x18,0x24,0x24,0x24,0x3C,0x24,0x24,0x42}, //字母A
};
void main(void)
{
EA = 1; //使能总中断
TMOD = 0x01; //设置 T0 为模式 1
TH0 = 0xFC; //为 T0 赋初值 0xFC67,定时 1ms
TL0 = 0x67;
ET0 = 1; //使能 T0 中断
TR0 = 1; //启动 T0
data_buff = 0;
while(1)
{
if(mark==1)
{
mark=0;
data_buff++;
if(data_buff>=3)
{
data_buff=0;
}
}
}
}
/* 定时器 0 中断服务函数 */
void InterruptTimer0() interrupt 1
{
static unsigned char i = 0;
static unsigned int cnt = 0;
TH0 = 0xF8; //重新加载初值
TL0 = 0xCD;
P2 = ~(0X01<<i);
P1 = LedZhen[data_buff][i];
cnt++;
if(cnt>=500)
{
cnt=0;
mark=1;
}
i++;
if(i>=8) i=0;
}
烧录程序

用STC-ISP软件烧录文件:
实验结果
给模块供电上机检验结果









