【51单片机固定按键占空比】2022-11-12
缘由关于51单片机pwm输出问题-嵌入式-CSDN问答
#include "REG52.h"
sbit k1=P3^0;
sbit k2=P3^2;
sbit k3=P3^3;
unsigned char Js=0;//中断计时
void ZhongDuanSheZhi()
{TH0+=0X4c;/*定时器赋初值,定时50ms触发中断,自动补偿方式*/TL0+=0X00; TMOD=0X01;TR0=1; ET0=1; //开启定时器EA=1; //全局中断开关
}
void FanBo(unsigned char *c/*调节占空比*/)
{P1=(Js>*c?0:255);//den=100*50=5秒可观察不同占空比亮熄比例,看亮度效果需调节定时器时间。
}
void main()
{unsigned char xd=0,den=100,b=47;ZhongDuanSheZhi();while(1){FanBo(&b);if(Js>100)Js=0;if(!k1&&!++xd){b=20;while(!k1);}if(!k2&&!++xd){b=50;while(!k2);}if(!k2&&!++xd){b=90;while(!k2);}}
}
void ZhongDuan() interrupt 1
{++Js;TH0+=0X4c;TL0+=0X00;
}