PWM(Pulse Width Modulation)即脉冲宽度调制。如下图所示,方波的周期T=20ms,方波的高电平持续时间为t。T不变的情况下,调整t时长,即为PWM,其中t/T的值称作占空比。
2、C51单片机实现PWM
使用定时器产生1ms的定时,变量pwm每1ms增加1。当pwm小于duty时ENA输出高电平,ENA高电平持续时间为duty;当pwm大于duty时ENA输出低电平,ENA低电平持续时间为20-duty;当pwm大于20时,pwm归0。程序中的duty就是上图中的t,控制占空比;程序中的20就是上图中的T,控制方波周期。
void main() { TMOD=0X01; TH0= 0XFC; //1ms定时初值 TL0= 0X18; TR0= 1; ET0= 1; EA=1; duty=5; …} void timer0() interrupt 1 { TH0=0XFC; TL0=0X18; pwm++; if(pwm<=duty) { ENA=1; } else { ENA=0; } if(pwm>=20) { pwm=0; } }3、电机调速
如果ENA=1时电机工作,ENA=0时电机不工作,电机工作的时间为duty,调整duty的值就可以调整一个周期内电机工作的时长。一个周期内,电机工作时间占比越高,电机的平均转速也就越快。
转载自网络,如有侵权,联系删除。