一、呼吸灯简介
呼吸灯是指LED灯通过单片机控制实现由亮到暗的逐渐变化,就和人体呼吸一样。这里我们单片机要用到定时器和PWM占位来实现这项功能。
二、NY81051F定时器的定义
DISI(); //静止所以中断
TMR0=256-160; //初始化寄存器,160*6.4=1024us,1MS进一次中断
T0MD = C_PS0_TMR0 | C_PS0_Div; //将TMR0分配,20M/10/64-->156.25KHz (timeBase=6.4us),INT Falling Edge
INTE=C_INT_TMR0; //启动定时器
ENI(); //开启中断
三、PWM(脉冲宽度调制)
通过改变脉冲宽度来改变电压的输出,T=1/f,T是周期,f是频率。如果频率为50Hz,那么一个周期就是20ms,一秒就有50次PWM周期。一个周期如下图,脉冲时间所占周期的时间的比例就是占空比。比如要实现呼吸灯则亮90%灭10%,亮80%灭20%,亮70%灭30%,依次循环。
四、程序编写(项目创建和参数设置请查看我上一篇文章)
#include <ny8.h>
#include "ny8_constant.h"
#include