最新ts19264-1.asm

来自「19264-1液晶显示程序1 9264-1液晶显示程序」· 汇编 代码 · 共 1,130 行 · 第 1/5 页

ASM
1,130
字号
       MOV COM,R2
       LCALL PRL0
       LCALL PRM0
       LCALL PRR0
       DJNZ R3,LOOP4
       LCALL DELAY1
;=================================
       MOV R2,#0B8H  ;页地址    寄存器R2用于页地址
       MOV COM,R2
       LCALL PRL0
       LCALL PRM0
       LCALL PRR0
       MOV DPTR,#TAB05
       MOV R3,#08H      ;用于显示页数
LOOP5: MOV R4,#40H      ;用于一页显示64列数据
WL15:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL  PRL1
       INC DPTR
       DJNZ R4,WL15
       MOV R4,#40H
WM15:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL PRM1
       INC DPTR
       DJNZ R4,WM15
       MOV R4,#40H
WR15:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL PRR1
       INC DPTR
       DJNZ R4,WR15
       INC R2
       MOV COM,R2
       LCALL PRL0
       LCALL PRM0
       LCALL PRR0
       DJNZ R3,LOOP5
       LCALL DELAY1
;===============================
       MOV R2,#0B8H  ;页地址    寄存器R2用于页地址
       MOV COM,R2
       LCALL PRL0
       LCALL PRM0
       LCALL PRR0
       MOV DPTR,#TAB06
       MOV R3,#08H      ;用于显示页数
LOOP6: MOV R4,#40H      ;用于一页显示64列数据
WL16:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL  PRL1
       INC DPTR
       DJNZ R4,WL16
       MOV R4,#40H
WM16:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL PRM1
       INC DPTR
       DJNZ R4,WM16
       MOV R4,#40H
WR16:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL PRR1
       INC DPTR
       DJNZ R4,WR16
       INC R2
       MOV COM,R2
       LCALL PRL0
       LCALL PRM0
       LCALL PRR0
       DJNZ R3,LOOP6
       LCALL DELAY1
;===================
       MOV R2,#0B8H  ;页地址    寄存器R2用于页地址
       MOV COM,R2
       LCALL PRL0
       LCALL PRM0
       LCALL PRR0
       MOV DPTR,#TAB07
       MOV R3,#08H      ;用于显示页数
LOOP7: MOV R4,#40H      ;用于一页显示64列数据
WL17:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL  PRL1
       INC DPTR
       DJNZ R4,WL17
       MOV R4,#40H
WM17:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL PRM1
       INC DPTR
       DJNZ R4,WM17
       MOV R4,#40H
WR17:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL PRR1
       INC DPTR
       DJNZ R4,WR17
       INC R2
       MOV COM,R2
       LCALL PRL0
       LCALL PRM0
       LCALL PRR0
       DJNZ R3,LOOP7
       LCALL DELAY1
;========================
       MOV R2,#0B8H  ;页地址    寄存器R2用于页地址
       MOV COM,R2
       LCALL PRL0
       LCALL PRM0
       LCALL PRR0
       MOV DPTR,#TAB08
       MOV R3,#08H      ;用于显示页数
LOOP8: MOV R4,#40H      ;用于一页显示64列数据
WL18:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL  PRL1
       INC DPTR
       DJNZ R4,WL18
       MOV R4,#40H
WM18:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL PRM1
       INC DPTR
       DJNZ R4,WM18
       MOV R4,#40H
WR18:   CLR A
       MOVC A,@A+DPTR
       MOV DAT,A
       LCALL PRR1
       INC DPTR
       DJNZ R4,WR18
       INC R2
       MOV COM,R2
       LCALL PRL0
       LCALL PRM0
       LCALL PRR0
       DJNZ R3,LOOP8
       LCALL DELAY1
 ;===============================
       LCALL CLEAR
       LCALL DELAY1
       LJMP MAIN1

;============================================== 左区驱动子程序
PRL0:     PUSH ACC
          PUSH DPH
          PUSH DPL
          MOV DPTR,#CRADD1   ;设置读状态字地址
PRL01:    MOVX A,@DPTR       ;读状态字
          JB ACC.7,PRL01     ;判忙字标志为0否,否再读
          MOV DPTR,#CWADD1   ;设置写指令代码地址
          MOV A,COM          ;取指令代码
          MOVX @DPTR,A       ;写指令代码
          POP DPL
          POP DPH
          POP ACC
          RET
 ;=================================================左区写显示数据子程序
 PRL1:
          PUSH DPH
          PUSH DPL
          PUSH ACC
          MOV DPTR,#CRADD1   ;设置读状态字地址
 PRL11:   MOVX A,@DPTR       ;读状态字
          JB ACC.7,PRL11     ;判忙标志为0否,否再读
          MOV DPTR,#DWADD1   ;设置写显示数据地址
          MOV A,DAT          ;取数据
          MOVX @DPTR,A        ;写数据
          POP ACC
          POP DPL
          POP DPH

          RET
;==================================================中区写指令子程序
PRM0:     PUSH DPL
          PUSH DPH
          PUSH ACC
          MOV DPTR,#CRADD2  ;设置读状态字地址
PRM01:    MOVX A,@DPTR      ;读状态字
          JB ACC.7, PRM01    ;判忙标志为0否,否再读
          MOV DPTR,#CWADD2  ;设置写指令代码地址
          MOV A,COM         ;取指令代码
          MOVX @DPTR,A      ;写指令代码
          POP ACC
          POP DPH
          POP DPL
          RET
;==================================中区写显示数据子程序
PRM1:     PUSH DPL
          PUSH DPH
          PUSH ACC
          MOV DPTR,#CRADD2   ;设置读状态字地址
PRM11:    MOVX A,@DPTR       ;读状态字
          JB ACC.7,PRM11     ;判忙标志为0否,否再读
          MOV DPTR,#DWADD2   ;设置写显示数据地址
          MOV A,DAT          ;取数据
          MOVX @DPTR,A       ;写数据
          POP ACC
          POP  DPH
          POP  DPL
          RET
;======================================== 右区驱动子程序
PRR0:     PUSH DPL
          PUSH DPH
          PUSH ACC
          MOV DPTR,#CRADD3   ;设置读状态字地址
PRR01:    MOVX A,@DPTR       ;读标志字
          JB ACC.7,PRR01     ;判忙标志为0否,否再读
          MOV DPTR,#CWADD3   ;设置写指令代码地址
          MOV A,COM          ;取指令代码
          MOVX @DPTR,A       ;写指令代码
          POP ACC
          POP  DPH
          POP  DPL

⌨️ 快捷键说明

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