51单片机一个io口输出不同的4个不同的pwm

 我来答
Oan365
2016-09-06 · TA获得超过372个赞
知道小有建树答主
回答量:417
采纳率:100%
帮助的人:213万
展开全部
1、首先要明白PWM的含义,PWM就是输出不同占空比的脉冲,
2、普通51单片机IO口输出PWM的话,可以用定时器去计时,比如要输出100HZ的占空比50%的PWM。可以配置1ms的定时器中断,在中断中计数,一个中断就是1ms,100HZ的脉冲,周期是10ms,50%的占空比,可以计数到5的时候把Io口取反;程序如下
void main()
{
TMOD = 0x01;

TH0 = 0xFC;

TL0 = 0x18; // 晶振选择12MHz,配置定时器中断1ms

ET0 = 1;

TR0 =1;

EA= 1;

while(1); //程序停止在这里,,接下来就是去响应中断
}
void Timer0() interrupt 1
{
static unsigned char t = 0;

TH0 = 0xFC;

TL0 = 0x18; //重新装入初值;
t++;

if(t <5)

{
IO = 0;

}
else if(t < 10)
{
IO = 1;

}
else

{
t = 0;

}

}
上面的程序就是周期是10ms,占空比为50%的输出了,,,需要调节占空比的话,只要改变IO口电平电话的时间就可以了;

3、多个IO口 输出不同占空比的PWM;
原理是和1个的是一样的, 多用几个时间变量去计时,判断就可以了。

4、上面说的是普通的51单片机,现在有很多增强型单片机,内部有PWM模块,可以直接使用,赋值一个周期值,比如30000到特定的寄存器里面; 然后改变第一次电平变化的时间和第二次电平变化的时间 就可以实现不同的占空比调节了。具体的可以参考下单片机的数据手册都会有例程说明的,。如果是使用内部PWM模块的话,需要选择含有多路PWM功能的单片机来满足设计要求了。
意法半导体(中国)投资有限公司
2023-06-12 广告
stm32怎么样?这个问题不能一概而论,要根据您的具体情况进行分析。意法半导体单片机产品线拥有业界很宽广、极具创新力的32位产品系列 – STM32,覆盖超低功耗、超高性能方向,同时兼具很强的市场竞争力。STM32是ARM Cortex内核... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
201810800849
2016-07-07 · TA获得超过221个赞
知道答主
回答量:104
采纳率:0%
帮助的人:50.7万
展开全部
提供下思路,两个定时器。一个控制高低电平,另一个控制四种PWM的顺序及时长。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火锅公子
2016-07-24 · 超过13用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:30万
展开全部
不可以,一个具有PWM输出功能的IO口只能输出一路PWM
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sdlylshl9
2016-08-05 · TA获得超过1814个赞
知道小有建树答主
回答量:779
采纳率:75%
帮助的人:254万
展开全部
你需要分时输出吗?不然的话一个IO口就只能输出一路PWM信号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式