📄 信利drv16032纵向.asm
字号:
;LCD_A0 bit p1.0
;LCDC2PORT EQU 0BFffH ;CS1-->P2.5
;LCDC1PORT EQU 0DFffH ;CS2-->P2.6
;LCDD2PORT EQU 0BFFfH ;A0--->P1.0 C:0000H D:0200H
;LCDD1PORT EQU 0DFffH
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
PUTchar:
MOV R7,#8
mov variable,xpos
mov variable1,ypos
Pc_PA:
CLR A
MOVC A,@A+DPTR
CALL LCDWRITE
INC DPTR
;inc xpos
call cusornext
;mov a,xpos
;jnz pc_lax
;inc ypos
;inc ypos
pc_lax:
djnz r7,pc_pa
mov r7,#8
mov Ypos,variable1
inc Ypos
mov xpos,variable
pc_pa1:
CLR A
MOVC A,@A+DPTR
CALL LCDWRITE
INC DPTR
CALL CUSORNEXT
;MOV A,XPOS
;JNZ Pc_LAX1
;INC YPOS
;inc ypos
Pc_LAX1:
DJNZ R7,Pc_PA1
MOV A,XPOS
CJNE A,#0,No_NextRow
INC Variable1
inc Variable1
ANL YPOS,#3H
No_NextRow:
mov ypos,variable1
RET
PUTWordDOT:
MOV R7,#16
mov variable,xpos
mov variable1,ypos
PWD_PA:
CLR A
MOVC A,@A+DPTR
CALL LCDWRITE
INC DPTR
call cusornext
;mov a,xpos
;jnz pwd_lax
;inc ypos
;inc ypos
pwd_lax:
djnz r7,pwd_pa
mov r7,#16
mov Ypos,variable1
inc Ypos
mov xpos,variable
pwd_pa1:
CLR A
MOVC A,@A+DPTR
CALL LCDWRITE
INC DPTR
CALL CUSORNEXT
;MOV A,XPOS
;JNZ PWD_LAX1
;INC YPOS
;inc ypos
PWD_LAX1:
DJNZ R7,PWD_PA1
MOV A,XPOS
CJNE A,#0,WD_NextRow
INC Variable1
inc Variable1
ANL YPOS,#3H
WD_NextRow:
mov ypos,variable1
RET
LCDWRITE: ;送数据子程序
CALL LCDPOS
CALL LCDWD
RET
LCDWD:
MOV B,A
MOV A,XPOS
CJNE A,#80,$+3
JNC LWD_LA1 ;A>=80,jump to LWD_LA1
MOV A,B
CALL LCDWD1
JMP LWD_LAX
LWD_LA1:CJNE A,#160,$+3
JNC LWD_LA2 ;A>=160,ret
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
mov a,#LCDHIDEDATA+1
CALL LCDWC2
RET
LCDHIDE:
MOV A,#LCDHIDEDATA
LCALL LCDWC1
CALL LCDWC2
RET
LCDRESET:
MOV A,#LCDRESETDATA
LCALL LCDWC1
mov a,#LCDRESETDatA
CALL LCDWC2
CALL LCDSHOW
RET
LCDWC1:
PUSH DPH
PUSH DPL
clr Lcd_A0
MOV DPTR,#LCDC1PORT
MOVX @DPTR,A
MOVX @DPTR,A
POP DPL
POP DPH
RET
LCDWC2:
PUSH DPH
PUSH DPL
clr Lcd_A0
MOV DPTR,#LCDC2PORT
MOVX @DPTR,A
MOVX @DPTR,A
POP DPL
POP DPH
RET
LCDWD1:
PUSH DPH
PUSH DPL
setb Lcd_A0
MOV DPTR,#LCDD1PORT
MOVX @DPTR,A
POP DPL
POP DPH
RET
LCDWD2:
PUSH DPH
PUSH DPL
setb Lcd_A0
MOV DPTR,#LCDD2PORT
MOVX @DPTR,A
POP DPL
POP DPH
RET
LCDRD1:
PUSH DPH
PUSH DPL
setb lcd_A0
MOV DPTR,#LCDD1PORT
MOVX A,@DPTR
MOVX A,@DPTR
POP DPL
POP DPH
RET
LCDRD2:
PUSH DPH
PUSH DPL
setb LCD_A0
MOV DPTR,#LCDD2PORT
MOVX A,@DPTR
MOVX A,@DPTR
POP DPL
POP DPH
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -