找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3034|回复: 13
收起左侧

89C52单片机PWM误差有多大

[复制链接]
ID:417092 发表于 2019-4-30 01:17 | 显示全部楼层 |阅读模式
看一下,52单片机的多慢吧。。。
PWM误差有多大吧。
33M  12分频
如果PWM频率166.66 KHz 时哪么一个
一个PWM周期 约6uS.
把高低电平都设置成 3uS.
0001.jpg 0002.png 0003.png
52单片机的误差太大了吧。

程序如下。
没有什么错呀。
误差120%。。。。
01.jpg 02.jpg



回复

使用道具 举报

ID:213173 发表于 2019-4-30 06:43 | 显示全部楼层
51单片机在12M晶振条件下用普通方法极限输出脉冲宽度3us,周期6us。通常小于10us的控制不适合用定时器。因为执行每一条语句都需要时间,这会造成中断响应被迫延时。以下是12M晶振单片机输出167KHz方波的程序和仿真。
  1. #include <reg51.h>

  2. sbit OUT=P1^0;

  3. void main(void)
  4. {
  5.         while(1)
  6.         {
  7.                 OUT=~OUT;
  8.         }
  9. }
复制代码


无标题.jpg




回复

使用道具 举报

ID:275671 发表于 2019-4-30 07:04 | 显示全部楼层
你的计算不对,又定时器中断产生PWM,要考虑中断响应时间
其实现在很多51带PWM了
回复

使用道具 举报

ID:401564 发表于 2019-4-30 08:40 | 显示全部楼层
你基础不好
1:把仿真的东西当实际来说事
2:89C52不是12T,是6T
3:PWM频率太高,一个定时器的中断时间只有7个机器周期,两三条指令就超过7个指令了,用汇编都得小心,用C占用的时间就更多了
回复

使用道具 举报

ID:407374 发表于 2019-4-30 08:47 | 显示全部楼层
确实是这样的  我搞了个定时器中断 也是不对的  程序中断一次1us 100次是1ms  出来的周期根本不是1ms  日了
回复

使用道具 举报

ID:275671 发表于 2019-4-30 09:20 | 显示全部楼层
定时器中断可以用自动重装,很准的
回复

使用道具 举报

ID:357633 发表于 2019-4-30 09:25 | 显示全部楼层
程序中断一次1us 100次是1ms
回复

使用道具 举报

ID:158375 发表于 2019-4-30 10:07 | 显示全部楼层
现在ARM流行,怎么嫌弃起来89C52了?
没有PWM的时代,自己想办法来实现PWM功能,89C52可是一个宝贝。。。。。。
回复

使用道具 举报

ID:123289 发表于 2019-4-30 16:11 | 显示全部楼层
地板说的对!
你把PWM的频率做成166.66 KHz,用它做什么呢?
如果必须使用超过此频率的PWM,也有解决方案,但不一定与你的方案一样!
你用一个不确当的方案,去假设一个不确当的事件了,而后又想求解……
回复

使用道具 举报

ID:417092 发表于 2019-4-30 20:24 | 显示全部楼层
Y_G_G 发表于 2019-4-30 08:40
你基础不好
1:把仿真的东西当实际来说事
2:89C52不是12T,是6T

汇编不会呀。。。。
回复

使用道具 举报

ID:417092 发表于 2019-4-30 20:28 | 显示全部楼层
cy002 发表于 2019-4-30 09:25
程序中断一次1us 100次是1ms

33M 12T
机器周期是  0.36363636636363636363 微秒。。。。。
回复

使用道具 举报

ID:417092 发表于 2019-4-30 20:32 | 显示全部楼层
1xiaosun 发表于 2019-4-30 09:20
定时器中断可以用自动重装,很准的

自动重装,
如何改变频率,
如何改变点空比呀。
回复

使用道具 举报

ID:357633 发表于 2019-5-2 17:27 | 显示全部楼层
ZMRGHY 发表于 2019-4-30 20:28
33M 12T
机器周期是  0.36363636636363636363 微秒。。。。。

0.36363636363636363636363636363636 * 8 = 2.9090909090909090909090909090909
这个是定时器累加的时间
但是进出中断,用户中断处理语句这些时间呢?
回复

使用道具 举报

ID:401564 发表于 2019-5-3 13:46 | 显示全部楼层
ZMRGHY 发表于 2019-4-30 20:32
自动重装,
如何改变频率,
如何改变点空比呀。

哥们还不明白呀,一共才7个时钟的高电平,用C的话基本上就是什么事都做不了了,就是用汇编也是一样的呀,你要这么高的频率有什么意义呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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