51单片机定时器产生2:5周期为100ms方波,按键控制开关


51单片机定时器产生2:5周期为100ms方波,按键控制开关文章插图
51单片机利用定时器产生2:5的周期为100ms方波 , 即高电平40ms , 低电平60ms , 按键K1可以控制定时器开关 , 即控制方波的开关 。
【51单片机定时器产生2:5周期为100ms方波,按键控制开关】/*p1.0接k0 , 开启或者关闭波形p1.2产生100ms , 2比5的方波高40ms , 低60ms*/#include#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个,10ms TL0=(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)//2*5=10次中断{num=0;pulse=1;} }}