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

📄 text1.a

📁 单片机课程设计的LCD显示
💻 A
字号:
;A15=E的选通信号,A9=R/W,A8=RS
COM      EQU      20H     ;指令寄存器                         
DAT      EQU      21H     ;数据寄存器
TEMP     EQU      22H                  
CW_Add   EQU      8000H   ;指令口写地址           
CR_Add   EQU      8200H   ;指令口读地址           
DW_Add   EQU      8100H   ;数据口写地址            
DR_Add   EQU      8300H   ;数据口读地址

;初始化演示程序
 MAIN:  MOV        SP,#60H
	MOV        TEMP,#00H
        LCALL      INT
        LCALL      COUNTER

;计数
COUNTER:  MOV      COM,#06H            ;输入方式设置
          LCALL    PR1
          MOV      COM,#80H           ;设置DDRAM 地址
          LCALL    PR1   
          MOV     A,TEMP
          MOV     B,#100
	  DIV     AB
	  LCALL   DIS
	  MOV     A,B
	  MOV     B,#10
	  DIV     AB
	  LCALL   DIS
	  MOV     A,B
	  LCALL   DIS	         
	  LCALL   DELAY20MS
	  INC     TEMP
	  SJMP    COUNTER
;直接访问方式下的初始化子程序
  INT:    MOV     A,#38H          ;此循环必要,不可删除
          MOV     DPTR,#CW_Add    ;指令口地址设置
          MOV     R2,#03H         ;循环量=3 
 INTU1:   MOVX    @DPTR,A         ;写指令代码
          LCALL   DELAY5MS        ;调延时子程序 
          DJNZ    R2,INTU1
          MOV     COM,#38H        ;设置工作方式*
          LCALL   PR1              
          MOV     COM,#01H        ;清屏
          LCALL   PR1
          MOV     COM,#06H        ;设置输入方式
          LCALL   PR1
          MOV     COM,#0CH        ;设置显示方式
          LCALL   PR1
          RET
;显示
DIS:      MOV     DPTR,#TAB
          MOVC    A,@A+DPTR
	  MOV     DAT,A
          LCALL    PR2                 ;写数据
	  RET
;读BF和AC值
PRO:     PUSH        DPH 
         PUSH        DPL
         PUSH        ACC
         MOV         DPTR,#CR_Add    ;设置指令口读地址
         MOVX	     A,@DPTR         ;读BF和AC值     
         MOV         COM,A           ;存入COM单元
         POP         ACC
         POP         DPL
         POP         DPH
         RET
;写指令代码子程序
PR1:      PUSH     DPH
          PUSH     DPL
          PUSH     ACC
          MOV      DPTR,#CR_Add   ;设置指令口读地址
PR11:     MOVX     A,@DPTR
          JB       ACC.7,PR11     ;判BF=0?是继续
          MOV      A,COM
          MOV      DPTR,#CW_Add   ;设置指令口写地址
          MOVX     @DPTR,A        ;写指令代码
          POP      ACC
          POP      DPL
          POP      DPH
          RET
;写显示数据子程序
PR2:     PUSH     DPH
         PUSH     DPL
         PUSH     ACC
         MOV      DPTR,#CR_Add   ;设置指令口读地址
PR21:     MOVX     A,@DPTR
          JB       ACC.7,PR21     ;判BF=0?是继续
          MOV      A,DAT
          MOV      DPTR,#DW_Add   ;设置数据口写地址
          MOVX     @DPTR,A        ;写数据
          POP      ACC
          POP      DPL
          POP      DPH
          RET
;读显示数据子程序
 PR3:    PUSH     DPH
         PUSH     DPL
         PUSH     ACC
         MOV      DPTR,#CR_Add   ;设置指令口读地址
 PR31:    MOVX     A,@DPTR
          JB       ACC.7,PR31     ;判BF=0?是继续
          MOV      DPTR,#DR_Add   ;设置数据口读地址
          MOVX     A,@DPTR        ;读数据
          MOV      DAT,A          ;存入DAT单元
          POP      ACC
          POP      DPL
          POP      DPH
          RET

;注:*工作方式参数根据所使用的字符型液晶显示模块的特性而定。
DELAY5MS:   MOV      R6,#04H         ;延时子程序  
            MOV      R7,#10H
DELAY1:     NOP
            DJNZ       R7,DELAY1 
            DJNZ       R6,DELAY1
            RET
DELAY20MS:  MOV      R6,#0FFH         ;延时子程序  
            MOV      R7,#0FFH
DELAY2:     NOP
            DJNZ       R7,DELAY2
            DJNZ       R6,DELAY2
            RET
TAB:     DB  30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H
END

⌨️ 快捷键说明

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