#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code SegCode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
uchar code BitCode[]={0xfe,0xfd,0xfb,0xf7};
uchar time[]={0,0,0,0};
uchar m1=0,m2=0;
sbit P3_2=P3^2;
void Chaifen(void);
void T0chushi(void);
void DelayMs(uint n);
void main(void)
{
unsigned char i=0;
Chaifen();
T0chushi();
P0=0xff;
P1=0xff;
while(1){
if(P3_2==0)TR0=1;
else TR0=0;
for(i=0;i<4;i++)
{
P1=BitCode[i];
P0=SegCode[time[i]];
DelayMs(5);
}
}
}
void T0chushi(void)
{
TMOD=0X01;
TH0=0XD8;
TL0=0XBE;
IE=0X82;
}
void T0int()interrupt 1
{
TH0=0XD8;
TL0=0XBE;
m2++;
if(m2==100)
{m1++;
m2=0X00;
}
chaifen();
}
void Chaifen(void)
{
time[0]=m1/10;
time[1]=m1%10;
time[2]=m2/10;
time[3]=m2%10;
}
void DelayMs(uint n)
{
uchar j;
while(n--)
{
for(j=0;j<50;j++);
}
}