怎么样用51单片机产生三路占空比PWM波啊?要汇编语言的,有思路也行

2024-11-25 18:33:19
推荐回答(5个)
回答1:

; 这是产生 PWM 波的方法 中断部分 T0 自动重装载 方式2
INTT0: ; 几个参数需要 定义 三路 PWM 占空比 可以不同
PUSH PSW ; 现场保护
PUSH ACC
INC COUNTER ; 计数值加1
MOV A,COUNTER
CJNE A,PWMH1,INTT01 ; 如果等于高电平脉冲数
CLR P1.0 ; P1.0变为低电平 PWM1
INTT01:
CJNE A,PWMH2,INTT02 ; 如果等于高电平脉冲数
CLR P1.1 ; P1.1变为低电平 PWM2
INTT02:
CJNE A,PWMH3,INTT03 ; 如果等于高电平脉冲数
CLR P1.2 ; P1.2变为低电平 PWM3
INTT03:
CJNE A,PWM,INTT05 ;如果等于周期数
MOV COUNTER,#01H ;计数器复位
SETB P1.0 ;P1.0为高电平
SETB P1.1 ;P1.1为高电平
SETB P1.2 ;P1.2为高电平
INTT05:
POP ACC ;出栈
POP PSW
RETI

回答2:

如果是固定的PWM那好办,做个定时中断,中断里面判断时间,假如做1ms 的定时中断,5ms次让一个端口输出一个脉冲,然后10ms让另个端口输出Pwm脉冲,最后15ms 在另个端口输出Pwm脉冲,

回答3:

设定好相应时间,用三路定时器中断来不停的取反三个IO就行,这样三路可以各自调整互不干扰。89C52就有三个定时器T0 T1 T2

回答4:

三路就是三个子循环。
把全部的合成一个大循环,然后再分别调控就好了

回答5:

要说清型号 有的51提供很多路pwm 有的根本没有pwm功能,要自己模拟。