找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

分享两种STC15定时器模拟PWM的方法

查看数: 22661 | 评论数: 15 | 收藏 12
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-3-12 17:06

正文摘要:

刚刚搜了一下,发现坛里还没有这样分析PWM的帖子,然后发了一个。 手电LED控制或马达转速控制都离不开PWM,下面有两种方法可以模拟PWM的。如果不正确希望各位指教。 //用定时器计算方式模拟PWM,高低电平 ...

回复

ID:447334 发表于 2025-3-16 16:02
这种最高频率也超不过去2k吧?
ID:298713 发表于 2022-8-17 09:12
本帖最后由 wjw7680 于 2022-8-17 15:49 编辑

第二个程序根本实现不了PWM,只要中断11次,k值就会超过num,P20=1一直输出高电平。第一个也有问题,定时器初值在TR0=0时对TL0,TH0赋初值才有效。中断内没有TR0=0,没法改变定时器内的TL0,TH0。这个程序估计是直接抄来的,没验证过
ID:833307 发表于 2020-11-3 14:08
wosiyabo 发表于 2017-3-12 23:01
终于知道第一种PWM为什么会不受控了。因为定时器内指令执行时间过长超出定时器设定的时间时会导致系统崩溃 ...

ID:833307 发表于 2020-11-3 14:06
是不是再搞一台示波器,哎 ,小白很迷茫啊
ID:94449 发表于 2020-2-29 10:37
//缺点:高低电平会的百分之一格不受控制

这句怎么理解呢?
ID:94449 发表于 2020-2-29 10:31
wosiyabo 发表于 2017-3-12 23:01
终于知道第一种PWM为什么会不受控了。因为定时器内指令执行时间过长超出定时器设定的时间时会导致系统崩溃 ...

是说第一种方式不好,要用第二种?
ID:499701 发表于 2019-7-5 13:08
第二种方法用过,的确频率跑不高,我做的最高才300hz
ID:65956 发表于 2018-11-19 11:51
谢谢您的分享,谢谢你的经验分享!
ID:175439 发表于 2017-3-29 11:44
还有楼主,输出脚不需要设置成推挽么?谢谢
ID:175439 发表于 2017-3-29 11:20
wosiyabo 发表于 2017-3-28 20:16
你用的是什么单片机?我是在STC15W4kK58S4的平台上试的,有两个按键可以调加大的减小占空比。我都在示波 ...

我是STC15W1K16S,我按照你的第一种方式来弄的,弄了之后灯能点亮,但是怎么弄亮度都不变,谢谢!
ID:146949 发表于 2017-3-28 20:16
jgp886585 发表于 2017-3-28 19:11
楼主,你这个我怎么弄不成PWM波呢,反应都没有

你用的是什么单片机?我是在STC15W4kK58S4的平台上试的,有两个按键可以调加大的减小占空比。我都在示波器上试过的。你用其他型号的单片机注意有些IO初始化和AUXR寄存器等要设置。
ID:175439 发表于 2017-3-28 19:11
楼主,你这个我怎么弄不成PWM波呢,反应都没有
ID:170318 发表于 2017-3-13 14:20
谢谢楼主啦!!分享很好
ID:167357 发表于 2017-3-13 07:04
学习了@@
ID:146949 发表于 2017-3-12 23:01
终于知道第一种PWM为什么会不受控了。因为定时器内指令执行时间过长超出定时器设定的时间时会导致系统崩溃。
当定时器赋值为TH0=0xFF,TL0=0xFF时,那怕是在定时器内运行很少的指令也很可能会导致指令未执行完就溢出了。
所以如果有人用第一种PWM时,切记赋值不要过大"TH0=0xFF,TL0=0xFF"否则会有问题。。!

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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