?? ad.asm
字號:
ORG 0100H
MAIN:MOV SP,#60H
MOV DPTR,#4000H
MOV A,#03H
MOVX @DPTR,A
CLR 02H
MOV R0,#40H
MOV A,#00H
ML0:MOV @R0,A
INC R0
CJNE R0,#45H,ML0
ACALL KEY1
ML2:CJNE A,#12,ML3
AJMP ML5
ML3:CJNE A,#10,ML4
ACALL ALON
AJMP ML2
ML4:CJNE A,#11,ML5
ACALL REP
AJMP ML2
ML5:ACALL KEY1
AJMP ML2
ALON:ACALL KEY1
CLR 01H
CLR C
PUSH ACC
SUBB A,#09H
POP ACC
JNC A1
C1:MOV B,A
PUSH B
SETB 02H
ACALL ONE
CLR 02H
ACALL KSI
POP B
CJNE A,#00H,E2
MOV A,B
AJMP C1
E2:ACALL KEY1
PUSH ACC
CLR C
SUBB A,#09H
POP ACC
JC C1
AJMP A4
A1:CJNE A,#13,ALON
SETB 01H
A2:ACALL KEY1
CLR C
PUSH ACC
SUBB A,#09H
POP ACC
JNC A2
PUSH ACC
MOV A,#0FFH
MOV 21H,A
MOV A,#7FH
MOV 22H,A
POP ACC
MOV R7,#00H
A3:PUSH ACC
MOV B,R7
PUSH B
ACALL ONE
POP B
MOV R7,B
INC R7
POP ACC
MOV B,A
PUSH B
ACALL KSI
POP B
CJNE A,#00H,E3
MOV A,B
AJMP A3
E3: MOV B,R7
PUSH B
ACALL KEY1
POP B
MOV R7,B
CJNE A,#15,A4
ACALL COPE
ACALL KEY1
A4:RET
REP:MOV R0,#00H
KL1:MOV A,#01H
KL2:MOV B,R0
PUSH B
PUSH ACC
ACALL ONE
ACALL KSI
MOV R3,A
POP ACC
POP B
MOV R0,B
CJNE R3,#00H,KL3
KL4:INC A
CJNE A,#09H,KL2
INC R0
CJNE R0,#0AH,KL1
AJMP KL7
KL3:PUSH ACC
MOV B,R0
PUSH B
ACALL KEY1
MOV R3,A
POP B
MOV R0,B
POP ACC
CJNE R3,#12,KL4
KL5:CJNE A,#08H,KL6
AJMP KL7
KL6:INC A
PUSH ACC
ACALL ONE
POP ACC
AJMP KL5
KL7:ACALL KEY1
RET
ONE:CLR EX0
MOV R1,A
MOV DPTR,#0FEF7H
MOV A,DPL
ADD A,R1
MOV DPL,A
MOV A,#00H
MOVX @DPTR,A
MOV R2,#0AH
L10:NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R2,L10
MOVX A,@DPTR
MOV B,#02H
MUL AB
CLR C
SUBB A,#14
JNC T
DEC B
T: PUSH ACC
PUSH B
CLR C
SUBB A,#90H
MOV A,B
SUBB A,#01H
MOV F0,C
POP B
POP ACC
JC BDIV
ACALL ALM
BDIV:MOV R2,#100
MOV R3,B
MOV R4,A
MOV B,#08H
DIV2:CLR C
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV F0,C
MOV R3,A
CLR C
SUBB A,R2
JB F0,DV2
JC DV3
DV2:MOV R3,A
INC R4
DV3:DJNZ B,DIV2
CLR F0
MOV A,R1
MOV 40H,A
MOV A,R4
MOV 41H,A
JNB 01H,B1
MOV DPL,21H
MOV DPH,22H
INC DPTR
MOVX @DPTR,A
B1:MOV A,R3
MOV B,#0AH
DIV AB
JNB 01H,B2
INC DPTR
MOVX @DPTR,A
B2:MOV 42H,A
JNB 01H,B3
INC DPTR
PUSH ACC
MOV A,B
MOVX @DPTR,A
POP ACC
B3:MOV 43H,B
PUSH ACC
MOV A,#00H
MOV 44H,A
JNB 01H,B4
INC DPTR
MOVX @DPTR,A
MOV 21H,DPL
MOV 22H,DPH
B4:POP ACC
ACALL DIR
RET
ALM:MOV P1,#0FFH
PUSH ACC
MOV A,R1
CJNE A,#01H,L1
CLR P1.0
AJMP DL1
L1:CJNE A,#02H,L2
CLR P1.1
AJMP DL1
L2:CJNE A,#03H,L3
CLR P1.2
AJMP DL1
L3:CJNE A,#04H,L4
CLR P1.3
AJMP DL1
L4:CJNE A,#05H,L5
CLR P1.4
AJMP DL1
L5:CJNE A,#06H,L6
CLR P1.5
AJMP DL1
L6:CJNE A,#07H,L7
CLR P1.6
AJMP DL1
L7:CLR P1.7
DL1:POP ACC
RET
KEY1:MOV A,#03H
MOV DPTR,#4000H
MOVX @DPTR,A
K:ACALL KSI
JNZ LK2
AJMP K
LK2:MOV R3,#11H
MOV R4,#00H
LK4:MOV DPTR,#4001H
MOV A,R3
MOVX @DPTR,A
MOV DPTR,#4003H
MOVX A,@DPTR
PUSH ACC
MOV A,R3
JB ACC.3,DD
POP ACC
JB ACC.0,LONE
MOV A,#01H
AJMP LKP
LONE:JB ACC.1,LTWO
MOV A,#04H
AJMP LKP
LTWO:JB ACC.2,LTHR
MOV A,#07H
AJMP LKP
LTHR:JB ACC.3,NEXT
MOV A,#0DH
LKP:ADD A,R4
PUSH ACC
AJMP LK3
DD:POP ACC
JB ACC.0,LONE1
MOV A,#10
PUSH ACC
AJMP LK3
LONE1:JB ACC.1,LTWO1
MOV A,#11
PUSH ACC
AJMP LK3
LTWO1:JB ACC.2,LTHR1
MOV A,#12
PUSH ACC
AJMP LK3
LTHR1:JB ACC.3,NEXT
MOV A,#16
PUSH ACC
LK3:ACALL KSI
JNZ LK3
POP ACC ;ACC is the parameter of this programme.
RET
NEXT:INC R4
MOV A,R3
JB ACC.3,KND
RL A
MOV R3,A
AJMP LK4
KND:AJMP K
KSI:MOV DPTR,#4001H
MOV A,#0FFH
MOVX @DPTR,A
MOV DPTR,#4003H
MOVX A,@DPTR
CPL A
ANL A,#0FH
RET
COPE:MOV A,#0FFH
MOV DPL,A
MOV A,#7FH
MOV DPH,A
E1: MOV A,R1
MOV 40H,A
INC DPTR
MOVX A,@DPTR
MOV 41H,A
INC DPTR
MOVX A,@DPTR
MOV 42H,A
INC DPTR
MOVX A,@DPTR
MOV 43H,A
INC DPTR
MOVX A,@DPTR
MOV 44H,A
PUSH DPL
PUSH DPH
MOV B,R7
PUSH B
ACALL DIR
POP B
MOV R7,B
POP DPH
POP DPL
DJNZ R7,E1
RET
DIR:MOV DPTR,#4000H
MOV A,#03H
MOVX @DPTR,A
MOV DPTR,#4002H
MOV A,#00H
MOVX @DPTR,A
JNB 02H,Z1
MOV R3,#03H
AJMP D1
Z1:MOV R3,#15H
D1:MOV R4,#08H
D2:MOV R0,#40H
MOV R2,#01H
DIRL:MOV DPTR,#4001H
MOV A,R2
MOVX @DPTR,A
MOV A,@R0
CJNE R0,#41H,DIR2
MOV DPTR,#DSEG1
MOVC A,@A+DPTR
AJMP DIR3
DIR2:MOV DPTR,#DSEG2
MOVC A,@A+DPTR
DIR3:MOV DPTR,#4002H
MOVX @DPTR,A
MOV R7,#02H
DL:MOV R6,#0FFH
DL6:DJNZ R6,DL6
DJNZ R7,DL
INC R0
MOV A,R2
RL A
MOV R2,A
JNB ACC.5,DIRL
DJNZ R4,D2
DJNZ R3,D1
MOV DPTR,#4002H
MOV A,#00H
MOVX @DPTR,A
RET
DSEG2: DB 3FH,06H,5BH
DB 4FH,66H,6DH
DB 7DH,07H,7FH
DB 6FH
DSEG1: DB 0BFH,86H,0DBH
DB 0CFH,0E6H,0EDH
DB 0FDH,87H,0FFH
DB 0EFH
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -