#define uchar unsigned char
uchar sec,min,num;
sbit led1=P1^0;
sbit led2=P1^1;
sbit key=P3^2;
bit flag;
void delay(uchar x)
{
uchar i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num>=20)
{
num=0;
sec++;
if(sec>59)
{
sec=0;
min++;
switch(min)
{
case 0:led1=0;break;
case 1:if(flag){led1=0;min=0;flag=0;}
break;
case 4:led1=1;led2=0;break;
case 8:led2=1;break;
default:break;
}
if(min>=20)min=0;
}
}
}
void ext0() interrupt 0
{
delay(30);
if(key==0)
{
while(!key);
flag=1;
sec=0;
min=0;
num=0;
led1=1;
led2=1;
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
EX0=1;
IT0=1;
TR0=1;
led1=0;
led2=1;
flag=0;
while(1);
}