📄 he-nongduojiance.asm
字号:
DV3: DJNZ B,DV1
POP ACC
MOV R1,A
MOV A,R7
MOV R2,A
MOV A,R6
MOV R3,A
RET
FMLD: MOV A,@R0
MOV R6,A
INC R0
MOV A,@R0
MOV R2,A
INC R0
MOV A,@R0
MOV R3,A
DEC R0
DEC R0
MOV A,@R1
MOV R7,A
INC R1
MOV A,@R1
MOV R4,A
INC R1
MOV A,@R1
MOV R5,A
DEC R1
DEC R1
RET
FSTR: MOV A,R4
MOV @R1,A
INC R1
MOV A,R2
MOV @R1,A
INC R1
MOV A,R3
MOV @R1,A
DEC R1
DEC R1
RET
FSUB: SETB 3AH
LCALL FMLD
LCALL FABP
RET
FABP: MOV A,R6 ;由3ah决定加法或减法
MOV C,ACC.7
MOV 38H,C
XRL A,R7
JNB ACC.7,FA1
CPL 3AH
FA1: MOV A,R6
MOV C,ACC.6
MOV ACC.7,C
MOV R6,A
MOV A,R7
MOV C,ACC.6
MOV ACC.7,C
MOV R7,A
CLR C
MOV A,R6
SUBB A,R7
JZ FA2
CLR F0
CLR 39H
JB ACC.7,FA5
CJNE R4,#00H,FA6
CJNE R5,#00H,FA6
FA2: JB 3AH,FA8
MOV A,R3
ADD A,R5
MOV R3,A
MOV A,R2
ADDC A,R4
MOV R2,A
JNC FA4
SETB 39H
CLR C
FA3: CLR F0
LCALL FSDT
FA4: CJNE R2,#00H,FAA
CJNE R3,#00H,FAA
MOV R4,#41H
RET
FAA: MOV A,R6
MOV C,38H
MOV ACC.7,C
XCH A,R4
MOV R6,A
RET
FA5: CJNE R2,#00H,FA7
CJNE R3,#00H,FA7
MOV A,R7
MOV R6,A
SJMP FA2
FA6: CPL F0
FA7: CLR C
LCALL FSDT
SJMP FA1
FA8: MOV A,R3
CLR C
SUBB A,R5
MOV R3,A
MOV A,R2
SUBB A,R4
MOV R2,A
JNC FA9
CLR A
CLR C
SUBB A,R3
MOV R3,A
CLR A
SUBB A,R2
MOV R2,A
CPL 38H
FA9: SETB C
SJMP FA3
FMUL: LCALL FMLD
MOV A,R6
XRL A,R7
MOV C,ACC.7
MOV 38H,C
LCALL WDMUL
MOV A,R7
MOV C,ACC.7
MOV F0,C
MOV A,@R0
ADD A,@R1
MOV R6,A
SETB C
LCALL FSDT
MOV A,R6
MOV C,38H
MOV ACC.7,C
MOV R4,A
RET
FADD: CLR P1.2
NOP
SETB P1.2
CLR 3AH
LCALL FMLD
LCALL FABP
RET
;*********************************************************************
P1ND: DB 07H,80H,0CCH,06H,0E7H,99H,06H,0D3H,3DH,06H,0C0H,00H ;64.4, 57.9, 52.81, 48
DB 06H,0ACH,0F5H,06H,9AH,14H,06H,88H,1EH,05H,0F2H,3DH ;43.24,38.52,34.03,30.28
DB 05H,0D4H,51H,05H,0BBH,33H,05H,0A8H,0CCH ;26.54,23.4,21.1
P2ND: DB 06H,0DDH,0CCH,06H,0C9H,85H,06H,0BAH,5CH,06H,0ACH,51H;55.45,50.38,46.59,43.08
DB 06H,9DH,0B8H,06H,8FH,33H,06H,82H,51H,05H,0E9H,0AEH ;39.43,35.8,32.58,29.21
DB 05H,0CEH,66H,05H,0B6H,0E1H,05H,0A5H,99H ;25.8,22.86,20.7
P3ND: DB 06H,0CDH,99H,06H,0BAH,00H,06H,0ABH,99H,06H,9DH,1EH ;51.4,46.5,42.9,39.28
DB 06H,91H,99H,06H,86H,33H,05H,0F8H,00H,05H,0E2H,28H ;36.4,33.55,31,28.27
DB 05H,0CAH,66H,05H,0B3H,70H,05H,0A2H,0B8H ;25.3,22.43,20.34
P4ND: DB 06H,0C4H,5CH,06H,0B0H,0CCH,06H,0A2H,99H,06H,95H,99H ;49.09,44.2,40.65,37.4
DB 06H,8AH,00H,05H,0FEH,0CCH,05H,0EDH,1EH,05H,0DAH,0CCH;34.5,31.85,29.64,27.35
DB 05H,0C6H,3DH,05H,0B0H,0E1H,05H,0A1H,5CH ;24.78,22.11,20.17
P5ND: DB 06H,0BDH,99H,06H,0ABH,1EH,06H,9CH,0CCH,06H,91H,0AH ;47.4,42.78,39.2,36.26
DB 06H,84H,7AH,05H,0F5H,1EH,05H,0E5H,99H,05H,0D4H,0CCH ;33.12,30.64,28.7,26.6
DB 05H,0C2H,0CCH,05H,0AFH,5CH,05H,0A0H,14H ;24.35,21.92,20.01
P6ND: DB 06H,0B8H,66H,06H,0A6H,33H,06H,98H,0CCH,06H,8DH,33H ;46.1,41.55,38.2,35.3
DB 06H,80H,0CCH,05H,0EEH,00H,05H,0DFH,33H,05H,0CEH,0CCH;32.2,29.75,27.9,25.85
DB 05H,0BDH,0D7H,05H,0ACH,51H,05H,9FH,99H ;23.73,21.54,19.95
P7ND: DB 06H,0B3H,33H,06H,0A2H,33H,06H,95H,33H,06H,88H,0CCH ;44.8,40.55,37.3,34.2
DB 05H,0FCH,00H,05H,0E9H,70H,05H,0D9H,0AEH,05H,0C9H,99H;31.5,29.18,27.21,25.2
DB 05H,0BBH,47H,05H,0ABH,0AH,05H,9EH,0A3H ;23.41,21.38,19.83
P8ND: DB 06H,0AFH,1EH,06H,9FH,0AH,06H,92H,66H,06H,86H,00H ;43.78,39.76,36.6,33.5
DB 05H,0F7H,33H,05H,0E5H,1EH,05H,0D4H,66H,05H,0C6H,14H ;30.9,28.64,26.55,24.76
DB 05H,0B9H,33H,05H,0A9H,0EBH,05H,9DH,0AEH ;23.15;21.24;19.71
P9ND: DB 06H,0ACH,00H,06H,9CH,1EH,06H,8FH,0AEH,06H,83H,0C2H ;43,39.03,35.92,32.94
DB 05H,0F3H,99H,05H,0E1H,0AH,05H,0D0H,14H,05H,0C2H,7AH ;30.45,28.13,26.01,24.31
DB 05H,0B6H,3DH,05H,0A8H,14H,05H,9CH,7AH ;22.78,21.01,19.56
P10ND: DB 06H,0A9H,00H,06H,99H,33H,06H,8DH,99H,06H,82H,3DH ;42.25,38.3,35.4,32.56
DB 05H,0EFH,33H,05H,0DDH,33H,05H,0CCH,0CCH,05H,0C0H,66H;29.9,27.65,25.6,24.05
DB 05H,0B3H,47H,05H,0A5H,0EBH,05H,9BH,99H ;22.41,20.74,19.45
P11ND: DB 06H,0A6H,33H,06H,97H,33H,06H,8BH,99H,06H,80H,00H ;41.55,37.8,34.9,32
DB 05H,0ECH,0CCH,05H,0D9H,85H,05H,0C9H,0AEH,05H,0BDH,99H;29.6,27.19,25.21,23.7
DB 05H,0B2H,3DH,05H,0A4H,0A3H,05H,9AH,0CCH ;22.28,20.58,19.35
P12ND: DB 06H,0A3H,33H,06H,94H,00H,06H,84H,66H,05H,0F9H,99H ;40.8,37,33.1,31.2
DB 05H,0E7H,33H,05H,0D0H,0A3H,05H,0C7H,99H,05H,0BCH,0CCH;28.9,26.08,24.95,23.6
DB 05H,0B1H,0AH,05H,0A3H,99H,05H,9AH,3DH ;22.13,20.45,19.28
P13ND: DB 06H,9FH,0D7H,06H,90H,00H,06H,81H,99H,05H,0F6H,66H ;39.96,36,32.4,30.8
DB 05H,0E4H,00H,05H,0D4H,0A3H,05H,0C5H,5CH,05H,0BAH,14H;28.5,26.58,24.67,23.26
DB 05H,0AFH,0AH,05H,0A1H,0AH,05H,99H,99H ;21.88,20.13,19.2
P14ND: DB 41H,00H,00H,41H,00H,00H,41H,00H,00H,41H,00H,00H
DB 41H,00H,00H,41H,00H,00H,41H,00H,00H,41H,00H,00H
DB 41H,00H,00H,41H,00H,00H,41H,00H,00H
;***************************显示**************************************
DISP: CLR P2.0
MOV R1,#05H ;显示6位数
MOV R2,#08H ;每字节8位
MOV R0,#73H ;70H-72H为显示缓冲区
MOV DPTR,#SEGTAB ;字形表的入口地址
NEXTS: MOV A,@R0 ;取最高位的待显示数据
MOVC A,@A+DPTR ;查表获取字形码
LOOP: CLR P3.6
RRC A
MOV p3.7,c ;取低位发送
SETB P3.6 ;发送
DJNZ R2,LOOP ;8位是否传完?
MOV R2,#08H
DEC R0
DJNZ R1,NEXTS ;直到5个数据全显示完。
nop
SETB P2.0
RET
SEGTAB: DB 77H, 41H, 3BH, 6BH, 4DH, 6EH ;EE 28 77H,41H 5
DB 7EH, 43H, 7FH, 4FH, 00H, 0F7H ; 11
DB 0C1H,0BBH,0EBH,0CDH,0EEH,0FEH ; 17
DB 0C3H,0FFH,0CFH,08H ,1FH, 34H,5DH,3EH,75H,40H,02H,08H,20H,28H ;31
; 0 1 2 3 4 5
; 6 7 8 9 消隐码0.
; 1. 2. 3. 4. 5. 6.
; 7. 8. 9. - P L H E U MA MV Pa J2 J2/Pa
SMOVE: MOV R2,#8
SMOVE1: CLR P2.1
RRC A
MOV P3.7,C
SETB P2.1
NOP
DJNZ R2,SMOVE1
RET
;*******************************X5045读写操作*********************************
XF64RM: CLR P1.4
CLR P1.2
MOV A,#3
LCALL SPIS
MOV A,R4
LCALL SPIS
LCALL SPIR
MOV @R0,A
INC R0
DJNZ R7,$-5
CLR P1.4
SETB P1.2
RET
XF64WM: CLR P1.4
CLR P1.2
MOV A,#6
LCALL SPIS
CLR P1.4
NOP
SETB P1.2
NOP
NOP
CLR P1.2
MOV A,#2
LCALL SPIS
MOV A,R4
LCALL SPIS
XF64WM1: MOV A,@R0
LCALL SPIS
INC R0
DJNZ R7,XF64W1
CLR P1.4
SETB P1.2
RET
XF64R: CLR P1.4
CLR P1.2
MOV A,#5
LCALL SPIS
MOV A,R4
LCALL SPIS
LCALL SPIR
MOV @R0,A
INC R0
DJNZ R7,$-5
CLR P1.4
SETB P1.2
RET
XF64W: CLR P1.4
CLR P1.2
MOV A,#6H
LCALL SPIS
CLR P1.4
NOP
SETB P1.2
NOP
NOP
CLR P1.2
MOV A,#1
LCALL SPIS
XF64W1: MOV A,@R0
LCALL SPIS
INC R0
DJNZ R7,XF64W1
CLR P1.4
SETB P1.2
RET
SPIS: MOV R2,#8
SPIS1: RLC A
CLR P1.4
NOP
NOP
MOV P1.5,C
NOP
NOP
SETB P1.4
DJNZ R2,SPIS1
SETB P1.5
RET
SPIR: MOV R2,#8
CLR A
CLR C
SPIR1: CLR P1.4
NOP
NOP
MOV C,P1.3
RLC A
NOP
SETB P1.4
DJNZ R2,SPIR1
RET
SERIS: CLR EA
CLR EX1
CLR ES
CLR ET0
MOV TH0,#90H
MOV TL0,#0
CLR TR0
CLR RI
CLR P1.2
NOP
SETB P1.2
PUSH PSW
PUSH ACC
SETB RS1
SETB RS0
OR2: MOV A,SBUF
CLR ACC.7
JB 7FH,$+9
CJNE A,#40H,SRERR
MOV 0FH,#07H
SETB 7FH
INC 48H
MOV R0,48H
MOV @R0,A
LCALL SDAPR
SRRET: POP ACC
POP PSW
SETB P2.5
SETB ES
SETB EA
RETI
SRERR: MOV R2,#07H
MOV R0,#10H
CLR A
MOV @R0,A
DJNZ R2,$-1
MOV 48H,#0FH
LJMP SRRET
SSEND: CLR P1.2
CLR P2.5
SETB P1.2
MOV SBUF,A
JBC TI,$+5
SJMP $-3
MOV R2,#32H
DJNZ R2,$
SETB P2.5
RET
SDAPR: MOV A,48H
CJNE A,#0FH,$+6
LJMP SRET
MOV R0,48H
MOV A,@R0
CLR ACC.7
CJNE A,#50H,SRET
MOV A,48H
CJNE A,#16H,$+3
JNC SERR
CJNE A,#15H,$+6
LJMP SORDR
LJMP SERR
SERR: MOV R0,#15H
MOV R2,#06H
CLR A
MOV @R0,A
INC R0
DJNZ R2,$-2
CLR 7FH
SETB 20H
MOV 48H,#0FH
RET
SRET: MOV A,48H
CJNE A,#15H,$+3
JNC SERR
CJNE A,#10H,$+3
JC SERR
RET
SORDR: MOV R0,#80H
MOV @R0,11H
INC R0
MOV @R0,12H
INC R0
MOV @R0,13H
INC R0
MOV @R0,14H
MOV R0,#9CH
MOV @R0,15H
CLR 7FH
MOV 48H,#0FH
SETB 2CH
SETB 2EH
MOV 3DH,#00H
MOV 3FH,#00H
RET
SED2: MOV R0,#76H
SED1: MOV A,@R0
LCALL SSEND
INC R0
DJNZ R6,SED1
RET
TIME0: CLR EA
CLR ET0
CLR TR0
CLR TF0
CLR P1.2
NOP
NOP
SETB P1.2
MOV TH0,#01H
MOV TL0,#0
INC 3FH
MOV A,3FH
CJNE A,#10H,DER
MOV 3FH,#00
MOV 6FH,#10
MOV 70H,#21
MOV 71H,#5
MOV 72H,#25
MOV 73H,#21
LCALL DISP
DER: LJMP WAITES
;*****************************************************************************
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -