思路:设定一个改动占空比的变量PWM,每按一次按键PWM值自加一次(自加值看需求定,比方PWM+=100),值越小发生的驱动脉冲频率越高。PWM函数选用模仿办法发生,从本钱上考虑,带中止,定时器等功能的价格相对较高。所以选用价格低的等级低单片机。鉴于仿真便利,本程序选用PIC16F505(当然也可以用12F508等芯片)。
void KEY1()//按键扫描函数,按压有用(非松手有用),而且不影响LED点亮作用,都可以用此类扫描函数
RC1=0;//此句子很重要,假如不加这句,到最等级低的时分,不能关机而当即进入最高级。
void LED_ON()//模仿PWM函数,算法简略直观,经过改动PWM值去改动LED点亮和平息的时刻的距离到达调光的意图。
while(1)//用此句子到达上电关机(LED平息状况),当有按键按下的时分,break句子跳出while循环
If(PWM
<500)//只需pwm值小于500,每按下一次,都会履行led_on()函数,且每次的pwm值都以100的倍数添加,到达调光意图。