PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化。
占空比=高电平时间/周期时间*100%
PWM设计方法
①启动定时器
②在定时器中使用一个计数变量,并根据占空比来确定计数变量的范围
③根据PWM的频率和占空比,共同确定定时器的初值
④用占空比的值和计数变量比较,输出比较结果,即为需要的波形
例如:产生100Hz方波,占空比10%。要求使用定时器0。
F=100,T=1/100s=10ms。占空比=t/T=t/10ms=10%,t=1ms。即定时器设计为1ms定时,从而算出定时器的初值。
void Timer0() interrupt 1
{
static u8 cnt; //设置一个静态变量
TLO=65535-1000; //给一个16位的数,低位计数器就会获得后8位
TH0=(65535-1000)/256; //给一个16位的数除256,高位计数器就会获得前8位
cnt++;
if(cnt>9) //变量范围
cnt=0;
if(cnt<1) //比较输出
P2_0=1;
else
P2_0=0;
}