中断0接反相器{TR1=1;//启动定时器1}voidint1()interrupt2//外部中断1接反相器{TR1=0;//停止定时器1TH1=TH1-0x4B;TL1=TL1-0x24;t=TH1*256+TL1;t=t/926;//精确到1mst=t+50*temp;display(t);//用数码管显示数字(16进制)} voidtimer1()interrupt3//定时器1溢出中断{ temp=temp++; TH1=(65536-46300)/256; TL1=(65536-46300)%256;}/*****************************数码管显示函数*******************************/voiddisplay(uintt)//实现数码管的动态扫描显示{uchartH,tL,tM;//t的高位和低位,板子上有2个数码管,输出两位16进制数tH=t/100;tM=t/10-tH*10;tL=t%10;while(1){dula=1;P0=table[tL];dula=0;delay(5);wela=1;P0=0xfe;wela=0;//锁存dula=1;P0=table[tH];dula=0;delay(5);wela=1;P0=0xfd;//位选,选中两个数码管wela=0;//锁存dula=1;P0=table[tM];dula=0;delay(5);wela=1;P0=0xfb;//位选,选中两个数码管wela=0;//锁存}}/****************************延时函数*****************************************/voiddelay(uintz)//延时{uintx,y;for(x=z;x>0;x--)for(y=100;y>0;y--);}