单片机控制数码管显示
实验一 LED 数码管显示
一、实验目的:
掌握LED数码管的使用方法。
二、实验要求:
,时间1秒,然后关闭第一个数码管,同使用6位数码管显示数字,第一个数码管显示0
时第二个数码管显示1,时间为1秒,然后关闭第二个数码管……直到最后一个数码管显
示5,第一个数码管显示6,……,一直循环显示。请自行设计电路、编写程序。 三、实验原理:
通过在Keil C51中对单片机AT89C52进行编程,硬件电路中单片机P0口输出控制信号,
U2单元输出位选信号,U3单元输出段选信号,通过查询码
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
在6位数码管上显示数字。 四、实验电路图:
五、程序代码:
/*使用6位数码管显示数字,第一个数码管显示0,时间1秒,
,时间为1秒, 然后关闭第一个数码管,同时第二个数码管显示1
然后关闭第二个数码管……直到最后一个数码管显示5,
第一个数码管显示6,……F,一直循环显示。*/
#include
#define uchar unsigned char
#define uint unsigned int
sbit wela=P3^4;
sbit dula=P3^5;
uchar num1,tt,num;
uchar code table[]={ 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; uchar code table1[]={ 0x01,0x02,0x04,0x08, 0x10,0x20};
void delay(uint z) {
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--); }
void main()
{
num=0;
num1=0;
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
dula=0;
wela=1;
P0=table1[num1];
delay(5);
wela=0;
dula=1;
P0=table[num];
delay(5);
if(tt==20)
{
tt=0;
num++;
num1++;
if(num==16)
num=0;
if(num1==6)
num1=0;
}
}
}
void timer0() interrupt 1 {
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
tt++;
}