pwm工作原理到底是怎样???

我想知道,当他处于低电平的时候是咋样的???难道那段时间电机就不转了吗???
#include <reg52.h>
unsigned char timer1;
sbit PWM=P1^1;
void system_Ini()
{
TMOD|= 0x11;
//PWM
TH1 = 0xfe; //11.0592
TL1 = 0x33;
TR1 = 1;
IE =0x8A;
}
main()
{
system_Ini();
while(1)
{ if(timer1>100) timer1=0;
if(timer1<30) PWM=0;
else PWM=1;
}
}
/*************************************
[ t1 (0.5ms)中断] 中断中做 PWM 输出
------------1000/(0.02ms*250)=200Hz
*************************************/
void T1zd(void) interrupt 3 //3 为定时器1的中断号 1 定时器0的中断号 0 外部中断1 2 外部中断2 4 串口中断
{
TH1 = 0xfe; //11.0592
TL1 = 0x33;
timer1++;

}
这个程序没看懂,谁能帮我解释一下吗??

PWM是脉冲宽度调制,也就是要控制脉冲的宽度。
电机是按照脉冲数量来转动的,所以必须是有低有高,才叫一个脉冲
低的时候不是说不转,而是一个相对短暂的过程,低和高组成一个脉冲,这样电机就会不断的接收到脉冲信号,从而不断的旋转,你觉得不动的那点时间,你是看不出来的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-19
PWM就是占空比,高电平在周期中占的比值,这个程序是用定时器来实验对 占空比的控制。这是是用定时器1做的,首先定初值,没仔细计算过 TH1和TL1是16位定时器高八位和第八位,通过赋值定义一个初值,比如 1ms,也就是1ms进入定时器1一次,timer1++,就是1ms timer1+1;主函数 main里面,timer1>100清零也就是周期=100*1ms=100ms。然后后面的timer1<30,pwm=0,那么>30 <100的是pwm=1,也就是占空比为7/10。 不清楚可以留言,希望能够帮助你吧本回答被提问者采纳
第2个回答  2012-10-18
PWM是脉冲宽度调制 也就是说我们调周期的 ;你既然用pwm那就是想用脉冲来控制电机;只所以说pwm 就是因为要求他的频率非常高 比如你给个高脉冲20s 地脉冲20s 那电机肯定要转 再停的 我们在应该中基本是用pwm来调试的 他的脉冲发送频率很高 所以你看不出来电机什么现象 希望我的答案能帮到你
第3个回答  2021-01-14

电脑风扇PWM控制原理及标准规范解读 [从零开始到精通电脑风扇];主板风扇;PWM风扇;4针风扇;电脑4针风扇;PWM控制原理;风扇标准规范;