#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long //数据类型为长整型 32位 4字节 0~4 294 967 295
uchar a0,a1,a2,a3,a4,a5,a6,a7;
ulong num,num1;
uchar code tab[ ]={0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F};
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7;
sbit p34=P3^4;
void delay(int ms)
{
uchar i;
while(ms--)
for(i=0;i<123;i++);
}
void disp();
void time_t0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num1++;
}
void main()
{
TMOD=0x51;
TH1=0;TL1=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR1=1;
TR0=1;
while(1)
{
disp();
num=TH1*256+TL1;
if(num1==20) { p34=~p34; num1=0; }
if(num==20)
{
WR=0;
delay(20);
WR=1;
}
}
}
void disp()
{
a0=num/10000000;
a1=num%10000000/1000000;
a2=num%10000000%1000000/100000;
a3=num%10000000%1000000%100000/10000;
a4=num%10000000%1000000%100000%10000/1000;
a5=num%10000000%1000000%100000%10000%1000/100;
a6=num%10000000%1000000%100000%10000%1000%100/10;
a7=num%10000000%1000000%100000%10000%1000%100%10;
P2_0=0;
P0=tab[a0];
delay(1);
P2_0=1;
P2_1=0;
P0=tab[a1];
delay(1);
P2_1=1;
P2_2=0;
P0=tab[a2];
delay(1);
P2_2=1;
P2_3=0;
P0=tab[a3];
delay(1);
P2_3=1;
P2_4=0;
P0=tab[a4];
delay(1);
P2_4=1;
P2_5=0;
P0=tab[a5];
delay(1);
P2_5=1;
P2_6=0;
P0=tab[a6];
delay(1);
P2_6=1;
P2_7=0;
P0=tab[a7];
delay(1);
P2_7=1;
}
评论0