我想问一下 用51单片机怎么控制8路不同的pwm波并且每路都不一样的脉冲

用c编写
2025-02-27 03:40:24
推荐回答(3个)
回答1:

PWM波频率不高要求高可软件扫描实现。
P1.0----P1.7 PWM脉冲输出脚
R0-----R7 控制脉冲占空比

子程序: mov p1 #0ffh // P1.0----P1.7输出PWM脉冲
mov a #0
aa: inc a
cjne a,r0,转到下个比较 //判断第1路占空比
clr p1.0
-------- //判断第n路占空比

cjne a,r7, bb //判断第8路占空比
clr p1.7

bb: cjne a,#255, aa //判断第8路占空比
跳出子程序

自己编程调R0--R7控制脉宽。

回答2:

定时器定时1ms或10ms ,根据你的频率。
8路PWM,每路一个变量v1-v8,
每进入定时器中断1次,v1-v8都自加1,
根据各自频率判断是否翻转IO口,比如PWM1频率100HZ,周期10ms,当v1从0加到5时,IO1翻转,v1=0,重新开始计数

回答3:

不是那么容易 要看具体的频率. 说不定就搞不出来