📄 kq.asm
字号:
;2;程序清单:(12MHz)
ORG 0000H
AJMP START
ORG 000BH
AJMP T0Int
ORG 0200H
PwmData0H DATA 20H
PwmData0L DATA 21H
PwmData1H DATA 22H
PwmData1L DATA 23H
;PwmData0 ;T0定时t1所需的定时初值(字)
;PwmData1 ;T0定时t2所需的定时初值(字)
;PwmF ;PWM输出标志
START: MOV A,#01H
MOV PwmData0H, #3CH
MOV PwmData0L, #0B0H
MOV PwmData1H, #3CH
MOV PwmData1L, #0B0H
NEXT: MOV P1,A
MOV TMOD,#01H
MOV R0,00H
MOV R1,#PwmData1H
Mov TH0, @R1 ;High(PwmData1)
MOV R1,#PwmData1L
Mov TL0, @R1 ;Low(PwmData1)
SETB ET0
SETB EA
SETB TR0 ;启动T0
SJMP $
T0Int: ;T0中断服务程序
DJNZ R0,PwmOutH ;PWM输出未完成返回
MOV R1,#PwmData0H
Mov TH0, @R1 ;High(PwmData0)
MOV R1,#PwmData0L
Mov TL0, @R1 ;Low(PwmData0)
SETB TR0
MOV R0,01H ;PwmF
Clr p1.0 ;PWM输出脚
Reti
PwmOutH:
Setb p1.0
Clr tr0
MOV R1,#PwmData1H
Mov TH0, @R1 ;High(PwmData1)
MOV R1,#PwmData1L
Mov TL0, @R1 ;Low(PwmData1)
SETB TR0
MOV R0,00H ;PwmF
reti ;说明在主程序中计算PwmData0、PwmData1
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -