📄 lcd_g7.asm
字号:
CLR P1.1
AJMP DIS_LOOP1
DIS_NEXT12: CJNE R3,#03H,DIS_NEXT13
MOV A,#0FFH
MOV P0,A
SETB P1.1
CLR P1.2
AJMP DIS_LOOP1
DIS_NEXT13: MOV A,#0FFH
MOV P0,A
SETB P1.2
CLR P1.3
AJMP DIS_LOOP1
DIS_NEXT10: MOV A,#0FFH
MOV P0,A
MOV R3,#00H
SETB P1.3
CLR P1.4
MOV A,42H
MOV P0,A
JNB FLAG3,DIS_NEXT3
MOV R7,Counter
MOV A,BUFF5
CJNE A,#34H,DIS_NEXT5
CJNE R7,#50H,DIS_NEXT3
SETB FLAG4
AJMP DIS_NEXT6
DIS_NEXT5: CJNE R7,#60H,DIS_NEXT3
SETB FLAG4
AJMP DIS_NEXT3
DIS_NEXT6: MOV A,#0FFH
MOV P0,A
DEC Counter
MOV R5,Counter
CJNE R5,#00H,DIS_NEXT3
CLR FLAG4
DIS_NEXT3: RET
RX_DATA: PUSH PSW
PUSH ACC
PUSH DPH
PUSH DPL
ANL PSW,#0E7H
SETB RS0
SETB RS1
MOV A,SBUF
MOV R5,62H
JNB FLAG19,RX_NEXT2
CJNE A,#7EH,RX_NEXT0
CJNE R5,#12H,RX_NEXT1
AJMP RX_NEXT2
RX_NEXT0: CJNE R5,#12H,RX_NEXT2
AJMP RX_NEXT4
RX_NEXT1: MOV R5,#12H
MOV 63H,#80H
RX_NEXT2: MOV R0,63H
MOV @R0,A
INC R0
MOV 63H,R0
DJNZ 62H,RX_NEXT4
MOV 62H,#12H
MOV 63H,#80H
SETB FLAG13
RX_NEXT4: POP DPL
POP DPH
POP ACC
POP PSW
RET
CRX_DATA: PUSH PSW
ANL PSW,#0E7H
SETB RS1
SETB RS0
CLR FLAG13
ACALL PASS_DATA1
MOV R0,#93H
MOV R2,#0EH
MOV A,#00H
CRX_LOOP0: ADD A,@R0
INC R0
DJNZ R2,CRX_LOOP0
MOV R2,A
MOV A,@R0
CLR C
SUBB A,#30H
JNB ACC.4,CRX_NEXT1
SUBB A,#07H
CRX_NEXT1: MOV 64H,A
INC R0
MOV A,@R0
CLR C
SUBB A,#30H
JNB ACC.4,CRX_NEXT3
SUBB A,#07H
CRX_NEXT3: SWAP A
MOV R0,#64H
XCHD A,@R0
MOV 64H,R2
SWAP A
CJNE A,64H,CRX_1
ACALL PASS_DATA2
ACALL SELECT
ACALL COMPUTE
ACALL LED_LIGHT
ACALL CHECK
AJMP CRX_END
CRX_1: SETB FLAG19
CRX_END: POP PSW
RET
CHECK: MOV A,BUFF5
CJNE A,#31H,CHECK_NEXT0
MOV 5AH,#00H
SETB FLAG27
CLR FLAG25
CLR FLAG28
CLR FLAG46
AJMP CHECK_END
CHECK_NEXT0: CJNE A,#32H,CHECK_NEXT4
SETB FLAG24
MOV 5AH,#02H
CLR FLAG25
CLR FLAG28
AJMP CHECK_END
CHECK_NEXT4: CJNE A,#33H,CHECK_NEXT7
SETB FLAG26
MOV 5AH,#03H
CLR FLAG28
CLR FLAG25
AJMP CHECK_END
CHECK_NEXT7: CJNE A,#34H,CHECK_NEXT1
SETB FLAG28
CLR FLAG25
CLR FLAG27
SETB FLAG3
MOV 5AH,#01H
AJMP CHECK_END
CHECK_NEXT1: CJNE A,#36H,CHECK_END
SETB FLAG28
SETB FLAG25
CLR FLAG27
MOV 5AH,#01H
CLR FLAG46
CHECK_END: RET
COMPUTE: JNB FLAG46,COMPUTE_START
MOV A,BUFF9
CJNE A,#30H,COMPUTE_NEXT0
LCALL TEST_CONTENT
AJMP R_END
COMPUTE_NEXT0: CJNE A,#31H,COMPUTE_START
AJMP R_END
COMPUTE_START: MOV R0,#39H
MOV R1,#46H
MOV R4,#04H
CRX_LOOP1: MOV A,@R0
MOV R7,A
CJNE A,#20H,CRX_2
MOV A,#0FFH
AJMP CRX_3
CRX_2: ANL A,#70H
CJNE A,#30H,R_4
MOV A,R7
ANL A,#0FH
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV R6,A
MOV A,R7
JNB ACC.7,R_5
MOV A,R6
CLR ACC.7
AJMP CRX_3
R_5: MOV A,R6
AJMP CRX_3
R_4: MOV A,R7
CLR C
SUBB A,#41H
MOV DPTR,#TAB2
MOVC A,@A+DPTR
CRX_3: MOV @R1,A
INC R0
DEC R1
DJNZ R4,CRX_LOOP1
R_END: RET
LED_LIGHT: JNB FLAG46,LIGHT_START
AJMP LIGHT_END
LIGHT_START: MOV A,@R0
CLR C
SUBB A,#30H
JNB ACC.4,LIGHT_NEXT0
SUBB A,#07H
LIGHT_NEXT0: MOV R4,A
INC R0
CLR C
MOV A,@R0
SUBB A,#30H
JNB ACC.4,LIGHT_NEXT1
SUBB A,#07H
LIGHT_NEXT1: ANL A,#0FH
MOV R1,A
MOV A,R4
ANL A,#0FH
SWAP A
ORL A,R1
MOV 42H,A
LIGHT_END: RET
PASS_DATA1: MOV R1,#92H
MOV R0,#80H
MOV R2,#12H
PASS_LOOP1: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,PASS_LOOP1
RET
PASS_DATA2: CLR FLAG19
MOV R0,#92H
MOV R1,#30H
MOV R2,#12H
PASS_LOOP0: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,PASS_LOOP0
JNB FLAG16,PASS_DATA2_END
MOV A,BUFF5
CJNE A,#31H,PASS_DATA2_END
SETB FLAG3
PASS_DATA2_END: RET
SELECT: MOV A,BUFF5
CJNE A,#32H,SELECT_NEXT0
JB FLAG17,SELECT_NEXT1
SETB FLAG17
SETB FLAG2
CLR FLAG3
CLR FLAG18
CLR FLAG27
CLR FLAG21 ;ADD
; CLR FLAG46
AJMP SELECT_NEXT1
SELECT_NEXT0: CLR FLAG17
CJNE A,#33H,SELECT_NEXT1
JB FLAG18,SELECT_NEXT3
SETB FLAG18
SETB FLAG16
SETB FLAG2
CLR FLAG27
; CLR FLAG46
AJMP SELECT_NEXT3
SELECT_NEXT1: CLR FLAG18
CLR FLAG21
CJNE A,#34H,SELECT_NEXT2
JB FLAG22,SELECT_NEXT3
SETB FLAG22
SETB FLAG2
; CLR FLAG46
AJMP SELECT_NEXT3
SELECT_NEXT2: CJNE A,#35H,SELECT_NEXT4
SETB FLAG46
CLR FLAG28
CLR FLAG26
CLR FLAG27
CLR FLAG24
CLR FLAG17
CLR FLAG18
CLR FLAG25
MOV A,BUFF9
CJNE A,#31H,SELECT_NEXT4
JNB FLAG2,SELECT_NEXT4
MOV 46H,#0FFH
MOV 45H,#0FFH
MOV 42H,#0FFH
SELECT_NEXT4: CLR FLAG22
SELECT_NEXT3: ACALL HD
RET
TX_DATA: PUSH PSW
ANL PSW,#0E7H
SETB RS1
CLR FLAG12
CJNE R7,#12H,TX_1
MOV BUFF10,#30H
MOV BUFF11,#30H
MOV BUFF12,#30H
MOV BUFF13,#30H
MOV BUFF14,#30H
MOV BUFF15,#30H
MOV BUFF6,#30H
MOV BUFF4,#30H
MOV R0,#31H
MOV R5,#0DH
MOV A,@R0
TX_LOOP1: INC R0
ADD A,@R0
DJNZ R5,TX_LOOP1
MOV R6,A
MOV R5,#02H
MOV R1,#BUFF16
SWAP A
TX_LOOP2: ANL A,#0FH
CLR C
SUBB A,#0AH
JNC TX_NEXT0
ADD A,#0AH
ORL A,#30H
AJMP TX_NEXT3
TX_NEXT0: ADD A,#41H
TX_NEXT3: MOV @R1,A
MOV A,R6
INC R1
DJNZ R5,TX_LOOP2
MOV R0,#30H
TX_1: MOV A,@R0
MOV SBUF,A
INC R0
POP PSW
RET
IE_SLECTION: JB TI,TX_CLR
LCALL RX_DATA
CLR RI
AJMP IE_END
TX_CLR: PUSH PSW
PUSH ACC
PUSH DPH
PUSH DPL
ANL PSW,#0E7H
SETB RS1
SETB FLAG12
DJNZ R7,TX_END
MOV R7,#12H
CLR FLAG1
TX_END: POP DPL
POP DPH
POP ACC
POP PSW
CLR TI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -