📄 06062-lcm.asm
字号:
ZK EQU 30H
X EQU 31H
Y EQU 32H
Z EQU 33H
DATA1 EQU 34H
DATA2 EQU 35H
TIME0 EQU 36H
TIME1 EQU 37H
REG EQU 38H
DAT EQU 39H
rs equ p3.0
wr equ p3.1
cs equ p3.2
rd equ p3.4
busy equ p3.5
res_ equ p3.7
ORG 0000H
LJMP BBEGIN
;
ORG 0030H
NOP
BBEGIN: MOV SP,#60H
mov p1,#0ffh
mov p3,#0FFh
MOV TIME1,#150
LCALL DELAY
clr res_
MOV TIME1,#200
LCALL DELAY
setb res_
MOV TIME1,#100
LCALL DELAY
BINITIAL:
MOV REG,#00H ;LCD 基本显示功能设定-1
MOV DAT,#0C5H ;绘图模式
LCALL BWRCTRL
MOV REG,#01H ;系统工作频率与中断准位设定
MOV DAT,#0F1H ;System clock=4MHz
LCALL BWRCTRL
MOV REG,#02H ;LCD 内存读写速度与功能设定
MOV DAT,#10H
LCALL BWRCTRL
MOV REG,#03H ;LCD 特殊显示功能
MOV DAT,#80H
LCALL BWRCTRL
MOV REG,#10H ;LCD 基本显示功能设定-2
MOV DAT,#0E8H
LCALL BWRCTRL
MOV REG,#11H ;设定光标高度与行距
MOV DAT,#22H
LCALL BWRCTRL
MOV REG,#12H ;LCD 显示图层设定
MOV DAT,#91H ;91H
LCALL BWRCTRL
MOV REG,#20H ;设定实际显示窗口右边位置地址(X1)
MOV DAT,#39 ;(39+1)*8=320 seg
LCALL BWRCTRL
MOV REG,#30H ;设定实际显示窗口底边位置地址(Y1)
MOV DAT,#79 ;79+1=80 com
LCALL BWRCTRL
MOV REG,#40H ;设定实际显示窗口左边位置地址(X2)
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#50H ;设定实际显示窗口顶边位置地址(Y2)
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#21H ;设定LCD 模块右边位置地址(X1)
MOV DAT,#39 ;(39+1)*8=320 seg
LCALL BWRCTRL
MOV REG,#31H ;设定LCD 模块底边位置地址(Y1)
MOV DAT,#79 ;79+1=80 com
LCALL BWRCTRL
MOV REG,#41H ;设定LCD 模块左边位置地址(X2)
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#51H ;设定LCD 模块顶边位置地址(Y2)
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#60H ;设定光标水平地址(Common)
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#61H ;设定垂直开始显示地址(Segment)
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#70H ;设定光标垂直地址(Segment)
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#71H ;设定于水平区块移动模式下,起始地址
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#72H ;设定于水平区块移动模式下,结束地址
MOV DAT,#00
LCALL BWRCTRL
MOV REG,#80H ;光标闪烁时间设定
MOV DAT,#33H
LCALL BWRCTRL
MOV REG,#81H ;变换FRM 极性的起始地址(Common)
MOV DAT,#0CH
LCALL BWRCTRL
MOV REG,#91H ;变换FRM 极性的结束地址(Common)
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#90H ;SET Shift Clock Control Register
MOV DAT,#20 ;SET FRAME RATE=60Hz
LCALL BWRCTRL
MOV REG,#0A0H ;中断功能设定
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#0A1H ;键盘扫描控制缓存器
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#0A2H ;键盘扫描控制输出数据
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#0A3H ;键盘扫描控制输入数据
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#0B0H ;设定水平方向断点的地址
MOV DAT,#39
LCALL BWRCTRL
MOV REG,#0B1H ;设定垂直方向断点的地址
MOV DAT,#79
LCALL BWRCTRL
MOV REG,#0C0H ;触控屏幕功能设定
MOV DAT,#10H
LCALL BWRCTRL
MOV REG,#0C1H ;读写并可侦测触控屏幕的状态
MOV DAT,#0AH
LCALL BWRCTRL
MOV REG,#0C8H ;读取触控屏幕水平轴的数据(高字节)
MOV DAT,#80H
LCALL BWRCTRL
MOV REG,#0C9H ;读取触控屏幕水平轴的数据(高字节)
MOV DAT,#80H
LCALL BWRCTRL
MOV REG,#0CAH ;读取触控屏幕水平轴与垂直轴的数据(低字节)
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#0D0H ;设定DAC 电流输出,可调整LCD 亮度
MOV DAT,#80H ;not use DAC
LCALL BWRCTRL
MOV REG,#0E0H ;设定写入显示内存的数据(需搭配缓存器[F0]
MOV DAT,#00H
LCALL BWRCTRL
MOV REG,#0F0H ;设定中文字型
MOV DAT,#0A0H ;GB-MODE2
LCALL BWRCTRL
MOV REG,#0F1H ;改变字型垂直与水平显示大小
MOV DAT,#0FH
LCALL BWRCTRL
MOV REG,#81H ;变换FRM 极性的起始地址(Common)
MOV DAT,#01H
LCALL BWRCTRL
LCALL BCLRRAM
BDISALL: MOV DATA1,#0FFH
MOV DATA2,#0FFH
LCALL BWRITE
LCALL DELAY1S
LCALL BCLRRAM
LCALL DELAY1S
MOV DATA1,#0FFH
MOV DATA2,#00H
LCALL BWRITE
LCALL DELAY1S
MOV DATA1,#55H
MOV DATA2,#55H
LCALL BWRITE
LCALL DELAY1S
MOV DATA1,#55H
MOV DATA2,#0AAH
LCALL BWRITE
LCALL DELAY1S
LCALL DispBorder
LCALL DELAY1S
LCALL BCLRRAM
LCALL DISZK
LCALL DELAY1S
LCALL DELAY1S
LCALL BCLRRAM
LCALL DISPHZ
LCALL DELAY1S
LCALL DELAY1S
JMP BDISALL
ljmp BINITIAL
BCLRRAM: mov data1,#00h
mov data2,#00h
lcall bwrite
RET;-------------------
;***********************
DispBorder:
MOV REG,#00H ;LCD 基本显示功能设定-1
MOV DAT,#0C5H ;绘图模式
LCALL BWRCTRL
MOV REG,#60H ;设定光标水平地址(Common)
MOV DAT,#00H
LCALL BWRCTRL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -