📄 二位加减法.asm
字号:
$MOD841
SP0 EQU 50H
CLK81 EQU P3.5
DAT81 EQU P3.3
KEYVAL EQU 31H
;------------------------
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP SERVE
ORG 0060H
MAIN: MOV R0,#0FH
CLR A
QING: MOV @R0,A
DJNZ R0,QING
MOV SP,#SP0
MOV R3,#0FFH
LCALL YS
;---------------------------------------
LCALL INI8281
LCALL INI841
LJMP HERE
;---------------------------------------
INI841: SETB EA
SETB EX0
RET
;----------------------------------------
INI8281:SETB CLK81
SETB DAT81
MOV A,#12H
LCALL WTO81
MOV A,#80H
LCALL WTO81
RET
HERE: LJMP $
;-----------------------------------
SERVE: INC R3
MOV A,#93H
LCALL WTO81
LCALL RDKVAL
CJNE R3,#00H,S1
LCALL FUNCTION1
LJMP OVER
S1: CJNE R3,#01H,S2
LCALL FUNCTION2
LJMP OVER
S2: CJNE R3,#02H,S3
LCALL FUNCTION3
LJMP OVER
S3: CJNE R3,#03H,S4
LCALL FUNCTION4
LJMP OVER
S4: MOV A,KEYVAL
CJNE A,#0DH,S5
LCALL HE
LJMP OVER
S5: CJNE A,#0EH,S6
LCALL CHA
LJMP OVER
S6: CJNE A,#0FH,OVER
MOV R3,#0FFH
LCALL QINGPING
OVER: RETI
;-------------------------------
FUNCTION1:MOV A,#14H
LCALL WTO81
MOV A,KEYVAL
MOV 40H,A
LCALL WTO81
RET
FUNCTION2:MOV A,#14H
LCALL WTO81
MOV A,KEYVAL
MOV 41H,A
ORL A,#10H
LCALL WTO81
RET
FUNCTION3:MOV A,#14H
LCALL WTO81
MOV A,KEYVAL
MOV 42H,A
ORL A,#20H
LCALL WTO81
RET
FUNCTION4:MOV A,#14H
LCALL WTO81
MOV A,KEYVAL
MOV 43H,A
ORL A,#30H
LCALL WTO81
RET
;----------------------------------
HE: MOV A,40H
MOV B,#10
MUL AB
ADD A,41H
MOV 41H,A
MOV A,42H
MOV B,#10
MUL AB
ADD A,43H
ADD A,41H
LCALL CHULI
LCALL ZHU_XIANSHI
RET
;------------------------------
CHA: MOV A,40H
MOV B,#10
MUL AB
ADD A,41H
MOV 41H,A
MOV A,42H
MOV B,#10
MUL AB
ADD A,43H
MOV 43H,A
CLR C
MOV A,41H
SUBB A,43H
JC JIXU
LCALL CHULI
LCALL ZHU_XIANSHI
LJMP OVER1
JIXU: MOV A,43H
CLR C
SUBB A,41H
LCALL CHULI
LCALL ZHU_XIANSHI
MOV A,#04H
LCALL WTO81
MOV A,#0BFH
LCALL WTO81
OVER1: RET
;-------------------------------
CHULI: MOV B,#100
DIV AB
MOV 45H,A
MOV A,B
MOV B,#10
DIV AB
MOV 46H,A
MOV 47H,B
RET
;---------------------------------
ZHU_XIANSHI:MOV A,#14H
LCALL WTO81
MOV A,45H
ORL A,#50H
LCALL WTO81
MOV A,#14H
LCALL WTO81
MOV A,46H
ORL A,#60H
LCALL WTO81
MOV A,#14H
LCALL WTO81
MOV A,47H
ORL A,#70H
LCALL WTO81
RET
;--------------------------------------
QINGPING: MOV A,#16H
LCALL WTO81
MOV A,#00H
LCALL WTO81
RET
;----------------------------------
WTO81: MOV R6,#08H
WAT: CLR CLK81
LCALL DELAY
SETB CLK81
JB DAT81,WAT
CLR CLK81
LCALL DELAY
SETB CLK81
JNB DAT81,$
WTB81: RLC A
MOV DAT81,C
CLR CLK81
LCALL DELAY
SETB CLK81
LCALL DELAY
LCALL DELAY
DJNZ R6,WTB81
SETB DAT81
RET
;-----------------------------------
RDKVAL: CLR CLK81
LCALL DELAY
SETB CLK81
JB DAT81,$
CLR CLK81
LCALL DELAY
SETB CLK81
MOV R6,#08H
RD1:
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV C,DAT81
LCALL DELAY
RLC A
CLR CLK81
LCALL DELAY
SETB CLK81
DJNZ R6,RD1
MOV KEYVAL,A
RET
;---------------------------------
DELAY: NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
;----------------------------------------
YS: MOV R5,#00H
MOV R4,#50H
YS1: DJNZ R5,$
DJNZ R4,YS1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -