#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void display(uchar bai,uchar shi,uchar ge);
void delay(uint z);
void init();
sbit du=P2^6;
sbit we=P2^7;
sbit key=P3^4;
sbit key1=P3^5;
sbit key3=P3^7;
uchar code table[]={0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,0x39 , 0x5e , 0x79 , 0x71 , 0x00};
uchar t,a,bai,shi,ge,flag;
uint temp;
void main()
{ init();
while(1)
{
if(a==2)
{ a=0;
if(key==1)
{ delay(2);
if(key==1)
{
temp++;
if(temp==999)
temp=0;
bai=temp/100;
shi=temp/10%10;
ge=temp%10;
}
}
}
display(bai,shi,ge);
if (flag==0)
{while(key1==0)
{
TR0=0;
flag=1;
display(bai,shi,ge);
}
}
if(flag==1)
{ while(key1==0)
{TR0=1;
flag=0;
}
}
if(key3==0)
{
temp=0;
bai=temp/100;
shi=temp/10%10;
ge=temp%10;
display(bai,shi,ge);
}
}
}
void delay (uint z)
{uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void display(uchar bai,uchar shi,uchar ge)
{ du=1;
P0=table[bai];
du=0;
P0=0xff;
we=1;
P0=0xfe;
we=0;
delay(1);
du=1;
P0=table[shi];
du=0;
P0=0xff;
we=1;
P0=0xfd;
we=0;
delay(1);
du=1;
P0=table[ge];
du=0;
P0=0xff;
we=1;
P0=0xfb;
we=0;
delay(1);
}
void init()
{du=0;
we=0;
t=0;
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
EA=1;
ET0=1;
TR0=1;
flag=0;
}
void timer0() interrupt 1
{TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
a++;
}
|