找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5003|回复: 8
打印 上一主题 下一主题
收起左侧

51单片机怎么输出4路占空比可调频率为5KHZ的PWM波

[复制链接]
跳转到指定楼层
楼主
ID:367369 发表于 2018-7-8 16:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我之前写了一个程序但是频率总是上不去只有1300HZ的样子这是为什么?


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2018-7-8 19:34 | 只看该作者
再读相关章节。
回复

使用道具 举报

板凳
ID:366893 发表于 2018-7-8 20:52 | 只看该作者
定时器定时200us
在定时器中断里写:

if(cnt1<T1) PWM1=1;  //更改T1可改变占空比,下面类似
else PWM1=0;//PWM1为定时器输出IO

if(cnt2<T2) PWM2=1;
else PWM2=0;

if(cnt3<T3) PWM3=1;
else PWM3=0;

if(cnt4<T4) PWM4=1;
else PWM4=0;
回复

使用道具 举报

地板
ID:280486 发表于 2018-7-8 22:21 | 只看该作者
感觉有一定几率是程序长了。89c52 12M晶振,平均1~2us运行一句指令,也就是即使只有一条语句最高输出频率也只有1M HZ,如果前面语句多就会限制最高输出频率,需要运行十几行其他的代码才能运行你需要的那句,自然频率就高不上去了。如果想多路可调频率PWM波建议使用有独立pwm发生器的单片机。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:352103 发表于 2018-7-9 10:24 | 只看该作者
如果想多路可调频率PWM波建议使用有独立pwm发生器的单片机
回复

使用道具 举报

6#
ID:195454 发表于 2018-7-9 10:46 | 只看该作者
晶振用的多少的,如果晶振太低,或者代码量太多,只能保证1路PWM的输出,适当提高晶振频率,减少主程序执行其他指令,如果条件允许,选择专门的PWM控制器。
回复

使用道具 举报

7#
ID:357373 发表于 2018-7-9 11:03 | 只看该作者
单片机自带PWM 这种就没有问题
回复

使用道具 举报

8#
ID:367369 发表于 2018-7-13 17:23 | 只看该作者
谢谢大家!我已经找到原因了
定时器全局变量定义为uchar只有256 所以频率上不去
回复

使用道具 举报

9#
ID:367369 发表于 2018-7-13 17:24 | 只看该作者
xieqiang520 发表于 2018-7-9 11:03
单片机自带PWM 这种就没有问题

如果老师允许我也想用8a8k的单片机
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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