📄 lcdm.asm
字号:
COM EQU 21H
DAT EQU 20H
TABLE EQU 22H
CS1 EQU P2.3 ;片选左
CS2 EQU P2.4 ;片选右
RS EQU P2.0;寄存器选择信号
RW EQU P2.1 ;读/写选择信号
E EQU P2.2 ;使能信号
COUNT EQU 24H
LL EQU 25H
ORG 0000H
LJMP INT
ORG 100H
INT:
MOV LL,#40H;列地址设置为“0”
CLEAR: MOV COM,#0C0H
LCALL PRL0
LCALL PRR0
MOV COM,#3FH ;开显示设置
LCALL PRL0
LCALL PRR0
MOV R4,#00H ;页面地址暂存器
MOV DPTR,#CCW0
MOV 23H,#01111110B ;duo pai zi
CLEAR12:MOV A,R4
ORL A,#0B8H ;“或”页面地址设置代码
MOV COM,A ;页面地址设置
LCALL PRL0
LCALL PRR0
;**********************************************************************左半屏
MOV R7,LL
MOV A,23H
JNB ACC.7,LOOPL1
JMP LOOPL11
LOOPL1: MOV R5,#06H
LOOPL11:JNB ACC.5,LOOPL2
JMP LOOPL22
LOOPL2: MOV R5,#06H
LOOPL22:JNB ACC.3,LOOPL3
JMP LOOPL33
LOOPL3: MOV R5,#06H
LOOPL33:JNB ACC.1,LOOPL4
JMP CONTINUEL
LOOPL4: MOV R5,#05H
CONTINUEL: MOV A,R5
JZ YBP ;跳转到右半屏
LOOP: MOV COM,R7
LCALL PRL0
MOV R3,#10H ;显示16行
MOV COUNT,R3
MOV A,#7FH
SUBB A,R7
CLR C
MOV B,#10H
SUBB A,B
JNC CLEAR22
MOV A,#81H
SUBB A,R7
MOV R3,A
MOV COUNT,R3
CLEAR22: MOV A,#00H
MOVC A,@A+DPTR
MOV DAT,A
LCALL PRL1
INC DPTR
INC DPTR
DJNZ R3,CLEAR22
MOV A,COUNT
CJNE A,#10H,YBP
SCD: MOV A,R7 ;R7=R7+16 向后移16列
ADD A,#10H
MOV R7,A
CJNE A,#80H,AAA
JMP YBP
AAA: DJNZ R5,LOOP
;**********************************************************************右半屏
YBP: MOV R7,#40H;列地址设置为“0”
MOV A,R5
MOV R6,A
MOV A,LL
MOV B,#10H
DIV AB
MOV A,B
CJNE A,#0,CONTINUER
DEC R6
CONTINUER: MOV A,R6
JZ NEXT11
LOOPR: MOV COM,R7
LCALL PRR0
MOV R3,#10H ;显示16行
MOV A,R6
CJNE A,#02H,NOSCD
MOV A,LL ;解决LL为4F时乱码的问题
INC A
MOV B,#10H
DIV AB
MOV A,B
JZ RER3
JMP NOSCD
RER3:
MOV R3,#0FH
JMP CLEAR222
NOSCD:
MOV A,R6
CJNE A,#01H,CLEAR222
MOV A,LL
MOV B,#10H
DIV AB
MOV A,B
JZ NOMAL
JMP UNNO
NOMAL:
JMP CLEAR222
UNNO:
MOV A,LL ;解决LL为4F时乱码的问题
INC A
MOV B,#10H
DIV AB
MOV A,B
JZ GO
JMP NOGO
GO:
JMP NEXT11
NOGO:
MOV A,#10H
SUBB A,COUNT
MOV R3,A
CLEAR222: MOV A,#00H ;显示“液”
MOVC A,@A+DPTR
MOV DAT,A
LCALL PRR1
INC DPTR
INC DPTR
DJNZ R3,CLEAR222
SCD2: MOV A,R7 ;R7=R7+16 向后移16列
ADD A,#10H
MOV R7,A
DJNZ R6,LOOPR
;**********************************************************************
NEXT11: MOV A,23H
RR A
MOV 23H,A
JNB ACC.5,DP1
JNB ACC.3,DP2
JNB ACC.1,DP3
MOV DPTR,#CCW0
JMP DP
DP1: MOV DPTR,#CCW1
CJNE R4,#02,FF
CJNE R4,#03,DP
DP2: MOV DPTR,#CCW2
CJNE R4,#04,FF
CJNE R4,#05,DP
DP3: MOV DPTR,#CCW3
CJNE R4,#06,FF
CJNE R4,#07,DP
DP: INC DPTR
FF: INC R4
CJNE R4,#08H,NEXTT
MOV A,#50
LCALL DELAY
INC LL
LJMP CLEAR
NEXTT:JMP CLEAR12
CCW0:
DB 010H,004H,060H,004H,001H,0FFH,0C6H,000H,030H,000H,002H,000H,0E2H,007H,022H,002H ;
DB 022H,002H,0E2H,007H,002H,040H,002H,080H,0FEH,07FH,002H,000H,002H,000H,000H,000H ; "河" 0
DB 004H,000H,004H,000H,0E4H,07FH,024H,004H,024H,005H,064H,005H,0B4H,005H,02FH,07FH ;
DB 024H,005H,0A4H,005H,064H,005H,024H,025H,024H,044H,0E6H,03FH,004H,000H,000H,000H ; "南" 1
DB 010H,004H,012H,002H,092H,001H,072H,000H,0FEH,0FFH,051H,000H,091H,004H,000H,004H ;
DB 022H,004H,0CCH,002H,000H,002H,000H,002H,0FFH,0FFH,000H,001H,000H,001H,000H,000H ; "科" 2
DB 008H,001H,008H,041H,088H,080H,0FFH,07FH,048H,000H,028H,040H,000H,040H,0C8H,020H ;
DB 048H,013H,048H,00CH,07FH,00CH,048H,012H,0C8H,021H,048H,060H,008H,020H,000H,000H ; "技" 3
DB 020H,000H,020H,080H,020H,040H,020H,020H,020H,010H,020H,00CH,0A0H,003H,07FH,000H ;
DB 0A0H,001H,020H,006H,020H,008H,020H,030H,020H,060H,020H,0C0H,020H,040H,000H,000H ; "大" 4
DB 040H,000H,030H,002H,010H,002H,012H,002H,05CH,002H,054H,002H,050H,042H,051H,082H ;
DB 05EH,07FH,0D4H,002H,050H,002H,018H,002H,057H,002H,032H,002H,010H,002H,000H,000H ; "学" 5
CCW1:
DB 000H,000H,000H,000H,0F8H,00FH,048H,004H,048H,004H,048H,004H,048H,004H,0FFH,03FH ;
DB 048H,044H,048H,044H,048H,044H,048H,044H,0F8H,04FH,000H,040H,000H,070H,000H,000H ; "电" 6
DB 000H,001H,000H,001H,002H,001H,002H,001H,002H,001H,002H,041H,002H,081H,0E2H,07FH ;
DB 012H,001H,00AH,001H,006H,001H,002H,001H,000H,001H,080H,001H,000H,001H,000H,000H ; "子" 7
DB 080H,000H,040H,000H,030H,000H,0FCH,07FH,007H,000H,00AH,000H,0A8H,07EH,0A8H,022H ;
DB 0A9H,022H,0AEH,022H,0AAH,022H,0A8H,022H,0A8H,07EH,008H,000H,008H,000H,000H,000H ; "信" 8
DB 000H,000H,000H,020H,000H,038H,0FCH,001H,054H,03DH,054H,041H,056H,041H,055H,045H ;
DB 054H,059H,054H,041H,054H,041H,0FCH,071H,000H,000H,000H,008H,000H,030H,000H,000H ; "息" 9
DB 000H,020H,000H,020H,002H,020H,002H,020H,002H,020H,002H,020H,002H,020H,0FEH,03FH ;
DB 002H,020H,002H,020H,002H,020H,002H,020H,002H,020H,002H,020H,000H,020H,000H,000H ; "工" 10
DB 010H,004H,012H,003H,0D2H,000H,0FEH,0FFH,091H,000H,011H,041H,080H,044H,0BFH,044H ;
DB 0A1H,044H,0A1H,07FH,0A1H,044H,0A1H,044H,0BFH,044H,080H,044H,000H,040H,000H,000H ; "程" 17
CCW2:
DB 080H,000H,040H,000H,030H,000H,0FCH,07FH,007H,000H,00AH,000H,0A8H,07EH,0A8H,022H ;
DB 0A9H,022H,0AEH,022H,0AAH,022H,0A8H,022H,0A8H,07EH,008H,000H,008H,000H,000H,000H ; "信" 14
DB 000H,000H,000H,020H,000H,038H,0FCH,001H,054H,03DH,054H,041H,056H,041H,055H,045H ;
DB 054H,059H,054H,041H,054H,041H,0FCH,071H,000H,000H,000H,008H,000H,030H,000H,000H ; "息" 15
DB 000H,020H,000H,020H,002H,020H,002H,020H,002H,020H,002H,020H,002H,020H,0FEH,03FH ;
DB 002H,020H,002H,020H,002H,020H,002H,020H,002H,020H,002H,020H,000H,020H,000H,000H ; "工" 16
DB 010H,004H,012H,003H,0D2H,000H,0FEH,0FFH,091H,000H,011H,041H,080H,044H,0BFH,044H ;
DB 0A1H,044H,0A1H,07FH,0A1H,044H,0A1H,044H,0BFH,044H,080H,044H,000H,040H,000H,000H ; "程" 17
DB 020H,000H,020H,000H,024H,000H,024H,000H,0A4H,001H,064H,001H,03CH,009H,027H,011H ;
DB 024H,029H,024H,045H,0A4H,003H,024H,001H,024H,000H,020H,000H,020H,000H,000H,000H ; "专" 18
DB 000H,020H,010H,020H,060H,020H,080H,023H,000H,021H,0FFH,03FH,000H,020H,000H,020H ;
DB 000H,020H,0FFH,03FH,000H,022H,080H,021H,060H,020H,038H,030H,010H,020H,000H,000H ; "业" 19
CCW3:
DB 000H,008H,000H,008H,0F8H,00BH,028H,009H,029H,009H,02EH,009H,02AH,009H,0F8H,0FFH ;
DB 028H,009H,02CH,009H,02BH,009H,02AH,009H,0F8H,00BH,000H,008H,000H,008H,000H,000H ; "单" 20
DB 000H,080H,000H,040H,000H,030H,0FEH,00FH,010H,001H,010H,001H,010H,001H,010H,001H ;
DB 010H,001H,01FH,001H,010H,001H,010H,0FFH,010H,000H,018H,000H,010H,000H,000H,000H ; "片" 21
DB 008H,004H,008H,003H,0C8H,000H,0FFH,0FFH,048H,000H,088H,041H,008H,030H,000H,00CH ;
DB 0FEH,003H,002H,000H,002H,000H,002H,000H,0FEH,03FH,000H,040H,000H,078H,000H,000H ; "机" 22
DB 020H,000H,021H,000H,0EEH,03FH,004H,010H,000H,008H,000H,021H,000H,011H,07EH,009H ;
DB 04AH,005H,04AH,003H,0FEH,0FFH,04AH,005H,04AH,009H,07EH,031H,000H,011H,000H,000H ; "课" 23
DB 010H,004H,012H,003H,0D2H,000H,0FEH,0FFH,091H,000H,011H,041H,080H,044H,0BFH,044H ;
DB 0A1H,044H,0A1H,07FH,0A1H,044H,0A1H,044H,0BFH,044H,080H,044H,000H,040H,000H,000H ; "程" 24
;1.左区驱动子程序
;1)写指令代码子程序(左)
PRL0: SETB CS1
CLR CS2
CLR RS; ;RS=0
SETB RW ;R/W=1
PRL01: MOV P0,#0FFH ;P0 口置“1”
SETB E ;E=1
MOV A,P0 ;读状态字
CLR E ;E=0
JB ACC.7,PRL01
;判″忙″标志为“0”否,否再读
CLR RW ;R/W=0
MOV P0,COM ;写指令代码
SETB E ;E=1
CLR E ;E=0
RET
;————————————————
;2)写显示数据子程序(左)
PRL1: SETB CS1
CLR CS2
CLR RS ;RS=0
SETB RW ;R/W=1
PRL11: MOV P0,#0FFH ;P0 口置“1”
SETB E ;E=1
MOV A,P0 ;读状态字
CLR E ;E=0
JB ACC.7,PRL11
;判″忙″标志为“0”否,否再读
SETB RS ;RS=1
CLR RW ;R/W=0
MOV P0,DAT ;写数据
SETB E ;E=1
CLR E ;E=0
RET
;————————————————
;3)读显示数据子程序(左)
PRL2: SETB CS1
CLR CS2
CLR RS ;RS=0
SETB RW ;R/W=1
PRL21: MOV P0,#0FFH ;P0 口置“1”
SETB E ;E=1
MOV A,P0 ;读状态字
CLR E ;E=0
JB ACC.7,PRL21
;判″忙″标志为“0”否,否再读
SETB RS ;RS=1
MOV P0,#0FFH ;P0 口置“1”
SETB E ;E=1
MOV DAT,P0 ;写数据
CLR E ;E=0
RET
;————————————————
;————————————————
;2.右区驱动子程序
;1)写指令代码子程序(右)
PRR0: CLR CS1
SETB CS2
CLR RS ;RS=0
SETB RW ;R/W=1
PRR01: MOV P0,#0FFH ;P0 口置“1”
SETB E ;E=1
MOV A,P0 ;读状态字
CLR E ;E=0
JB ACC.7,PRR01
;判″忙″标志为“0”否,否再读
CLR RW ;R/W=0
MOV P0,COM ;写指令代码
SETB E ;E=1
CLR E ;E=0
RET
;————————————————
;2)写显示数据子程序(右)
PRR1: CLR CS1
SETB CS2
CLR RS ;RS=0
SETB RW ;R/W=1
PRR11: MOV P0,#0FFH ;P0 口置“1”
SETB E ;E=1
MOV A,P0 ;读状态字
CLR E ;E=0
JB ACC.7,PRR11
;判″忙″标志为“0”否,否再读
SETB RS ;RS=1
CLR RW ;R/W=0
MOV P0,DAT ;写数据
SETB E ;E=1
CLR E ;E=0
RET
;————————————————
;3)读显示数据子程序(右)
PRR2: CLR CS1
SETB CS2
CLR RS ;RS=0
SETB RW ;R/W=1
PRR21: MOV P0,#0FFH ;P0 口置“1”
SETB E ;E=1
MOV A,P0 ;读状态字
CLR E ;E=0
JB ACC.7,PRR21
;判″忙″标志为“0”否,否再读
SETB RS ;RS=1
MOV P0,#0FFH ;P0 口置“1”
SETB E ;E=1
MOV DAT,P0 ;写数据
CLR E ;E=0
RET
;————————————————
;————————————————
DELAY: ;MOV A,#1 LCALL DELAY 即10ms
MOV R3,A
D1: MOV R4,#20
D2: MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -