想问各位,利用51单片机如何产生占空比可调的pwm波,占空比要通过程序自动调节,用于实现彩灯的七种颜色

想问各位,利用51单片机如何产生占空比可调的pwm波,占空比要通过程序自动调节,不能手动,另外为什么我用proteus仿真时,尽管定时器定时是1s,可是彩灯的变化频率却还... 想问各位,利用51单片机如何产生占空比可调的pwm波,占空比要通过程序自动调节,不能手动,另外为什么我用proteus仿真时,尽管定时器定时是1s,可是彩灯的变化频率却还是非常快,感觉pwm的效果根本没有,求各位指导 。 展开
 我来答
百度网友c6746721f
2013-05-17 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:72
采纳率:100%
帮助的人:58.3万
展开全部
用定时器做的,改变m_num的数值就会改变占空比

void timer1() interrupt 3
{

m_count++;

if(m_count==m_num)
PWM=0;
if(m_count==200)
{
m_count=0;
PWM=1;
}

TH1=(65536-1000)/256;
TL1=(65536-1000)%256;

}
更多追问追答
追问
我感觉你写的我不是很懂,你这个
if(m_count==m_num)
PWM=0;
if(m_count==200)
{
m_count=0;
PWM=1;
}
那要是m_count两个都不满足那就没下文了啊!
追答
m_count加到200就会清零,不会没下文,每进一次中断只加1;m_num是小于200;
m_num 数控制高电平的时间就是占空比控制,在0到m_num期间是高电平;在m_num到200之间是低电平,到200后又变高电平, 改变m_num的数值就改变了占空比。

这样应该比较明白了吧
6793asd
2013-05-17 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:226
采纳率:100%
帮助的人:101万
展开全部
举个例子吧。先用定时器0定时Ts,再用定时器1定时ts。定时器1中断触发后,输出低电平,关闭定时器1,这样就能保证输出tms的正波形,;定时器0中断触发时,输出高电平,重置定时器0、1。占空比 = t/T,频率 = 1/T。注意T一定要大于t。
追问
占空比要能通过程序改变,不是手动改变的
追答
那也好办啊。你输出一个周期的波形后,按照一定的规律改变定时器1的计时时间(设定定时器1的初值是和某个变量有关的)就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
周毅兴
2013-05-17 · TA获得超过413个赞
知道小有建树答主
回答量:1761
采纳率:66%
帮助的人:496万
展开全部
用两个定时器来做就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式