|
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit d1=P2^3;
uint aa=0;
uchar code num[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void display(uint);
void main()
{
EA=1;
EX0=1;
IT0=1;
aa=0;
while(1)
{
display(aa);
if(aa>65535) aa=0;
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void exter0() interrupt 0
{
aa++;
d1=0;
delay(5);
d1=1;
}
void display(uint aa) //數(shù)碼管動(dòng)態(tài)掃描程序
{
uchar b,c,d,e,f;
b=aa/10000;
c=aa%10000/1000;
d=aa%1000/100;
e=aa%100/10;
f=aa%10;
wela=1;
P0=0xfe;
wela=0;
dula=1;
P0=num[0];
dula=0;
delay(2); //第一個(gè)數(shù)碼管
wela=1;
P0=0xfd;
wela=0;
dula=1;
P0=num[b];
dula=0;
delay(2); //第二個(gè)數(shù)碼管
wela=1;
P0=0xfb;
wela=0;
dula=1;
P0=num[c];
dula=0;
delay(2); //第三個(gè)數(shù)碼管
wela=1;
P0=0xf7;
wela=0;
dula=1;
P0=num[d];
dula=0;
delay(2); //第四個(gè)數(shù)碼管
wela=1;
P0=0xef;
wela=0;
dula=1;
P0=num[e];
dula=0;
delay(2); //第五個(gè)數(shù)碼管
wela=1;
P0=0xdf;
wela=0;
dula=1;
P0=num[f];
dula=0;
delay(2); //第六個(gè)數(shù)碼管
}
Powered by 單片機(jī)教程網(wǎng)