📄 lcd_g7.asm
字号:
IE_END: RETI
HD: JNB FLAG46,HD_START
LCALL TEST_HD
LJMP HD_END
HD_START: MOV R0,#37H
MOV R1,#48H
MOV R3,#02H
HD_LOOP4: MOV A,@R0
CLR C
SUBB A,#30H
; JC HD_END
JNB ACC.4,HD_NEXT3
SUBB A,#07H
HD_NEXT3: MOV @R1,A
INC R0
DEC R1
DJNZ R3,HD_LOOP4
SWAP A
INC R1
INC R1
XCHD A,@R1
SWAP A
MOV 50H,A
MOV R0,#00H
MOV R3,#00H
CLR C
HD_LOOP1: SUBB A,#64H
JC HD_NEXT1
INC R0
AJMP HD_LOOP1
HD_NEXT1: ADD A,#64H
CLR C
HD_LOOP2: SUBB A,#0AH
JC HD_NEXT2
INC R3
AJMP HD_LOOP2
HD_NEXT2: ADD A,#0AH
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV 47H,A
MOV A,R3
MOVC A,@A+DPTR
MOV 48H,A
MOV A,R0
CJNE R0,#00H,HD_NEXT6
MOV 49H,#0FFH
AJMP HD_NEXT9
HD_NEXT6: MOVC A,@A+DPTR
MOV 49H,A
HD_NEXT9: MOV 4AH,#8EH
MOV A,50H
CJNE A,#61H,HD_NEXT10
MOV A,BUFF13
CJNE A,#30H,HD_NEXT8
CLR FLAG33
AJMP HD_END
HD_NEXT8: SETB FLAG33
HD_NEXT10: CJNE A,#50H,HD_NEXT12
MOV A,BUFF13
CJNE A,#30H,HD_NEXT11
CLR FLAG47
AJMP HD_END
HD_NEXT11: SETB FLAG47
AJMP HD_END
HD_NEXT12: CJNE A,#01H,HD_NEXT14
HD_LOOP5: MOV R1,#9CH
MOV A,@R1
JB ACC.7,HD_NEXT13
CLR FLAG47
AJMP HD_END
HD_NEXT13: SETB FLAG47
AJMP HD_END
HD_NEXT14: CJNE A,#00H,HD_NEXT15
AJMP HD_LOOP5
HD_NEXT15: CJNE A,#14H,HD_NEXT17
MOV A,BUFF13
CJNE A,#35H,HD_NEXT16
MOV A,BUFF12
CJNE A,#36H,HD_NEXT16
SETB FLAG56
AJMP HD_END
HD_NEXT16: CLR FLAG56
AJMP HD_END
HD_NEXT17: JB FLAG56,HD_END
CLR C
SUBB A,#62H
JC HD_END
SETB FLAG56
HD_END: RET
;====================================================================================
LCD_BRUSH : PUSH PSW
MOV PSW,#00H ; BLOCK1 LCMDISPLAY
SETB RS0
JNB FLAG28,LCM_NEXT3
MOV A,5AH
CJNE A,#01H,LCM_NEXT3
LCALL ERROR
INC 5AH
AJMP LCM_NEXT5
LCM_NEXT3: JNB FLAG27,LCM_NEXT0
MOV A,5AH
CJNE A,#00H,LCM_END
INC 5AH
JB FLAG2,LCM_NEXT1
LCALL LCM_FUNC_CODE
AJMP LCM_NEXT5
LCM_NEXT1: LCALL LCM_FUNC_CONT
AJMP LCM_NEXT5
LCM_NEXT0: JNB FLAG17,LCM_NEXT2 ;"RUN"
JNB FLAG24,LCM_END
MOV A,5AH
CJNE A,#02H,LCM_END
INC 5AH
LCALL LCM_RUN
CLR FLAG24
AJMP LCM_NEXT5
LCM_NEXT2: JNB FLAG18,LCM_NEXT4 ;"STOP"
JNB FLAG26,LCM_END
MOV A,5AH
CJNE A,#03H,LCM_END
INC 5AH
LCALL LCM_STOP
CLR FLAG26
AJMP LCM_NEXT5
LCM_NEXT4: JNB FLAG46,LCM_END
LCALL TEST_LCD
LCM_NEXT5: SETB FLAG31
LCM_END: POP PSW
RET
LCD_DISPLAY: PUSH PSW
MOV PSW,#00H ; BLOCK1 LCMDISPLAY
SETB RS0
MOV A,LCDPC
CJNE A,#00H,LCD_NEXT1
MOV R1,#0B0H
MOV PD1,#08H
MOV PAGE1,#0B8H
MOV COLUMN,#13H
LCD_LOOP0: MOV A,@R1
MOV CODE1,A
LCALL WRITE_E1
INC R1
INC LCDPC
AJMP LCD_END
LCD_NEXT1: CJNE A,#01H,LCD_NEXT2
AJMP LCD_LOOP0
LCD_NEXT2: CJNE A,#02H,LCD_NEXT3
AJMP LCD_LOOP0
LCD_NEXT3: CJNE A,#03H,LCD_NEXT4
JNB FLAG33,ADD_NEXT0
JNB FLAG27,ADD_NEXT0
SETB FLAG49 ;ADD
MOV R0,#0ECH
MOV R7,#01H
ADD_NEXT0: AJMP LCD_LOOP0
LCD_NEXT4: CJNE A,#04H,LCD_NEXT5
AJMP LCD_LOOP0
LCD_NEXT5: CJNE A,#05H,LCD_NEXT6
AJMP LCD_LOOP0
LCD_NEXT6: CJNE A,#06H,LCD_NEXT7
AJMP LCD_LOOP0
LCD_NEXT7: CJNE A,#07H,LCD_NEXT8
AJMP LCD_LOOP0
LCD_NEXT8: CJNE A,#08H,LCD_NEXT9
MOV COLUMN,#16H
LCD_LOOP1: MOV A,@R1
MOV CODE1,A
LCALL WRITE_E2
INC R1
INC LCDPC
AJMP LCD_END
LCD_NEXT9: CJNE A,#09H,LCD_NEXT10
AJMP LCD_LOOP1
LCD_NEXT10: CJNE A,#0AH,LCD_NEXT11
AJMP LCD_LOOP1
LCD_NEXT11: CJNE A,#0BH,LCD_NEXT12
AJMP LCD_LOOP1
LCD_NEXT12: CJNE A,#0CH,LCD_NEXT13
AJMP LCD_LOOP1
LCD_NEXT13: CJNE A,#0DH,LCD_NEXT14
AJMP LCD_LOOP1
LCD_NEXT14: CJNE A,#0EH,LCD_NEXT15
AJMP LCD_LOOP1
LCD_NEXT15: CJNE A,#0FH,LCD_NEXT16
MOV PAGE1,#0B9H
MOV COLUMN,#13H
JNB FLAG33,ADD_NEXT12
CLR FLAG49
ADD_NEXT12: AJMP LCD_LOOP0
LCD_NEXT16: CJNE A,#10H,LCD_NEXT17
AJMP LCD_LOOP0
LCD_NEXT17: CJNE A,#11H,LCD_NEXT18
AJMP LCD_LOOP0
LCD_NEXT18: CJNE A,#12H,LCD_NEXT19
JNB FLAG33,ADD_NEXT13
JNB FLAG27,ADD_NEXT13
SETB FLAG49
MOV R0,#0ECH
ADD_NEXT13: AJMP LCD_LOOP0
LCD_NEXT19: CJNE A,#13H,LCD_NEXT20
AJMP LCD_LOOP0
LCD_NEXT20: CJNE A,#14H,LCD_NEXT21
AJMP LCD_LOOP0
LCD_NEXT21: CJNE A,#15H,LCD_NEXT22
AJMP LCD_LOOP0
LCD_NEXT22: CJNE A,#16H,LCD_NEXT23
AJMP LCD_LOOP0
LCD_NEXT23: CJNE A,#17H,LCD_NEXT24
MOV COLUMN,#16H
AJMP LCD_LOOP1
LCD_NEXT24: CJNE A,#18H,LCD_NEXT25
AJMP LCD_LOOP1
LCD_NEXT25: CJNE A,#19H,LCD_NEXT26
AJMP LCD_LOOP1
LCD_NEXT26: CJNE A,#1AH,LCD_NEXT27
AJMP LCD_LOOP1
LCD_NEXT27: CJNE A,#1BH,LCD_NEXT28
AJMP LCD_LOOP1
LCD_NEXT28: CJNE A,#1CH,LCD_NEXT29
AJMP LCD_LOOP1
LCD_NEXT29: CJNE A,#1DH,LCD_NEXT30
AJMP LCD_LOOP1
LCD_NEXT30: CJNE A,#1EH,LCD_NEXT31
MOV PAGE1,#0BAH
MOV COLUMN,#13H
JNB FLAG33,ADD_NEXT26
CLR FLAG49
SETB FLAG51
ADD_NEXT26: AJMP LCD_LOOP0
LCD_NEXT31: CJNE A,#1FH,LCD_NEXT32
AJMP LCD_LOOP0
LCD_NEXT32: CJNE A,#20H,LCD_NEXT33
AJMP LCD_LOOP0
LCD_NEXT33: CJNE A,#21H,LCD_NEXT34
JNB FLAG33,ADD_NEXT27
JB FLAG2,ADD_NEXT27
SETB FLAG49
MOV R0,#0F2H
MOV R7,#01H
ADD_NEXT27: AJMP LCD_LOOP0
LCD_NEXT34: CJNE A,#22H,LCD_NEXT35
AJMP LCD_LOOP0
LCD_NEXT35: CJNE A,#23H,LCD_NEXT36
JNB FLAG33,ADD_NEXT30
JNB FLAG2,ADD_NEXT30
MOV R0,#0F8H
MOV R6,#01H
SETB FLAG50
ADD_NEXT30: AJMP LCD_LOOP0
LCD_NEXT36: CJNE A,#24H,LCD_NEXT37
AJMP LCD_LOOP0
LCD_NEXT37: CJNE A,#25H,LCD_NEXT38
AJMP LCD_LOOP0
LCD_NEXT38: CJNE A,#26H,LCD_NEXT39
MOV COLUMN,#16H
AJMP LCD_LOOP1
LCD_NEXT39: CJNE A,#27H,LCD_NEXT40
AJMP LCD_LOOP1
LCD_NEXT40: CJNE A,#28H,LCD_NEXT41
AJMP LCD_LOOP1
LCD_NEXT41: CJNE A,#29H,LCD_NEXT42
AJMP LCD_LOOP1
LCD_NEXT42: CJNE A,#2AH,LCD_NEXT43
AJMP LCD_LOOP1
LCD_NEXT43: CJNE A,#2BH,LCD_NEXT44
AJMP LCD_LOOP1
LCD_NEXT44: CJNE A,#2CH,LCD_NEXT45
MOV A,@R1
MOV CODE1,A
LCALL WRITE_E2
MOV DAT,#00H
LCALL PRG1
LCALL PRG1
INC R1
INC LCDPC
AJMP LCD_END
LCD_NEXT45: CJNE A,#2DH,LCD_NEXT46
MOV PAGE1,#0BBH
MOV COLUMN,#13H
JNB FLAG2,LCD_NEXT61
JNB FLAG17,LCD_NEXT60
LCD_RUN_LOOP2: MOV COM,PAGE1
LCALL PRG3
MOV COM,COLUMN
LCALL PRG3
LCD_LOOP2: LCALL DRAW1
INC LCDPC
AJMP LCD_END
LCD_NEXT60: JNB FLAG18,LCD_NEXT61
AJMP LCD_RUN_LOOP2
LCD_NEXT61: JNB FLAG33,ADD_NEXT40
CLR FLAG49
CLR FLAG50
ADD_NEXT40: AJMP LCD_LOOP0
LCD_NEXT46: CJNE A,#2EH,LCD_NEXT47
JNB FLAG2,LCD_NEXT63
JNB FLAG17,LCD_NEXT62
AJMP LCD_LOOP2
LCD_NEXT62: JNB FLAG18,LCD_NEXT63
AJMP LCD_LOOP2
LCD_NEXT63: AJMP LCD_LOOP0
LCD_NEXT47: CJNE A,#2FH,LCD_NEXT48
JNB FLAG2,LCD_NEXT65
JNB FLAG17,LCD_NEXT64
AJMP LCD_LOOP2
LCD_NEXT64: JNB FLAG18,LCD_NEXT65
AJMP LCD_LOOP2
LCD_NEXT65: AJMP LCD_LOOP0
LCD_NEXT48: CJNE A,#30H,LCD_NEXT49
JNB FLAG2,LCD_NEXT67
JNB FLAG17,LCD_NEXT66
AJMP LCD_LOOP2
LCD_NEXT66: JNB FLAG18,LCD_NEXT67
AJMP LCD_LOOP2
LCD_NEXT67: JNB FLAG33,ADD_NEXT41
JB FLAG2,ADD_NEXT41
SETB FLAG49
MOV R0,#0F2H
ADD_NEXT41: LJMP LCD_LOOP0
LCD_NEXT49: CJNE A,#31H,LCD_NEXT50
JNB FLAG2,ADD_NEXT42
JNB FLAG17,LCD_NEXT68
AJMP LCD_LOOP2
LCD_NEXT68: JNB FLAG18,ADD_NEXT42
AJMP LCD_LOOP2
ADD_NEXT42: AJMP LCD_LOOP0
LCD_NEXT50: CJNE A,#32H,LCD_NEXT51
JNB FLAG2,ADD_NEXT44
JNB FLAG17,LCD_NEXT70
AJMP LCD_LOOP2
LCD_NEXT70: JNB FLAG18,ADD_NEXT71
AJMP LCD_LOOP2
ADD_NEXT71: JNB FLAG27,ADD_NEXT44
MOV R0,#0F8H
SETB FLAG50
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -