搜索
bottom↓
回复: 18

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

[复制链接]

出0入0汤圆

发表于 2008-12-25 14:56:45 | 显示全部楼层 |阅读模式
51单片机PWM占空比可调  定时器实现,,,只求方法,,望大侠赐教

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

频率为500HZ

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2008-12-27 09:35:59 | 显示全部楼层
500=200+300

500=100+400

500=。。。。

很多啊

H_cnter=X,高电平计时参数

L_cnter=500-X,低电平计时参数

出0入0汤圆

 楼主| 发表于 2008-12-27 09:11:49 | 显示全部楼层
你理解错了, 这样怎么可以调节呢?

出0入0汤圆

发表于 2008-12-27 08:57:27 | 显示全部楼层
设置一个counter

counter++

当counter的0 bit 为1时

定时器计时200高电平

当counter的0 bit 为0时

定时器计时300低电平



这样就可以得到脉宽2/5的PWM

出0入0汤圆

 楼主| 发表于 2008-12-27 08:53:53 | 显示全部楼层
不懂, 想用一个定时器实现,能再参考一下吗?

出0入0汤圆

发表于 2008-12-25 15:53:23 | 显示全部楼层
用一个定时器也可以

分次定时

奇数次做高电平计时

偶数次做低电平计时

高+低电平=500HZ

出0入0汤圆

 楼主| 发表于 2008-12-25 15:49:12 | 显示全部楼层
谢谢, 有点 理解

出0入0汤圆

发表于 2008-12-25 15:03:01 | 显示全部楼层
最基本的方法,两个定时器,一个计500HZ的周期,一个计占空比时长。

出0入0汤圆

发表于 2009-3-1 23:42:29 | 显示全部楼层
一个定时器,做500*256HZ频率,定一个字符型变量自加
喝另一个变量(脉宽值)比较
小于输出低电平,大于输出高电平

出0入0汤圆

发表于 2009-3-6 20:13:14 | 显示全部楼层
定时器,调pwm还是很简单的。

如果用stc12/MPC82xxx带2~6 路硬件pwm,就更简单了。。。

出0入0汤圆

发表于 2009-3-6 21:00:56 | 显示全部楼层
用硬件的吧!

出0入0汤圆

发表于 2009-3-7 10:34:57 | 显示全部楼层
用个定时器,每100uS中断,每去一次加1一个寄存器,加到20要满值,比如清0寄存器置上IO,加到3清IO,一直加到20清0寄存器再置上IO。这样占空比是3/20=15%。

出0入0汤圆

发表于 2009-3-7 10:35:00 | 显示全部楼层
用个定时器,每100uS中断,每去一次加1一个寄存器,加到20要满值,比如清0寄存器置上IO,加到3清IO,一直加到20清0寄存器再置上IO。这样占空比是3/20=15%。

出0入0汤圆

发表于 2009-3-7 10:36:37 | 显示全部楼层
软件做PWM的缺点是频率做不过,分辨率做不高

出0入0汤圆

发表于 2009-4-16 22:39:44 | 显示全部楼层
用一个定时器就可以了。
我这个是我现在用的,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是前面设定好的置数。更改置数就可以调节脉宽占空比。

出0入0汤圆

发表于 2009-6-2 23:02:40 | 显示全部楼层
还没有做呢。、哈哈

出0入0汤圆

 楼主| 发表于 2009-6-3 08:49:38 | 显示全部楼层
我做了一个, 非常的成功,实测波形非常好!
方法稍后奉上

出0入0汤圆

发表于 2009-6-15 22:48:13 | 显示全部楼层
学习了,不错。

出0入0汤圆

发表于 2014-5-27 09:52:25 | 显示全部楼层
分析:
你占空比10%~50% 分成50个等级 (如果分成5个等级)
F=500HZ  T=2000US  你定时器 装40us(5个等级400us)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 03:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表