📄 按键控制p0口产生pwm.txt
字号:
PWMH EQU 60H
PWMT EQU 61H
COUNT EQU 63H
PWM BIT P0.0
ORG 0000H
AJMP MAIN
ORG 000BH
LJMP TIME0
ORG 0030H
MAIN: MOV PWMT,#100 ;设PWM信号一个周期的总长度为100
MOV COUNT,#1
MOV TCON,#01H
SETB EA
SETB ET0
MOV TH0,#0FFH
MOV TL0,#12H
JIANCE:JB P1.0,ZHONGSU ;低速键按下,则附PWMH=10,即PWM信号的高电平数为10
MOV PWMH,#10
SETB TR0
ZHONGSU: JB P1.1,GAOSU ;中速键按下,则附PWMH=50,即PWM信号的高电平数为50
MOV PWMH,#50
SETB TR0
GAOSU: JB P1.2,TINGZHI ;高速键按下,则附PWMH=90,即PWM信号的高电平数为90
MOV PWMH,#90
SETB TR0
TINGZHI:JB P1.3,JIANCE ;停止键按下,则置PWM信号为低电平
CLR TR0
CLR PWM
AJMP JIANCE
TIME0: INC COUNT
MOV A,COUNT
CJNE A,PWMH,PANGDUAN ;维持PWM信号的高电平到高电平的设定值
CLR PWM ;到设定植后,PWM信号置低电平
PANGDUAN:CJNE A,PWMT,EXIT ;保持低电平信号,直到PWM信号周期的总长度后再置高电平
SETB PWM
MOV COUNT,#1
EXIT: MOV TH0,#0FFH
MOV TL0,#12H
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -