📄 ex36a_lcm.asm
字号:
;********************************Copyright (c)********************************
;** 广州周立功单片机发展有限公司
;** 研 究 所
;** http://www.zlgmcu.com
;*********************************文件信息************************************
;文件名:
; EX36A_LCD.asm
;目的 :
; 1.学习使用DP-51h实验的仿真调试程序的方法;
; 2.学习LCM图形液晶显示器的驱动方法和程序设计方法;
; 3.在DP-51h实验仪完成LCM点阵图形液晶显示,在液晶屏上显示"周立功单片机"。
;硬件设置:
; 左半屏的写命令操作地址为4004H,写数据操作地址为4005H,读状态字操作地址为4006H;
; 而右半屏的写命令操作地址为4000H,写数据操作地址为4001H,读状态字操作地址为4002H.
;最后修改时间:
; 2003年6月20
;******************************************************************************
LCMCS2_C0M EQU 4000H
LCMCS2_DAT EQU 4001H
LCMCS1_COM EQU 4004H
LCMCS1_DAT EQU 4005H
ORG 8000H
AJMP MAIN
ORG 8100H
MAIN:
MOV SP,#60H
MOV A,#3FH ;命令字送A,开显示.
ACALL WR_COM_CS1 ;写命令字
ACALL WR_COM_CS2
;以下程序实现在左半屏显示"周立功"
MOV A,#50H ;命令字送A,从10H列开始显示.
ACALL WR_COM_CS1 ;写命令字
MOV A,#0B8H ;命令字送A,从00页开始显示.
ACALL WR_COM_CS1
MOV R0,#00H ;开始取汉字"周立功"的字模
MOV DPTR,#ZLG ;字模首地址送数据指针寄存器
LOOP1: MOV A,R0
MOVC A,@A+DPTR ;从字模表中查取该段字模
ACALL WR_DAT_CS1 ;写数据到DDRAM
INC R0 ;指向下一位数据
CJNE R0,#30H,LOOP1 ;上半部分显示完了吗?
MOV A,#50H ;命令字送A,从10H列开始显示.
ACALL WR_COM_CS1 ;写命令字
MOV A,#0B9H ;命令字送A,从01页开始显示.
ACALL WR_COM_CS1 ;写命令字
LOOP2: MOV A,R0
MOVC A,@A+DPTR
ACALL WR_DAT_CS1 ;从字模表中查取该段字模
INC R0 ;指向下一位数据
CJNE R0,#60H,LOOP2 ;下半部分显示完了吗?
;以下程序实现在右半屏显示"单片机"
MOV A,#40H ;命令字送A,从00H列开始显示.
ACALL WR_COM_CS2 ;写命令字
MOV A,#0B8H ;命令字送A,从00页开始显示.
ACALL WR_COM_CS2 ;写命令字
MOV R0,#00H ;开始取汉字"单片机"的字模
MOV DPTR,#MCU ;字模首地址送数据指针寄存器
LOOP3: MOV A,R0
MOVC A,@A+DPTR ;从字模表中查取该段字模
ACALL WR_DAT_CS2 ;写数据到DDRAM
INC R0
CJNE R0,#30H,LOOP3 ;上半部分显示完了吗?
MOV A,#40H ;命令字送A,从00H列开始显示.
ACALL WR_COM_CS2 ;写命令字
MOV A,#0B9H ;命令字送A,从00页开始显示.
ACALL WR_COM_CS2 ;写命令字
LOOP4: MOV A,R0
MOVC A,@A+DPTR ;从字模表中查取该段字模
ACALL WR_DAT_CS2 ;写数据到DDRAM
INC R0
CJNE R0,#60H,LOOP4 ;下半部分显示完了吗?
MOV R0,#00H
AJMP $
;**************************************
;子程序名:WR_COM_CS1
;写左半屏命令字子程序,命令字存放在A中.
;**************************************
WR_COM_CS1:
PUSH ACC
PUSH DPH
PUSH DPL
MOV DPTR,#LCMCS1_COM
MOVX @DPTR,A
ACALL DELAY5US
POP DPL
POP DPH
POP ACC
RET
;**************************************
;子程序名:WR_DAT_CS1
;写左半屏数据子程序,数据存放在A中.
;**************************************
WR_DAT_CS1:
PUSH ACC
PUSH DPH
PUSH DPL
MOV DPTR,#LCMCS1_DAT
MOVX @DPTR,A
ACALL DELAY5US
POP DPL
POP DPH
POP ACC
RET
;**************************************
;子程序名:WR_COM_CS2
;写右半屏命令字子程序,命令字存放在A中.
;**************************************
WR_COM_CS2:
PUSH ACC
PUSH DPH
PUSH DPL
MOV DPTR,#LCMCS2_C0M
MOVX @DPTR,A
ACALL DELAY5US
POP DPL
POP DPH
POP ACC
RET
;**************************************
;子程序名:WR_DAT_CS2
;写左半屏数据子程序,数据存放在A中.
;**************************************
WR_DAT_CS2:
PUSH ACC
PUSH DPH
PUSH DPL
MOV DPTR,#LCMCS2_DAT
MOVX @DPTR,A
ACALL DELAY5US
POP DPL
POP DPH
POP ACC
RET
;****************************
;子程序名:DELAY5US
;延时子程序,延时时间:5us。
;****************************
DELAY5US:
MOV R7,#60H
DJNZ R7,$
RET
ZLG: DB 00H,00H,00H,0E0H,0E0H,60H,60H,0F0H,0F0H,60H,60H,60H,0E0H,20H,00H,00H
DB 00H,00H,40H,40H,40H,0C0H,40H,70H,70H,0C0H,0C0H,40H,40H,40H,00H,00H
DB 00H,40H,40H,40H,0C0H,40H,40H,00H,80H,80H,0F0H,0F0H,80H,80H,80H,00H
DB 00H,10H,18H,0FH,01H,05H,1DH,15H,15H,1DH,1DH,01H,3FH,38H,00H,00H
DB 00H,18H,18H,18H,08H,0FH,08H,08H,08H,1FH,19H,18H,18H,38H,18H,08H
DB 04H,04H,06H,06H,33H,12H,1AH,0EH,16H,13H,11H,18H,1CH,07H,01H,00H
MCU: DB 00H,00H,00H,40H,0C0H,0D0H,0B0H,0C0H,0C0H,0B0H,0D0H,0C0H,0E0H,00H,00H,00H
DB 00H,00H,00H,00H,0F0H,0C0H,40H,40H,70H,60H,40H,40H,40H,00H,00H,00H
DB 00H,00H,40H,40H,0F0H,40H,40H,00H,0E0H,20H,20H,0E0H,20H,00H,00H,00H
DB 00H,0CH,0CH,04H,07H,06H,06H,1FH,3FH,06H,06H,06H,0DH,0CH,0CH,00H
DB 00H,18H,08H,0CH,07H,01H,01H,01H,3FH,3FH,01H,01H,03H,03H,03H,01H
DB 00H,04H,06H,03H,3FH,03H,12H,1CH,0FH,00H,00H,0FH,18H,18H,18H,08H
ZHOU: DB 00H,00H,00H,0E0H,0E0H,60H,60H,0F0H,0F0H,60H,60H,60H,0E0H,20H,00H,00H
DB 00H,10H,18H,0FH,01H,05H,1DH,15H,15H,1DH,1DH,01H,3FH,38H,00H,00H ;周 16X16的字模码
LI: DB 00H,00H,40H,40H,40H,0C0H,40H,70H,70H,0C0H,0C0H,40H,40H,40H,00H,00H
DB 00H,18H,18H,18H,08H,0FH,08H,08H,08H,1FH,19H,18H,18H,38H,18H,08H ;立 16X16的字模码
GONG: DB 00H,40H,40H,40H,0C0H,40H,40H,00H,80H,80H,0F0H,0F0H,80H,80H,80H,00H
DB 04H,04H,06H,06H,33H,12H,1AH,0EH,16H,13H,11H,18H,1CH,07H,01H,00H ;功 16X16的字模码
DAN: DB 00H,00H,00H,40H,0C0H,0D0H,0B0H,0C0H,0C0H,0B0H,0D0H,0C0H,0E0H,00H,00H,00H
DB 00H,0CH,0CH,04H,07H,06H,06H,1FH,3FH,06H,06H,06H,0DH,0CH,0CH,00H
PIAN: DB 00H,00H,00H,00H,0F0H,0C0H,40H,40H,70H,60H,40H,40H,40H,00H,00H,00H
DB 00H,18H,08H,0CH,07H,01H,01H,01H,3FH,3FH,01H,01H,03H,03H,03H,01H
JI: DB 00H,00H,40H,40H,0F0H,40H,40H,00H,0E0H,20H,20H,0E0H,20H,00H,00H,00H
DB 00H,04H,06H,03H,3FH,03H,12H,1CH,0FH,00H,00H,0FH,18H,18H,18H,08H
;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -