51单片机利用定时器产生2:5的周期为100ms方波,即高电平40ms,低电平60ms,按键K1可以掌握定时器开关,即掌握方波的开关。

/p1.0接k0,开启或者关闭波形p1.2产生100ms,2比5的方波高40ms,低60ms/#include<reg51.h>#define uchar unsigned char;uchar tcnt=0,num=0;sbit K0=P1^0;sbit pulse=P1^2;//延时函数void delay(i){while(i--);}//主函数void main(){TMOD=0X01;//T0办法1,定时功能EA=1;ET0=1;TR0=0;TH0=(65536-10000)/256;//10000个,10msTL0=(65536-10000)%256;while(1){if(!K0)//K0按下,开启定时器{delay(20);//肃清抖动if(!K0)//二次判断是否按下{TR0=~TR0;}}}} //中断做事函数void t0() interrupt 1{TH0=(65536-10000)/256;TL0=(65536-10000)%256;tcnt++;if(tcnt>=2)//调节此参数可以调节周期{tcnt=0;num++;if(num==2){pulse=0;}if(num==5)//25=10次中断{num=0;pulse=1;}}}








