51单片机定时器数码管30秒倒计时(带三个按键控制开始,暂停,复位)程序:#includeat89x51.hunsignedcharcodeled[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsignedcharcodeaddr[2]={0xef,0xdf};unsignedcharxx[2];unsignedchartime=30;unsignedcharflag=0;voiddelay(void);voidsys(void){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=1;EA=1;EX0=1;IT0=1;}voidftimer0(void)interrupt1{staticunsignedcharcnt;TH0=(65536-50000)/256;TL0=(65536-50000)%256;cnt++;if(cnt20){if(flag==1){time--;cnt=0;if(time==0){ET0=0;TR0=0;}}}}voidint0(void)interrupt0{if(P2_0==0){flag=1;ET0=1;}elseif(P2_1==0){ET0=0;}elseif(P2_2==0){time=30;ET0=0;TR0=1;}}voidmain(){unsignedchara;sys();for(;;){for(a=0;a2;a++){xx[0]=time/10;xx[1]=time%10;P0=led[xx[a]];P1=addr[a];delay();P1=0xff;}}}voiddelay(void){longt=100;while(t--);}电路图及结果: