📄 128641.asm
字号:
;
;128*64-1 LCD演示程序
;61202 LCD控制器
;标题:测试板
;时间:2004。05。08
;----------------------------------------------------
CUL EQU 30H ;列变量
ROW EQU 31H ;页变量
CODEE EQU 2FH
TEMP1 EQU 32H
COM EQU 36H ;指令寄存器
DAT EQU 37H ;数据寄存器
;定议LCD控制脚
;P3 为控制线,P1 为数据线
PREST EQU P3.6
CS2 EQU P3.5 ;高有效
CS1 EQU P3.4
PDI EQU P3.2 ;高为数据,低为指令
PWR EQU P3.1 ;高为读 ,H->L为写
PEE EQU P3.0
;-----------------------------------------------
cseg at 0
JMP START
NOP
ORG 20H
START:
CLR PREST
LCALL DELAY2 ;LCD 复位
SETB PREST
NOP
LCALL INT ;LCD 初始化
LCALL CLEAR ;清屏
LCALL CLEARA
LCALL DELAY1
LCALL CLEARB
LCALL DELAY1
LCALL CLEAR
NOP
MOV CODEE,#01
MOV CUL,#08
MOV ROW,#00
LCALL WRNUN
LCALL WRNUN
MOV CODEE,#8
LCALL WRNUN
MOV CODEE,#6
LCALL WRNUN
MOV CODEE,#4
LCALL WRNUN
MOV CODEE,#00
LCALL WRCHIN
LCALL WRCHIN
LCALL WRCHIN
LCALL WRCHIN
LCALL WRCHIN
MOV CUL,#00
MOV ROW,#2
LCALL WRCHIN
LCALL WRCHIN
LCALL WRCHIN
LCALL WRCHIN
LCALL WRCHIN
LCALL WRCHIN
LCALL WRCHIN
MOV CUL,#08
MOV ROW,#6
LCALL WRCHIN
LCALL WRCHIN
MOV CODEE,#10
LCALL WRNUN
MOV CODEE,#0
LCALL WRNUN
LCALL WRNUN
LCALL WRNUN
LCALL WRNUN
LCALL WRNUN
LCALL WRNUN
LCALL WRNUN
LCALL WRNUN
NOP
LCALL DELAY3
LJMP START
;延时子程序
DELAY1:
MOV R6,#0
MOV R7,#0
MOV R5,#10
DELA11:
DJNZ R6,DELA11
DJNZ R7,DELA11
DJNZ R5,DELA11
RET
DELAY2:
MOV R5,#0
MOV R6,#0
MOV R7,#1
DELA21:
DJNZ R5,DELA21
DJNZ R6,DELA21
DJNZ R7,DELA21
RET
DELAY3:
MOV R6,#0
MOV R7,#0
MOV R5,#80
DELA31:
DJNZ R6,DELA31
DJNZ R7,DELA31
DJNZ R5,DELA31
RET
; 写一个8*16的数字子程序
WRNUN:
ANL CUL,#07FH
MOV DPTR,#NUNTAB
MOV A,CODEE
MOV B,#16
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
MOV A,CUL
JB ACC.6,WRNUN20
ORL A,#40H
MOV COM,A
LCALL PRL0
MOV A,ROW
ORL A,#0B8H
MOV COM,A
LCALL PRL0
MOV R7,#08
WRNUN11:
CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL PRL1
INC DPTR
DJNZ R7,WRNUN11
INC ROW
MOV A,CUL
ORL A,#40H
MOV COM,A
LCALL PRL0
MOV A,ROW
ORL A,#0B8H
MOV COM,A
LCALL PRL0
MOV R7,#08
WRNUN12:
CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL PRL1
INC DPTR
DJNZ R7,WRNUN12
DEC ROW
MOV A,#08
ADD A,CUL
MOV CUL,A
INC CODEE
RET
WRNUN20:
ORL A,#40H
MOV COM,A
LCALL PRR0
MOV A,ROW
ORL A,#0B8H
MOV COM,A
LCALL PRR0
MOV R7,#08
WRNUN21:
CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL PRR1
INC DPTR
DJNZ R7,WRNUN21
INC ROW
MOV A,CUL
ORL A,#40H
MOV COM,A
LCALL PRR0
MOV A,ROW
ORL A,#0B8H
MOV COM,A
LCALL PRR0
MOV R7,#08
WRNUN22:
CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL PRR1
INC DPTR
DJNZ R7,WRNUN22
DEC ROW
MOV A,#08
ADD A,CUL
MOV CUL,A
INC CODEE
RET
; 写一个16*16的中文子程序
WRCHIN:
ANL CUL,#07FH
MOV DPTR,#CHINTAB
MOV A,CODEE
MOV B,#32
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
MOV A,CUL
JB ACC.6,WRCHIN20
ORL A,#40H
MOV COM,A
LCALL PRL0
MOV A,ROW
ORL A,#0B8H
MOV COM,A
LCALL PRL0
MOV R7,#16
WRCHIN11:
CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL PRL1
INC DPTR
DJNZ R7,WRCHIN11
INC ROW
MOV A,CUL
ORL A,#40H
MOV COM,A
LCALL PRL0
MOV A,ROW
ORL A,#0B8H
MOV COM,A
LCALL PRL0
MOV R7,#16
WRCHIN12:
CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL PRL1
INC DPTR
DJNZ R7,WRCHIN12
DEC ROW
MOV A,#16
ADD A,CUL
MOV CUL,A
INC CODEE
RET
WRCHIN20:
ORL A,#40H
MOV COM,A
LCALL PRR0
MOV A,ROW
ORL A,#0B8H
MOV COM,A
LCALL PRR0
MOV R7,#16
WRCHIN21:
CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL PRR1
INC DPTR
DJNZ R7,WRCHIN21
INC ROW
MOV A,CUL
ORL A,#40H
MOV COM,A
LCALL PRR0
MOV A,ROW
ORL A,#0B8H
MOV COM,A
LCALL PRR0
MOV R7,#16
WRCHIN22:
CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL PRR1
INC DPTR
DJNZ R7,WRCHIN22
DEC ROW
MOV A,#16
ADD A,CUL
MOV CUL,A
INC CODEE
RET
INT:
MOV COM,#0C0H ;设置显示起始行为第一行
LCALL PRL0
LCALL PRR0
MOV COM,#03FH ;开显示设置
LCALL PRL0
LCALL PRR0
RET
CLEAR:
MOV R4,#00H
CLEAR1:
MOV A,R4
ORL A,#0B8H
MOV COM,A
LCALL PRL0
LCALL PRR0
MOV COM,#40H
LCALL PRL0
LCALL PRR0
MOV R3,#40H
CLEAR2:
MOV DAT,#00H
LCALL PRL1
LCALL PRR1
DJNZ R3,CLEAR2
INC R4
CJNE R4,#08H,CLEAR1
RET
CLEARA:
MOV R4,#00H
CLEARA1:
MOV A,R4
ORL A,#0B8H
MOV COM,A
LCALL PRL0
LCALL PRR0
MOV COM,#40H
LCALL PRL0
LCALL PRR0
MOV R3,#40H
CLEARA2:
MOV DAT,#0FH
LCALL PRL1
LCALL PRR1
DJNZ R3,CLEARA2
INC R4
CJNE R4,#08H,CLEARA1
RET
CLEARB:
MOV R4,#00H
CLEARB1:
MOV A,R4
ORL A,#0B8H
MOV COM,A
LCALL PRL0
LCALL PRR0
MOV COM,#40H
LCALL PRL0
LCALL PRR0
MOV R3,#16
MOV DAT,#00H
CLEARB2:
MOV A,DAT
CPL A
MOV DAT,A
LCALL PRL1
LCALL PRR1
LCALL PRL1
LCALL PRR1
LCALL PRL1
LCALL PRR1
LCALL PRL1
LCALL PRR1
DJNZ R3,CLEARB2
INC R4
CJNE R4,#08H,CLEARB1
RET
PRL0: ;左区写指令
CLR CS2
SETB CS1
CLR PDI
SETB PWR
PRL01:
MOV P1,#0FFH
SETB PEE
MOV A,P1
CLR PEE
JB ACC.7,PRL01
CLR PWR
MOV P1,COM
SETB PEE
CLR PEE
RET
PRL1: ;左区写数据
CLR CS2
SETB CS1
CLR PDI
SETB PWR
PRL11:
MOV P1,#0FFH
SETB PEE
MOV A,P1
CLR PEE
JB ACC.7,PRL11
SETB PDI
CLR PWR
MOV P1,DAT
SETB PEE
CLR PEE
RET
PRR0: ;右区写指令
SETB CS2
CLR CS1
CLR PDI
SETB PWR
PRR01:
MOV P1,#0FFH
SETB PEE
MOV A,P1
CLR PEE
JB ACC.7,PRR01
CLR PWR
MOV P1,COM
SETB PEE
CLR PEE
RET
PRR1: ;右区写数据
SETB CS2
CLR CS1
CLR PDI
SETB PWR
PRR11:
MOV P1,#0FFH
SETB PEE
MOV A,P1
CLR PEE
JB ACC.7,PRR11
SETB PDI
CLR PWR
MOV P1,DAT
SETB PEE
CLR PEE
RET
NOP
CHINTAB:
;-- 文字: 是 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 080H,080H,080H,080H,0BEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0BEH,080H,080H,080H,000H
DB 000H,040H,020H,010H,00EH,010H,020H,03FH,044H,044H,044H,044H,044H,040H,040H,000H
;-- 文字: 一 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,0C0H,080H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 种 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,012H,012H,0D2H,0FEH,051H,081H,0F0H,010H,010H,0FFH,010H,010H,0F0H,000H,000H
DB 008H,004H,003H,000H,0FFH,000H,000H,003H,001H,001H,0FFH,001H,001H,003H,000H,000H
;-- 文字: 图 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,0FEH,042H,042H,022H,01EH,0AAH,04AH,0AAH,09AH,00AH,002H,002H,0FEH,000H,000H
DB 000H,0FFH,042H,042H,041H,041H,048H,072H,054H,040H,041H,043H,041H,0FFH,000H,000H
;-- 文字: 形 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 040H,042H,042H,0FEH,042H,042H,0FEH,042H,042H,040H,010H,088H,0E4H,047H,002H,000H
DB 080H,040H,030H,00FH,000H,000H,07FH,000H,084H,042H,021H,010H,008H,00EH,004H,000H
;-- 文字: 点 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,000H,0E0H,020H,020H,020H,03FH,024H,024H,024H,0F4H,024H,000H,000H,000H
DB 000H,040H,030H,007H,012H,062H,002H,00AH,012H,062H,002H,00FH,010H,060H,000H,000H
;-- 文字: 阵 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 0FEH,002H,012H,02AH,0C6H,088H,0C8H,0B8H,08FH,0E8H,088H,088H,088H,088H,000H,000H
DB 0FFH,000H,002H,004H,003H,004H,004H,004H,004H,0FFH,004H,004H,004H,004H,004H,000H
;-- 文字: 液 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 010H,061H,006H,0E0H,018H,084H,0E4H,01CH,084H,065H,0BEH,024H,0A4H,064H,004H,000H
DB 004H,004H,0FFH,000H,001H,000H,0FFH,041H,021H,012H,00CH,01BH,061H,0C0H,040H,000H
;-- 文字: 晶 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,000H,000H,07EH,02AH,02AH,02AH,02AH,02AH,02AH,07EH,000H,000H,000H,000H
DB 000H,07FH,025H,025H,025H,025H,07FH,000H,000H,07FH,025H,025H,025H,025H,07FH,000H
;-- 文字: 显 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,000H,03EH,02AH,0EAH,02AH,02AH,02AH,0EAH,02AH,03EH,000H,000H,000H,000H
DB 020H,021H,022H,02CH,020H,03FH,020H,020H,020H,03FH,028H,024H,023H,020H,020H,000H
;-- 文字: 示 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,020H,020H,022H,022H,022H,022H,0E2H,022H,022H,022H,022H,022H,020H,020H,000H
DB 010H,008H,004H,003H,000H,040H,080H,07FH,000H,000H,001H,002H,00CH,018H,000H,000H
;-- 文字: 器 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 040H,040H,04FH,049H,049H,0C9H,0CFH,070H,0C0H,0CFH,049H,059H,069H,04FH,000H,000H
DB 002H,002H,07EH,045H,045H,044H,07CH,000H,07CH,044H,045H,045H,07EH,006H,002H,000H
;-- 文字: 电 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,0F8H,048H,048H,048H,048H,0FFH,048H,048H,048H,048H,0F8H,000H,000H,000H
DB 000H,000H,00FH,004H,004H,004H,004H,03FH,044H,044H,044H,044H,04FH,040H,070H,000H
;-- 文字: 话 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 040H,041H,04EH,0C4H,000H,020H,024H,024H,024H,024H,0FCH,022H,022H,022H,020H,000H
DB 000H,000H,000H,07FH,020H,010H,000H,07EH,022H,022H,023H,022H,022H,07EH,000H,000H
NUNTAB:
;-- 文字: 0 --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,00FH,010H,020H,020H,010H,00FH,000H
;-- 文字: 1 --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 000H,010H,010H,0F8H,000H,000H,000H,000H,000H,020H,020H,03FH,020H,020H,000H,000H
;-- 文字: 2 --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 000H,070H,008H,008H,008H,088H,070H,000H,000H,030H,028H,024H,022H,021H,030H,000H
;-- 文字: 3 --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 000H,030H,008H,088H,088H,048H,030H,000H,000H,018H,020H,020H,020H,011H,00EH,000H
;-- 文字: 4 --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 000H,000H,0C0H,020H,010H,0F8H,000H,000H,000H,007H,004H,024H,024H,03FH,024H,000H
;-- 文字: 5 --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 000H,0F8H,008H,088H,088H,008H,008H,000H,000H,019H,021H,020H,020H,011H,00EH,000H
;-- 文字: 6 --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 000H,0E0H,010H,088H,088H,018H,000H,000H,000H,00FH,011H,020H,020H,011H,00EH,000H
;-- 文字: 7 --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 000H,038H,008H,008H,0C8H,038H,008H,000H,000H,000H,000H,03FH,000H,000H,000H,000H
;-- 文字: 8 --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 000H,070H,088H,008H,008H,088H,070H,000H,000H,01CH,022H,021H,021H,022H,01CH,000H
;-- 文字: 9 --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,000H,031H,022H,022H,011H,00FH,000H
;-- 文字: : --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 --
DB 000H,000H,000H,0C0H,0C0H,000H,000H,000H,000H,000H,000H,030H,030H,000H,000H,000H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -