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

📄 drivert2.asm

📁 基于61202控制芯片的LCD液晶显示驱动程序。
💻 ASM
字号:
; 间接驱动驱动子程序由9个子程序组成(适应MGLS19264):
; 占用内部资源:COM,DAT1,A
; 占用系统资源:CSA,CSB,RS,R/W,E1,DATBUS
; 程序输入变量:COM 或 DAT1   
; 1. 左区驱动子程序
; 1.1 写指令代码子程序(左)
        PR1:    CLR     CSA            ; 片选设置为"00"
                CLR     CSB            ;
                CLR     RS             ; RS=0
                SETB    RW             ; R/W=1
        PR11:   MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                SETB    E1             ; E=1
                MOV     A,DATBUS       ; 读状态字
                CLR     E1             ; E=0
                JB      ACC.7,PR11     ; 判"忙"标志为"0"否, 否再读
                CLR     RW             ; R/W=0
                MOV     DATBUS,COM     ; 写指令代码
                SETB    E1             ; E=1
                CLR     E1             ; E=0
                RET
; 1.2 写显示数据子程序(左)
        PR2:    CLR     CSA            ; 片选设置为"00"
                CLR     CSB            ;
                CLR     RS             ; RS=0
                SETB    RW             ; R/W=1
        PR21:   MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                SETB    E1             ; E=1
                MOV     A,DATBUS       ; 读状态字                  
                CLR     E1             ; E=0
                JB      ACC.7,PR21     ; 判"忙"标志为"0"否, 否再读
                SETB    RS             ; RS=1
                CLR     RW             ; R/W=0
                MOV     DATBUS,DAT1    ; 写数据
                SETB    E1             ; E=1
                CLR     E1             ; E=0
                RET
; 1.3 读显示数据子程序(左)
        PR3:    CLR     CSA            ; 片选设置为"00"
                CLR     CSB            ;
                CLR     RS             ; RS=0
                SETB    RW             ; R/W=1
        PR31:   MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                SETB    E1             ; E=1
                MOV     A,DATBUS       ; 读状态字                  
                CLR     E1             ; E=0
                JB      ACC.7,PR31     ; 判"忙"标志为"0"否, 否再读
                SETB    RS             ; RS=1
                MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                SETB    E1             ; E=1
                MOV     DAT1,DATBUS    ; 读数据
                CLR     E1             ; E=0
                RET
; 2. 中区驱动子程序 
; 2.1 写指令代码子程序(中)
        PR4:    CLR     CSA            ; 片选设置为"01"
                SETB    CSB            ;
                CLR     RS             ; RS=0
                SETB    RW             ; R/W=1
        PR41:   MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                SETB    E1             ; E=1
                MOV     A,DATBUS       ; 读状态字                  
                CLR     E1             ; E=0
                JB      ACC.7,PR41     ; 判"忙"标志为"0"否, 否再读
                CLR     RW             ; R/W=0
                MOV     DATBUS,COM     ; 写指令代码
                SETB    E1             ; E=1
                CLR     E1             ; E=0
                RET
; 2.2 写显示数据子程序(中)
        PR5:    CLR     CSA            ; 片选设置为"01"
                SETB    CSB            ;
                CLR     RS             ; RS=0
                SETB    RW             ; R/W=1
        PR51:   MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                SETB    E1             ; E=1
                MOV     A,DATBUS       ; 读状态字                  
                CLR     E1             ; E=0
                JB      ACC.7,PR51     ; 判"忙"标志为"0"否, 否再读
                SETB    RS             ; RS=1
                CLR     RW             ; R/W=0
                MOV     DATBUS,DAT1    ; 写数据
                SETB    E1             ; E=1
                CLR     E1             ; E=0
                RET
; 2.3 读显示数据子程序(中)
        PR6:    CLR     CSA            ; 片选设置为"01"
                SETB    CSB            ;
                CLR     RS             ; RS=0
                SETB    RW             ; R/W=1
        PR61:   MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                SETB    E1             ; E=1
                MOV     A,DATBUS       ; 读状态字                  
                CLR     E1             ; E=0
                JB      ACC.7,PR61     ; 判"忙"标志为"0"否, 否再读
                SETB    RS             ; RS=1
                MOV     DATBUS,#0FFH   ; DATBUS口置"0"
                SETB    E1             ; E=1
                MOV     DAT1,DATBUS    ; 读数据
                CLR     E1             ; E=0
                RET
; 3. 右区驱动子程序
; 3.1 写指令代码子程序(右)
        PR7:    SETB    CSA            ; 片选设置为"10"
                CLR     CSB            ;
                CLR     RS             ; RS=0
                SETB    RW             ; R/W=1
        PR71:   MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                SETB    E1             ; E=1
                MOV     A,DATBUS       ; 读状态字                  
                CLR     E1             ; E=0
                JB      ACC.7,PR71     ; 判"忙"标志为"0"否, 否再读
                CLR     R/W            ; R/W=0
                MOV     DATBUS,COM     ; 写指令代码
                SETB    E1             ; E=1
                CLR     E1             ; E=0
                RET
; 3.2 写显示数据子程序(右)
        PR8:    SETB    CSA            ; 片选设置为"10"
                CLR     CSB            ;
                CLR     RS             ; RS=0
                SETB    RW             ; R/W=1
        PR81:   MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                SETB    E1             ; E=1
                MOV     A,DATBUS       ; 读状态字                  
                CLR     E1             ; E=0
                JB      ACC.7,PR81     ; 判"忙"标志为"0"否, 否再读
                SETB    RS             ; RS=1
                CLR     RW             ; R/W=0
                MOV     DATBUS,DAT1    ; 写数据
                SETB    E1             ; E=1
                CLR     E1             ; E=0
                RET
; 3.3 读显示数据子程序(右)
        PR9:    SETB    CSA            ; 片选设置为"10"
                CLR     CSB            ;
                CLR     RS             ; RS=0
                SETB    RW             ; R/W=1
        PR91:   MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                SETB    E1             ; E=1
                MOV     A,DATBUS       ; 读状态字                  
                CLR     E1             ; E=0
                JB      ACC.7,PR91     ; 判"忙"标志为"0"否, 否再读
                SETB    RS             ; RS=1
                MOV     DATBUS,#0FFH   ; DATBUS口置"0"
                SETB    E1             ; E=1
                MOV     DAT1,DATBUS    ; 读数据
                CLR     E1             ; E=0
                RET

⌨️ 快捷键说明

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