标题: 51单片机怎么输出4路占空比可调频率为5KHZ的PWM波 [打印本页]

作者: game灬boy    时间: 2018-7-8 16:16
标题: 51单片机怎么输出4路占空比可调频率为5KHZ的PWM波
我之前写了一个程序但是频率总是上不去只有1300HZ的样子这是为什么?



作者: yzwzfyz    时间: 2018-7-8 19:34
再读相关章节。
作者: hayden    时间: 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;
作者: 7305    时间: 2018-7-8 22:21
感觉有一定几率是程序长了。89c52 12M晶振,平均1~2us运行一句指令,也就是即使只有一条语句最高输出频率也只有1M HZ,如果前面语句多就会限制最高输出频率,需要运行十几行其他的代码才能运行你需要的那句,自然频率就高不上去了。如果想多路可调频率PWM波建议使用有独立pwm发生器的单片机。
作者: 固原    时间: 2018-7-9 10:24
如果想多路可调频率PWM波建议使用有独立pwm发生器的单片机
作者: c279986149    时间: 2018-7-9 10:46
晶振用的多少的,如果晶振太低,或者代码量太多,只能保证1路PWM的输出,适当提高晶振频率,减少主程序执行其他指令,如果条件允许,选择专门的PWM控制器。
作者: xieqiang520    时间: 2018-7-9 11:03
单片机自带PWM 这种就没有问题
作者: game灬boy    时间: 2018-7-13 17:23
谢谢大家!我已经找到原因了
定时器全局变量定义为uchar只有256 所以频率上不去
作者: game灬boy    时间: 2018-7-13 17:24
xieqiang520 发表于 2018-7-9 11:03
单片机自带PWM 这种就没有问题

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1