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 + -
显示快捷键?