#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^4;
sbit wexu=P2^7;
sbit duxu=P2^6;
uchar code table[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
uint shu;
uchar bai,shi,ge;
void chushi();
void yanshi(uint z);
void xianshi(uint shu);
void main()
{
chushi();
while(1)
{
if(key1==0)
{
yanshi(5);
if(key1==0)
{
TR0=0;
}
while(!key1);
yanshi(5);
while(!key1);
}
TR0=1;
xianshi(shu);
}
}
void chushi()
{
key1=1;
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TR0=1;
wexu=0;
duxu=0;
shu=0;
}
void xianshi(uint shu)
{
ge=shu%10;
shi=shu%100/10;
bai=shu/100;
wexu=1;
P0=0xfb;
wexu=0;
P0=0xff;
duxu=1;
P0=table[ge];
duxu=0;
yanshi(5);
wexu=1;
P0=0xfd;
wexu=0;
P0=0xff;
duxu=1;
P0=table[shi];
duxu=0;
yanshi(5);
wexu=1;
P0=0xfe;
wexu=0;
P0=0xff;
duxu=1;
P0=table[bai];
duxu=0;
yanshi(5);
}
void yanshi(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void timer0() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
shu++;
if(shu==1000)
shu=0;
}
|