📄 lmd18245.asm
字号:
ORG 0000H
LJMP CHUSH
ORG 000BH
LJMP MAIN
CHUSH:ORG 0020H
MOV P0,#00H
CLR P2.7
SETB P2.6
SETB P0.0
MOV R5,#00H
MOV R6,#00H
MOV R0,#7FH
SETB P3.2
SETB P3.3
SETB P3.4
SETB P3.5
MOV R1,#3CH
MOV R2,#0F6H
MOV R3,#3CH
MOV R4,#0F6H
MOV IE,#82H
MOV TMOD,#01H
MOV TCON,#00H
MOV TL0,#3CH
MOV TH0,#0F6H
SETB TR0
LJMP K00
MAIN: CLR TR0
INC R5
CPL P2.1
PUSH A
MOV A,R5
RRC A
JNC MAIN1 ;奇数跳转MAIN1
MOV TH0,R2
MOV TL0,R1
LJMP MAIN2
MAIN1:MOV TH0,R4
MOV TL0,R3
MAIN2:POP A
SETB TR0
RETI
K00: MOV A,P1
CPL A
JZ K00
LCALL DELAY0
MOV A,P1
CPL A
JZ K00
MOV A,P1
RRC A
JNC K000 ;K0键按下跳转K000
RRC A
JNC K111 ;K1键按下跳转K111
RRC A
JNC K222 ;K2键按下跳转K222
RRC A
JNC K333 ;K3键按下跳转K333
RRC A
JNC K444 ;K4键按下跳转K444
LJMP K00
K000: MOV A,P1
CPL A
JNZ K000
LCALL DELAY0
MOV A,P1
CPL A
JNZ K000
CLR C
CJNE R0,#0F9H,L0;R0<255,则跳转L1
L00: MOV R1,#00H
MOV R2,#00H
MOV R3,#0FFH
MOV R4,#0FFH
LJMP K00
L0: JNC L00
LJMP L1
K111:MOV A,P1
CPL A
JNZ K111
LCALL DELAY0
MOV A,P1
CPL A
JNZ K111
CLR C
CJNE R0,#06H,L2 ;R0>0则跳转L3
L22: MOV R1,#0FFH
MOV R2,#0FFH
MOV R3,#00H
MOV R4,#00H
LJMP K00
L2: JC L22
LJMP L3
K222: MOV A,P1
CPL A
JNZ K222
LCALL DELAY0
MOV A,P1
CPL A
JNZ K222
CLR P2.7
SETB P2.6
SETB P0.0
CLR P0.1
SETB P2.0
LJMP K00
K333: MOV A,P1
CPL A
JNZ K333
LCALL DELAY0
MOV A,P1
CPL A
JNZ K333
CLR P2.7
SETB P2.6
SETB P0.1
CLR P0.0
CLR P2.0
LJMP K00
K444: MOV A,P1
CPL A
JNZ K444
LCALL DELAY0
MOV A,P1
CPL A
JNZ K444
INC R6
CLR C
MOV A,R6
RRC A
JC K4
MOV R5,#00H
MOV R0,#7FH
MOV R1,#3CH
MOV R2,#0F6H
MOV R3,#3CH
MOV R4,#0F6H
SETB TR0
LJMP K00
K4: CLR TR0
SETB P2.1
LJMP K00
L1: INC R0
INC R0
INC R0
INC R0
INC R0
MOV A,R0 ;高电平定时时间
MOV B,#14H
MUL AB ;5000*R0/255
CPL A ; 计算初值65535-BA
MOV R1,A ;低八位存入R1中
MOV A,B
CPL A
MOV R2,A ;高八位存入R2中
CLR C
MOV A,#0FFH ;低电平定时时间
SUBB A,R0 ;A-R0
MOV B,#14H
MUL AB
CPL A
MOV R3,A
MOV A,B
CPL A
MOV R4,A
LJMP K00
L3: DEC R0
DEC R0
DEC R0
DEC R0
DEC R0
MOV A,R0
MOV B,#14H
MUL AB
CPL A
MOV R1,A ;低八位存入R1中
MOV A,B
CPL A
MOV R2,A ;高八位存入R2中
CLR C
MOV A,#0FFH
SUBB A,R0 ;A-R0
MOV B,#14H
MUL AB
CPL A
MOV R3,A
MOV A,B
CPL A
MOV R4,A
LJMP K00
DELAY0:MOV R7,#0AH ;延时子程序
DL2: MOV 0AH,#0DH
DL1: NOP
DJNZ 0AH,DL1
DJNZ R7,DL2
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -