lcd_code.asm
来自「基于89s51的一通用平台」· 汇编 代码 · 共 89 行
ASM
89 行
第七部分:点阵式 LCD(128X64)模块显示实验
以下是公共的程序:
;执行 LCD 初始化工作
INITIAL_GLCD:
PUSH ACC
MOV A,#30H ;功能设定
CALL COMMAND_GLCD
MOV A,#30H ;功能设定
CALL COMMAND_GLCD
MOV A,#30H ;功能设定
CALL COMMAND_GLCD
MOV A,#06H ;显示器控制:游标不显示,
CALL COMMAND_GLCD ;但是字会闪烁
MOV A,#01H ;清除显示器
CALL COMMAND_GLCD
MOV A,#0CH ;进入模式设定
CALL COMMAND_GLCD
POP ACC
RET
;---------------------------------------------------------------
;检查 GLCD 忙碌标
CHKBUSY_GLCD:
PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#R_B_GLCD
CHK$: MOVX A,@DPTR
JB ACC.7,CHK$ ;
POP ACC
POP DPL
POP DPH
RET
;---------------------------------------------------------------
;写命令到 GLCD
COMMAND_GLCD:
PUSH DPH
PUSH DPL
CALL CHKBUSY_GLCD
MOV DPTR,#W_C_GLCD
MOVX @DPTR,A
POP DPL
POP DPH
RET
;---------------------------------------------------------------
;写资料到 GLCD
WRITE_GLCD:
PUSH DPH
PUSH DPL
CALL CHKBUSY_GLCD
MOV DPTR,#W_D_GLCD
MOVX @DPTR,A
POP DPL
POP DPH
RET
;--------------------------------------------------------------------
;清除 LCD 的显示幕
CLEAR_GLCD:
PUSH ACC
MOV A,#01H ;清除显示器
CALL COMMAND_GLCD
POP ACC
RET
;--------------------------------------------------------------------
;将 ACC 内容,以十六进制值显示
HEX_LCD:
PUSH DPH
PUSH DPL
PUSH ACC
PUSH ACC
SWAP A ;高低四位元交换
ANL A,#0FH ;留下低四位元
MOV DPTR,#ASCII_CODE ;DPTR 指到 ASCII_CODE
MOVC A,@A+DPTR ;取得 ASCII 码
CALL WRITE_GLCD ;写到 LCD
POP ACC
ANL A,#0FH ;留下低四位元
MOVC A,@A+DPTR ;取得 ASCII 码
CALL WRITE_GLCD ;写到 LCD
POP ACC
POP DPL
POP DPH
RET
ASCII_CODE: DB '0123456789ABCDEF'
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?