K=0;IE=0X82;TMOD=0X01;TL0=(65536-5000)%256;TH0=(65536-5000)/256;TR0=1;while(1){num++;if(num==10000){num=0;Р****************/Р//数码管直通Р//EA=1ET0=1打开总中断打开定时器//T0方式28位定时器自动重装〃定时5MSР〃启动定时器T0〃大循环〃计数变量自增〃满10000活0(数码管最大显示9999)Р0中断Р}dispbuf[3]=num/1000%10;〃分离千位,放缓冲区dispbuf[]dispbuf[2]=num/100%10;〃分离白位dispbuf[1]=num/10%10;〃分离十位РРdispbuf[0]=num/1%10;〃分离个位delayms(50);〃延时50MS(时间自定)Р}}*****************/Р/********************定时器0的中断服务程序〃利用中断服务函数,完成4位数码管的显示voidtimetodisplay()interrupt1//定时器T0〃定时5MSР{РTL0=(65536-5000)%256;РTH0=(65536-5000)/256;РP0=dispcode[dispbuf[cont]];〃根据显示偏移量cont,将数组dispbuf[]中的数取出来,〃作为取数组dispcode[]的偏移量,再根据取出来的数,//将dispcode[]里面的段码取出来送给P0РP1=dispbit[cont]&0xff;〃根据偏移量Рcont++;〃显示偏移量自增(显示下一位)Рif(cont==4)//满4活0(四位数码管)Р{cont=0;Р}}Р现象Р0~9999每50毫秒自加一次。加满活0,如此循环Р扩展任务Р0~9999自加自减。加满9999自减为0,为0再自加。