#include<reg52.h>
#define dula P0
#define wela P3
unsigned char disbuff[] = {0,0,10,0,0,10,0,0,};
unsigned char hour,min,sec,num,dulacode[] = {0x3f,6,0x5b,0x4f,0x66,0x6d,0x7d,7,0x7f,0x6f,0x09};
unsigned char welacode[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void display()
{
unsigned int j;
unsigned char i;
for(i=0;i<8;i++)
{
dula=0x00;
dula = dulacode[disbuff[i]];
wela = welacode[i] ;
for(j=0;j<500;j++);
}
}
void time0() interrupt 1
{
TL0 = 55536%256;
TH0 = 55536/256;
num++;
if(num > 99)
{
num = 0;
sec++;
if(sec>59)
{
sec=0;
min++;
if(min>59)
{
min=0;
hour++;
if(hour>23)
{
hour=0;
}
}
}
}
disbuff[0]=hour/10;
disbuff[1]=hour%10;
disbuff[3]=min/10;
disbuff[4]=min%10;
disbuff[6]=sec/10;
disbuff[7]=sec%10;
}
void main()
{
TMOD = 0x01;
TH0=65536/256;
TL0=65536%256;
ET0 = 1;
EA =1;
TR0=1;
while(1)
display();
}