MOV YADDR,#32
MOV XPAGE,#2
MOV DPTR,#TXT1
LCALL OUTWORD
MOV YADDR,#80
MOV XPAGE,#4
MOV DPTR,#TXT2
LCALL OUTWORD
CLRLCD:
PUSH PSW
PUSH ACC
SETB RS0
CLR RS1
SETB CS1
SETB CS2
MOV A,#00111111B
LCALL LCDA1
MOV A,#11000000B
LCALL LCDA1
MOV A,#10111000B
LCALL LCDA1
MOV A,#01000000B
LCALL LCDA1
MOV R0,#08H
MOV XPAGE,#10111000B
CLRPAGE:
MOV A,XPAGE
LCALL LCDA1
MOV R1,#64
MOV A,#00H
CLRADDR:
LCALL LCDAD
DJNZ R1,CLRADDR
INC XPAGE
DJNZ R0,CLRPAGE
POP ACC
POP PSW
RET
LCD1D:SETB DI
SETB CS1
NOP
NOP
CLR CS2
NOP
NOP
LJMP LCDW
LCD2D:SETB DI
CLR CS1
NOP
NOP
SETB CS2
NOP
NOP
LJMP LCDW
LCDAD:SETB DI
SETB CS1
SETB CS2
LJMP LCDW
LCD1: CLR DI
SETB CS1
NOP
NOP
CLR CS2
NOP
NOP
LJMP LCDW
LCD21:CLR DI
CLR CS1
NOP
NOP
SETB CS2
NOP
NOP
LJMP LCDW
LCDA1:CLR DI
SETB CS1
SETB CS2
LCDW: MOV P1,A
SETB E
NOP
CLR E
RET
OUTWORD:
MOV A,YADDR
ANL A,#01111111B
MOV YADDR,A
MOV R0,#2
OUTPAGE:
MOV A,XPAGE
ANL A,#00000111B
ORL A,#10111000B
LCALL LCDA1
MOV R1,#16
MOV A,YADDR
MOV TEMPY,A
OUTADDR:
CLR A
MOVC A,@A+DPTR
INC DPTR
MOV B,A
MOV A,TEMPY
CJNE A,#128,OUTCS2
MOV A,#01000000B
LCALL LCD1
MOV A,B
LCALL LCD1D
MOV TEMPY,#0H
LJMP NEXTBYTE
OUTCS2:
CJNE A,#64,CHKCS1CS2
MOV A,#01000000B
LCALL LCD21
MOV A,B
LCALL LCD2D
LJMP NEXTBYTE
CHKCS1CS2:
JC OUTCS1
MOV A,TEMPY
ANL A,#00111111B
ORL A,#01000000B
LCALL LCD21
MOV A,B
LCALL LCD2D
LJMP NEXTBYTE
OUTCS1:
MOV A,TEMPY
ANL A,#00111111B
ORL A,#01000000B
LCALL LCD1
MOV A,B
LCALL LCD1D
NEXTBYTE:
INC TEMPY
DJNZ R1,OUTADDR
INC XPAGE
DJNZ R0,OUTPAGE
RET
TXT1:DB 10H,10H,10H,90H,10H,90H,10H,90H
DB 0FDH,08H,11H,08H,39H,04H,36H,42H
DB 54H,40H,50H,40H,90H,80H,10H,88H
DB 11H,04H,13H,0FCH,10H,04H,10H,00H
TXT2:DB 01H,00H,01H,00H,01H,00H,01H,00H
DB 41H,04H,41H,04H,41H,04H,41H,04H
DB 41H,04H,41H,04H,41H,04H,41H,04H
DB 41H,04H,7FH,0FCH,40H,04H,00H,00H
TXT3:DB 00H,00H,00H,0FCH,0FEH,82H,41H,41H
DB 41H,41H,41H,0C7H,86H,00H,00H,00H
DB 00H,00H,00H,0FH,1FH,30H,20H,20H
DB 20H,20H,20H,10H,1FH,0FH,00H,00H