#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uchar);
void display();
uchar numl[]={
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
uchar t0,flag;
static uint num,n0;
sbit start=P3^5;
sbit stop=P3^6;
sbit reset=P3^7;
uchar ge,shi,bai;
void main()
{
EA=1;
TMOD=0x01;
ET0=1;
TH0=0x3c;
TL0=0xb6;
while(1)
{
if(!start) TR0=1;
if(!stop) TR0=0;
if(flag>=2)
{
t0=flag*5;//单位0.01s
flag=0;
num+=t0;
if(num>=6000)num=0;
}
if(!reset)
num=0;
display();
}
}
void display()
{ n0=num/10;
bai=n0/100;
shi=(n0%100)/10;
ge=n0%10;
P2=numl[ge];
P1=numl[shi];
P0=numl[bai];
}
void timer0() interrupt 1 using 3
{
flag++;
TH0=0x3c;
TL0=0xaa;
}