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

📄 cm240128_1.asm

📁 介绍CM240128-1型液晶显示模块与单片机之间的通讯程序实例.
💻 ASM
字号:
         ORG      0000H
         AJMP     MAIN
         ORG      0003H
         AJMP     ZHONGDUAN
         ORG      0035H
ZHONGDUAN:
HERE:    SJMP  HERE
         RET      ;**********************************************
DATA1    EQU     30H      ;第一参数单元
DATA2    EQU     31H      ;第二参数/数据单元
COMMAND     EQU     32H       ;指令代码单元
C_ADD   EQU     8100H      ;指令通道地址
D_ADD   EQU     8000H      ;数据通道地址
LI1      EQU     33H
LI2     EQU     34H    ;***********************************************
BUSY1:         PUSH    DPH
                PUSH    DPL
                MOV    DPTR,#C_ADD
                MOVX    A,@DPTR
                POP    DPL
                POP    DPH
                RET    ;***********************************************
         BUSY:  LCALL   BUSY1
                JNB     ACC.0, BUSY1
                JNB     ACC.1, BUSY1
                RET    ;*****************************************
  WRITE_COMMAND:PUSH     DPH
                PUSH     DPL
                LCALL    BUSY
                MOV      A,COMMAND
                MOV      DPTR,#C_ADD
                MOVX     @DPTR,A
                POP      DPL
                POP      DPH
                RET      WRITE_DATA:
                PUSH     DPH
                PUSH     DPL
                LCALL    BUSY
                MOV      A,DATA2
                MOV      DPTR,#D_ADD
                MOVX     @DPTR,A
                POP      DPL
                POP      DPH
                RET                                
       MS40:    MOV    R7,#0E8H
       MS2:     MOV    R6,#0FFH
       MS1:     DJNZ   R6,MS1
                DJNZ   R7,MS2
                RET   
         DELAY: MOV    R5,#05H
         DELAY1: LCALL  MS40
                DJNZ   R5,DELAY1 
                RET                             ;*****************************************************
      MAIN:     MOV    SP,#20H 
                MOV    P3,#0FFH  
                SETB   EA
                SETB   EX0
                SETB   IT0
                MOV    COMMAND,#90H
                LCALL  WRITE_COMMAND
                LCALL  MS40
                MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    COMMAND,#40H   ;文本显示区首地址设置
                LCALL  WRITE_COMMAND
                MOV    DATA2,#20H
                LCALL  WRITE_DATA
                MOV    DATA2,#00H
                LCALL  WRITE_DATA     
                MOV    COMMAND,#41H   ;文本显示区宽度设置
                LCALL  WRITE_COMMAND                           
                MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    DATA2,#08H
                LCALL  WRITE_DATA
                MOV    COMMAND,#42H  ;图形显示区首地址设置
                LCALL  WRITE_COMMAND                       
                MOV    DATA2,#1EH
                LCALL  WRITE_DATA
                MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    COMMAND,#43H  ;图形显示宽度设置
                LCALL  WRITE_COMMAND            
                MOV    COMMAND,#80H    ;逻辑或,用CGROM
                LCALL  WRITE_COMMAND              
                MOV    COMMAND,#9CH   ;    启动文本.图形.光标显示
                LCALL  WRITE_COMMAND                    ;***************************************888             ;显示全屏
                MOV   DATA2,#00H
                LCALL  WRITE_DATA
                MOV   DATA2,#00H
                LCALL  WRITE_DATA
                MOV   COMMAND,#24H
                LCALL  WRITE_COMMAND
                MOV   R3,#00H
                MOV   COMMAND,#0B0H
                LCALL  WRITE_COMMAND
                MOV    R4,#20H
 YY1:           NOP
 YY:            MOV    A,#0FFH    
                MOV   DATA2,A
                LCALL  WRITE_DATA
                DJNZ   R3,YY
                DJNZ   R4,YY1
                MOV    COMMAND,#0B2H
                LCALL  WRITE_COMMAND
                LCALL  MS40          ;*******************************************
CLEAR1:        MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    COMMAND,#24H      ;显示地址设置
                LCALL  WRITE_COMMAND
                MOV    R3,#00H
                MOV    R4,#20H
                MOV    COMMAND,#0B0H     ;自动写入
                LCALL  WRITE_COMMAND
  M1:          NOP
  M:            MOV    A,#00H
                MOV    DATA2,A
                LCALL  WRITE_DATA
                DJNZ   R3,M
                DJNZ   R4,M1
                MOV    COMMAND,#0B2H     ;推出自动写入
                LCALL  WRITE_COMMAND         ;   ****************************************       
                MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    COMMAND,#24H      ;显示地址设置
                LCALL  WRITE_COMMAND
                MOV    COMMAND,#9CH
                LCALL  WRITE_COMMAND 
                MOV    DATA2,#05H
                LCALL  WRITE_DATA
                MOV    DATA2,#03H
                LCALL  WRITE_DATA
                MOV    COMMAND,#21H
                LCALL  WRITE_COMMAND           ;显示字库                  
                MOV    R3,#00H
                MOV    R4,#7FH 
                MOV    COMMAND,#0B0H     ;自动写入
                LCALL  WRITE_COMMAND
                MOV    A,#0FFH           ;写入英文字库
        L:      INC    A
                MOV    DATA2,A
                LCALL  WRITE_DATA
                DJNZ   R4,L
                MOV    COMMAND,#0B2H     ;退出自动写入
                LCALL  WRITE_COMMAND 
                LCALL  DELAY  ;###########################################                           ;  写CGROM  80H           
                MOV    DATA2,#03H
                LCALL  WRITE_DATA
                MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    COMMAND,#22H
                LCALL  WRITE_COMMAND
                MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    DATA2,#1CH
                LCALL  WRITE_DATA
                MOV    COMMAND,#24H
                LCALL  WRITE_COMMAND
                MOV   R2,#2
                MOV   R0,#0FFH
                MOV   COMMAND,#0B0H
                LCALL  WRITE_COMMAND
                MOV   DPTR,#TEST
        LL2:    NOP
        LL:     CLR   A
                MOVC   A, @A+DPTR
                MOV    DATA2,A
                LCALL  WRITE_DATA
                INC    DPTR
                SETB   P1.5
                DJNZ   R0,LL
                DJNZ   R2,LL2
                MOV    DATA2,#0B2H
                LCALL  WRITE_DATA
                SETB   P1.4       ;#############################################    
                MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    DATA2,#00H
                LCALL  WRITE_DATA
                MOV    COMMAND,#24H      ;显示地址设置

⌨️ 快捷键说明

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