51单片机PWM占空比可调 定时器实现,,,只求方法,,望大侠赐教【恢复】

2020-01-23 14:40发布

51单片机PWM占空比可调  定时器实现,,,只求方法,,望大侠赐教

占空比从10%————50%

频率为500HZ
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
lin135
1楼-- · 2020-01-25 06:26
软件做PWM的缺点是频率做不过,分辨率做不高
minghua
2楼-- · 2020-01-25 06:34
用一个定时器就可以了。
我这个是我现在用的,5%-95%可调。不过频率不是500HZ的。如果要用到500HZ,可以用模式1,这样频率就可以低一些。然后每次进入定时器更新TH和TL就可以了。模式1进入中断可能要停定时器。如果是调压,模式2就可以了。重载很方便的。
void timer1svr (void) interrupt 3 using 0
{
  if(duty)           //如果此时是正脉宽,自动置数负脉宽置数,下面要更新为正脉宽置数以便下次中断使用
  {
     TH1=dutyH;
          AV=0;

  }
  else                  //否则自动置数正脉宽,下面要更新为负脉宽置数以便下次中断使用
  {
    TH1=dutyL;
    AV=1;

  }
  duty=~duty;  //脉宽状态取反
}
duty是脉宽的状态,AV是某个IO,dutyH,dutyL是前面设定好的置数。更改置数就可以调节脉宽占空比。
linxi
3楼-- · 2020-01-25 09:50
还没有做呢。、哈哈
ct007
4楼-- · 2020-01-25 15:18
我做了一个, 非常的成功,实测波形非常好!
方法稍后奉上
ufowanli
5楼-- · 2020-01-25 15:59
 精彩回答 2  元偷偷看……
追枫少年
6楼-- · 2020-01-25 21:44
分析:
你占空比10%~50% 分成50个等级 (如果分成5个等级)
F=500HZ  T=2000US  你定时器 装40us(5个等级400us)

一周热门 更多>