📄 sb16032.asm
字号:
LCDC2PORT EQU 04feH ;CS1-->P2.0
LCDC1PORT EQU 01feH ;CS2-->P2.2
LCDD2PORT EQU 06ffH ;A0--->P2.1 C:0000H D:0200H
LCDD1PORT EQU 03ffH
PUTCHARDOT:
MOV R7,#8
PAC_PA:
CLR A
MOVC A,@A+DPTR
CALL LCDWRITE
INC YPOS
INC DPTR
CLR A
MOVC A,@A+DPTR
CALL LCDWRITE
DEC YPOS
INC DPTR
CALL CUSORNEXT
MOV A,XPOS
JNZ PAC_LAX
INC YPOS
PAC_LAX:
DJNZ R7,PAC_PA
RET
CUSORNEXT:
INC XPOS
MOV A,XPOS
CJNE A,#160,CNT_LAX
MOV XPOS,#0
INC YPOS
ANL YPOS,#3H
CNT_LAX:
RET
LCDWRITE: ;送数据子程序
CALL LCDPOS
CALL LCDWD
RET
LCDWD:
MOV B,A
MOV A,XPOS
CJNE A,#80,$+3
JNC LWD_LA1
MOV A,B
CALL LCDWD1
JMP LWD_LAX
LWD_LA1:CJNE A,#160,$+3
JNC LWD_LA2
MOV A,B
CALL LCDWD2
JMP LWD_LAX
LWD_LA2:
LWD_LAX:
RET
LCDPOS:
PUSH ACC
MOV A,YPOS
ANL A,#3
ADD A,#0B8H
MOV B,A
MOV A,XPOS
CJNE A,#80,$+3
JNC LPS_LA1
CALL LCDWC1
MOV A,B
CALL LCDWC1
JMP LPS_LAX
LPS_LA1:CJNE A,#160,$+3
JNC LPS_LA2
CLR C
SUBB A,#80
CALL LCDWC2
MOV A,B
CALL LCDWC2
JMP LPS_LAX
LPS_LA2:
LPS_LAX:
POP ACC
RET
;LCD CONTROL
;lcd internal use
LCDHIDEDATA EQU 0AEH
LCDRESETDATA EQU 0E2H
LCDPAGEDATA EQU 0B8H
LCDCOLUMNDATA EQU 00H
LCDFIRSTCOLUMN EQU 19
LCDDIRECTDATA EQU 0A0H
LCDSHOW:
MOV A,#LCDHIDEDATA+1
LCALL LCDWC1
CALL LCDWC2
RET
LCDHIDE:
MOV A,#LCDHIDEDATA
LCALL LCDWC1
CALL LCDWC2
RET
LCDRESET:
MOV A,#LCDRESETDATA
LCALL LCDWC1
CALL LCDWC2
CALL LCDSHOW
RET
LCDWC1:
PUSH DPH
PUSH DPL
MOV DPTR,#LCDC1PORT
MOVX @DPTR,A
MOVX @DPTR,A
POP DPL
POP DPH
RET
LCDWC2:
PUSH DPH
PUSH DPL
MOV DPTR,#LCDC2PORT
MOVX @DPTR,A
MOVX @DPTR,A
POP DPL
POP DPH
RET
LCDWD1:
PUSH DPH
PUSH DPL
MOV DPTR,#LCDD1PORT
MOVX @DPTR,A
POP DPL
POP DPH
RET
LCDWD2:
PUSH DPH
PUSH DPL
MOV DPTR,#LCDD2PORT
MOVX @DPTR,A
POP DPL
POP DPH
RET
LCDRD1:
PUSH DPH
PUSH DPL
MOV DPTR,#LCDD1PORT
MOVX A,@DPTR
MOVX A,@DPTR
POP DPL
POP DPH
RET
LCDRD2:
PUSH DPH
PUSH DPL
MOV DPTR,#LCDD2PORT
MOVX A,@DPTR
MOVX A,@DPTR
POP DPL
POP DPH
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -