⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_hz.asm

📁 基于89s51的一通用平台
💻 ASM
字号:
;实验二、LCD 汉字显示实验
;文件名称  LCD_HZXS.ASM
;在第2行显示"欢迎使用LJD-2008" ,  
;在第3行显示"WWW.LJD-2008.COM"

NAME  LCD_HZ

$NOLIST
$INCLUDE(LJD_2008.INC)
$INCLUDE(LCD.INC)      
$LIST
	   
          ORG   0000H
          AJMP  BEGIN
          ORG   0030H
BEGIN:    MOV	SP,#60H
	    LCALL 	INITIAL_GLCD	;调用LCD初试化
;----------------------------------------------------
;设定汉字的显示行:       第一行开始地址为00H~07H  
;每行可以显示8个汉字:    第二行开始地址为10H~17H
;                        第三行开始地址为08H~0FH
;                        第四行开始地址为18H~1FH
;-----------------------------------------------------
	     MOV 	ADDR1,#10H        ;第二行显示
           MOV 	N1,#08H           ;数量 8 个
	     MOV 	DPTR,#DHZTAB1     ;需要显示的汉字位置
	     CALL	DHZ              ; 调用汉字显示子程序
	     MOV 	ADDR1,#08H	   ;第三行显示
           MOV 	N1,#08		   ;数量 8 个
           MOV 	DPTR,#DHZTAB2     ;需要显示的汉字(一个汉字占2个字符)
           CALL 	DHZ
	     SJMP 	$
DHZTAB1:   DB "欢迎使用LJD-2008"
DHZTAB2:   DB "WWW.LJD-2008.COM"
	 
;--------------------------------------------------------------------
				
;显示汉字16X16点阵

DHZ:      MOV   	ADDR,ADDR1	 ;  开始行位置
          MOV  	B,N1		 ;  显示数量
DHZ1:     MOV   	A,ADDR;     
          ORL   	A,#80H  	 ;  送显示地址
          LCALL 	COMMAND_GLCD ;调写命令子程序 
DHZ2:     CLR  	A
          MOVC  	A,@A+DPTR     ;  查找汉字的高位码
          INC   	DPTR
	    LCALL 	WRITE_GLCD	;  送显示
          CLR  	A
          MOVC  	A,@A+DPTR	;  查找汉字的低位码  
          INC   	DPTR
          LCALL 	WRITE_GLCD    ;  送显示
          DJNZ  	B,DHZ2
          RET
;---------------------------------------------------------
;点阵式 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
       
;---------------------------------------------------------------
;检查LCD 忙碌标志
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'
;--------------------------------------------
END
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -