首先我们要知道什么是PWM,即脉冲宽度调制,它的实现原理很简单,即通过单片机的高低电平控制MOS管或三极管的开通和关断,以实现小功率控制大功率的目的,在PWM中,高低电平的变换速度极快,一般都不大于1MS。
如上图中的三个PWM波,如果一半的时间是高电平一半的时间是低电平,那么他的占空比是50%,所谓占空比即高电平所占PWM周期的比例。
通过简单的延时
在一个没有PWM外设的MCU来做可调的占空比,最简单的办法是,让单片机循环的输出高低电平。比如我们要输出一个占空比为50的PWM我们可以这么写,虽然不是正规途径生成的PWM波,但是实现效果上却和PWM波一个样。
while(1)
{
P1=1;
DELAY(1MS);
P1=0;
DELAY(1MS);
}
占空比可调的PWM
这个占空比其实也很容易改变,只需要我们改变高低电平的时间,如果你不想这么做,可以往单片机上加一个电位器,在我们旋转电位器的时候,把对应的电压传给单片机,单片机再通过不同的电压改变不同的时间,以此来达到调节占空比的目的。