文档介绍:#include<>#defineucharunsignedchar#defineuintunsignedintsbitk1=P3^2;sbitk2=P3^4;sbitbeep=P1^1;sbitP1_0=P1^0;ucharpwm,num;ucharcodetable[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelay(uint);voidinit();voidkeyscan();voiddisplay(uchar);voidmain(){init();pwm=20;while(1){keyscan();display(pwm);}}voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidinit(){TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;EA=1;ET0=1;TR0=1;}voidkeyscan(){if(k1==0){delay(10);if(k1==0){while(!k1){display(pwm);}if(pwm!=40){pwm++;delay(500);}elsebeep=1;}}if(k2==0){delay(10);if(k2==0){while(!k2){display(pwm);}if(pwm!=0){pwm--;delay(500);}elsebeep=1;}}}voidtimer0()interrupt1{TR0=0;TH0=(65536-500)/256;TL0=(65536-500)%256;num++;if(num==41)num=0;if(num<=pwm){P1_0=1;}elseP1_0=0;TR0=1;}voiddisplay(uchart){ucharge,shi;ge=t%10;shi=t/10;P2=0;P0=table[shi];delay(5);P2=1;P0=table[ge];delay(5);}