📄 pwm.asm
字号:
ORG 0000H
AJMP START
ORG 0003H
LJMP INT0
ORG 000BH
LJMP ITT0
ORG 001BH
LJMP ITT1
ORG 0030H
START:MOV SP,#60H
MOV R0,#00H
MOV R1,#00H
CLR P1.5
CLR P1.0
CLR P1.1
CLR P1.2
CLR P1.3
CLR P3.0
CLR P3.1
MOV TMOD,#11H
MOV TL0,#0FFH
MOV TH0,#0FFH
MOV TL1,#0FFH
MOV TH1,#0FFH
SETB EA
SETB EX0
SETB ET0
SETB ET1
SETB IT0
CLR TR0
CLR TR1
CLR 20H
MOV DPTR,#TAB
MOV 40H,#0
MOV 41H,#0
MOV 42H,#0
MOV 43H,#0
LED: SETB P1.4
CLR P1.5
CLR P1.6
CLR P1.7
MOV A,40H
MOVC A,@A+DPTR
MOV P0,A
LCALL TTS
CLR P1.4
SETB P1.5
CLR P1.6
CLR P1.7
MOV A,41H
MOVC A,@A+DPTR
MOV P0,A
LCALL TTS
CLR P1.4
CLR P1.5
SETB P1.6
CLR P1.7
MOV A,42H
MOVC A,@A+DPTR
MOV P0,A
LCALL TTS
CLR P1.4
CLR P1.5
CLR P1.6
SETB P1.7
MOV A,43H
MOVC A,@A+DPTR
MOV P0,A
LCALL TTS
CLR P1.7
LJMP LED
ITT0: CPL P3.0
JNB P3.0,Z1
MOV A,#0FFH
SUBB A,R0
MOV TH0,A
SETB TR0
RETI
Z1: MOV TH0,R0
SETB TR0
RETI
ITT1:
CPL P3.1
JNB P3.1,Z2
MOV A,#0FFH
SUBB A,R1
MOV TH1,A
SETB TR1
RETI
Z2: MOV TH1,R1
SETB TR1
RETI
INT0: CLR EX0
MOV A,#0FFH
MOV P2,A
MOV A,P2
JB ACC.5,RETURN1
CLR TR0
CLR TR1
CLR P3.0
CLR P3.1
LCALL TTS
LCALL TTS
LCALL TTS
SETB EX0
RETI
;STOP
RETURN1:
JB ACC.4,RETURN2
SETB TR0
SETB TR1
SETB EX0
RETI
;RUN
RETURN2:
JB ACC.6,RETURN3
CPL 20H
SETB EX0
RETI
RETURN3:
JNB 20H,MOT0
LJMP MOT1
MOT0: JNB ACC.0,JIA0
JNB ACC.1,JIAN0
JNB ACC.2,ZZ0
JNB ACC.3,FF0
SETB EX0
RETI
JIA0: CJNE R0,#0FFH, BB0
AJMP QQ0
BB0: MOV A,R0
ADD A,#5
MOV R0,A
AJMP QQ0
JIAN0:
CJNE R0,#00,MM0
AJMP QQ0
MM0: MOV A,R0
SUBB A,#5
MOV R0,A
AJMP QQ0
QQ0: MOV A,R0
MOV B,#5
DIV AB
MOV B,#10
DIV AB
MOV 40H,A
MOV 41H,B
SETB EX0
LCALL TTS
LCALL TTS
LCALL TTS
LCALL TTS
RETI
ZZ0: SETB P1.0
CLR P1.1
LCALL TTS
LCALL TTS
LCALL TTS
SETB EX0
RETI
FF0: CLR P1.0
SETB P1.1
LCALL TTS
LCALL TTS
SETB EX0
RETI
MOT1: JNB ACC.0,JIA1
JNB ACC.1,JIAN1
JNB ACC.2,ZZ1
JNB ACC.3,FF1
SETB EX0
RETI
JIA1: CJNE R1,#0FFH, BB1
AJMP QQ1
BB1: MOV A,R1
ADD A,#5
MOV R1,A
AJMP QQ1
JIAN1: CJNE R1,#00,MM1
AJMP QQ1
MM1: MOV A,R1
SUBB A,#5
MOV R1,A
AJMP QQ1
QQ1: MOV A,R1
MOV B,#5
DIV AB
MOV B,#10
DIV AB
MOV 42H,A
MOV 43H,B
SETB EX0
LCALL TTS
LCALL TTS
LCALL TTS
LCALL TTS
RETI
ZZ1: SETB P1.2
CLR P1.3
LCALL TTS
LCALL TTS
LCALL TTS
SETB EX0
RETI
FF1: CLR P1.2
SETB P1.3
LCALL TTS
LCALL TTS
LCALL TTS
SETB EX0
RETI
TTS: MOV R3,#70H
TT1S: MOV R4,#30H
TT0S: DJNZ R4,TT0S
DJNZ R3,TT1S
RET
TAB: DB 40H,79H,24H,30H,19H
DB 12H,02H,78H,00H,10H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -