51单片机实验6-LED点阵的应用

实训目的:

1、编写程序通过控制51单片机引脚,在8*8LED点阵上显示循环依次显示0-9几个数字

实训步骤:

(一)LED点阵的应用

电路连接如下:

 主要器件:AT89C51、RES、RESPACK-8,MATRIX-8X8-GREEN

程序代码如下:

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define unit unsigned int
{	
	0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,
	0x00,0x10,0x30,0x10,0x10,0x10,0x10,0x38,
	0x00,0x38,0x44,0x04,0x08,0x10,0x20,0x7c,
	0x00,0x38,0x44,0x04,0x38,0x04,0x44,0x38,
	0x00,0x08,0x18,0x28,0x48,0x7c,0x08,0x08,
	0x00,0x7c,0x40,0x40,0x38,0x04,0x44,0x38,
	0x00,0x38,0x44,0x40,0x78,0x44,0x44,0x38,
	0x00,0x7c,0x04,0x04,0x08,0x10,0x10,0x10,
	0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x38,
	0x00,0x38,0x44,0x44,0x3c,0x04,0x44,0x38,
};
uchar i=0,t=0,h=0,num_index=0,k;
void main()
{	
	P3=0x80;
	num_index=0;
	TMOD=0x01;
	TH0=(65536-5000)/256;
	TL0=(65536-5000)%256;
	TR0=1;
	IE=0x82;
	while(1);
}
void led_screen_display() interrupt 1
{	
	TH0=(65536-5000)/256;
	TL0=(65536-5000)%256;
	P3=_crol_(P3,1);
	k=(num_index*8+i+h)%80;
	P0=~table_of_digits[k];
	i++;
	i=i%8;
	t++;
	if(t%31==0) h=++h%8;
	if(t==248)
	{	
		t=0x00;
		if(++num_index==10) num_index=0;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值