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

📄 5366.asm

📁 5366 LCD模块测试程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;  WRITE THE ENTIRE RAM OF ALL PAGES
;***********************************************
WR_PAGE:       
                LCALL     SET_PAGE
                NOP
                NOP
		LCALL     SET_COL
                NOP
                NOP
                LCALL   WRITE_RAM        ; CLR THE O/P RAM
                INC     PAGE_CNT         ; REPEAT TILL END OF PAGE
		MOV     R1,PAGE_CNT
                CJNE    R1,#MAX_PAGE,WR_PAGE

                MOV     PAGE_CNT,#8
                LCALL   SET_PAGE
                MOV     COL_CNT,#FIRST_SEG
                LCALL   SET_COL
               ; MOV     DATA_TMP,#00H
                LCALL   WRITE_RAM
		RET
;
WRITE_RAM:      CLR     A
                MOV     A,#MAX_COL        ; max. 96 SEG O/P
		MOV     TEMPA,A           ;
DISP_RAM:       CLR     A
                MOV     A,DATA_TMP
                MOV     R2,A
                LCALL   WDATA
                NOP
                NOP                       ;
                DJNZ    TEMPA,DISP_RAM    ;
		RET                        

;*****************************************
;       SET THE PAGE NUMBER
;*****************************************
SET_PAGE:       CLR     A
                MOV     A,PAGE_CNT        ; RETRIEVE THE PAGE #
                ANL     A,#PAGE_ADDR      ;
                ORL     A,#10110000B      ; D3 - D0
                MOV     R2,A
                LCALL   WCOM
		RET

;*****************************************
;       SET THE COLUMN ADDRESS
;*****************************************
SET_COL:        MOV     A,COL_CNT
                RR      A
                RR      A
                RR      A
                RR      A
		ANL     A,#COL_ADDR_H     ; HIGH 4 BITS
                ORL     A,#00010000B      ;D3 - D0
                MOV     R2,A
                LCALL   WCOM
                CLR     A 
		MOV     A,COL_CNT         ;
		ANL     A,#COL_ADDR_L     ; LOW 4 BITS
                MOV     R2,A      ;
                LCALL   WCOM       ;
		RET

;***************************************
;       Border Line
;***************************************
OUTLINE:        MOV     A,#8
                MOV     PAGE_CNT,A
		MOV     A,#FIRST_SEG
		MOV     COL_CNT,A
                LCALL   SET_PAGE
                NOP
                NOP
                LCALL   SET_COL
                NOP
                NOP

TOPLINE:        MOV     A,#0FFH
		MOV     DATA_TMP,A
		LCALL   WRITE_RAM

BOTTOMLINE:     MOV     A,#LAST_PAGE
		MOV     PAGE_CNT,A
		MOV     A,#FIRST_SEG
                MOV     COL_CNT,A
                LCALL   SET_PAGE
                NOP
                NOP
                LCALL   SET_COL
                NOP
                NOP
                LCALL   DELAY20M
                MOV     B,#80H
		MOV     DATA_TMP,B
		LCALL   WRITE_RAM

                CLR     A
                MOV     PAGE_CNT,A
		LCALL   SET_PAGE
VERTLINE:       MOV     A,#FIRST_SEG
		MOV     COL_CNT,A
                LCALL   SET_COL
                LCALL   DELAY20M

VLINE:          MOV     A,#0FFH
                MOV     R2,A
                LCALL   WDATA
                MOV     A,#MAX_DOT
		MOV     COL_CNT,A
		LCALL   SET_COL
                LCALL   DELAY20M
                MOV     A,#0FFH
                MOV     R2,A
                LCALL   WDATA
		INC     PAGE_CNT
		LCALL   SET_PAGE
                MOV     R3,PAGE_CNT
                CJNE    R3,#MAX_PAGE,VERTLINE
                
;*
                CLR     A
                MOV     PAGE_CNT,A
		LCALL   SET_PAGE
VERTLINE1:       MOV     A,#0         ;#FIRST_SEG
		MOV     COL_CNT,A
                LCALL   SET_COL
                LCALL   DELAY20M

VLINE1:          MOV     A,#0FFH
                MOV     R2,A
                LCALL   WDATA
                MOV     A,#96         ;#MAX_DOT
		MOV     COL_CNT,A
		LCALL   SET_COL
                LCALL   DELAY20M
                MOV     A,#0FFH
                MOV     R2,A
                LCALL   WDATA
		INC     PAGE_CNT
		LCALL   SET_PAGE
                MOV     R3,PAGE_CNT
                CJNE    R3,#MAX_PAGE,VERTLINE1
 		RET

;***************************************
;  SEND COMMAND
;***************************************
WCOM:           CLR   A0       ;A0=0,CS1=0
                CLR   CS1
WDATA11:        MOV   A,#8
                MOV   TEMPD,A
WD2:            CLR   C
                MOV   A,R2
                RLC   A
                MOV   SI,C
                MOV   R2,A
                NOP
                CLR   CLK
                NOP
                NOP
                SETB  CLK
                NOP
                NOP 
                DJNZ  TEMPD,WD2
                RET

;***************************************
;  SEND DATA
;***************************************
WDATA:         SETB    A0          ;A0=1
               CLR     CS1          ;CS1=0
WDATA1:        MOV A,#8
               MOV TEMPD,A
WD1:           CLR C
               MOV A,R2
               RLC A
               MOV SI,C
               MOV R2,A
               NOP
               CLR CLK
               NOP
               NOP
               SETB  CLK
               NOP
               NOP
               DJNZ TEMPD,WD1
               RET

;****************************************
; DELAY SUB-ROUTINE
;****************************************
DELAY100:       MOV     R6,#12
LDELAY100:      MOV     R7,#63H            ; 
LDELAY10:       DJNZ    R7,LDELAY10        ; DELAY FOR 100 usec
                DJNZ    R6,LDELAY100 
                RET                        ;



DELAY101:       MOV     R6,#2
LDELAY101:      MOV     R7,#20H            ; 
LDELAY11:       DJNZ    R7,LDELAY11        ; DELAY FOR 100 usec
                DJNZ    R6,LDELAY101 
                RET                        ;

DELAY20M:       MOV     R5,#200            ;
LDELAY20M:      ACALL   DELAY100           ;
                DJNZ    R5,LDELAY20M       ; DELAY FOR 20 msec
                RET                        ;

DELAY1S:        MOV     R4,#10             ;
LDELAY1S:       LCALL   DELAY20M           ;
                DJNZ    R4,LDELAY1S        ; DELAY FOR 1 sec
                RET                        ;
;************************************
; SLOWLY DISPLAY INTO
;************************************
INTO:
        PUSH  ACC
        PUSH  PSW
        CLR   RS1
        SETB   RS0
RT:     JB   P3.2,RT
        POP  PSW
        POP  ACC
        RETI

;**********************************
;       IDW MESSAGE
;**********************************
; TABLES
;********************************
INI_DATA:       DB     0AFH                ;DISPLAY ON
                DB     0A2H                ; LCD BIAS SETTING.
                DB     0A0H                ; ADC SELECTION.
                DB     0CFH                ; COMMON OUTPUT STATE SELECTION.
                DB     22H                 ; Select internal resistor ratio(Rb/Ra) mode.
		DB     81H             
                DB     0B0H                ; Set the V5 output voltage electronic volume register.
		DB     2FH                 ; Select internal power supply operating mode.
		DB     7FH                 ; Sets the display RAM display start line address.
                DB     0B0H                ; Sets the display RAM page address.
		DB     10H                 ; Sets the most significant 4  bits of the display
                                           ; RAM column address.
                DB     00H                 ; Sets the least significant 4 bits of the display
                                           ; RAM column address.`
PTN_E:                 DB     0FFH,08H,08H,08H,08H,08H;  E  
PTN_H1:                DB     0FFH,04H,04H,04H,0FFH  ;  H
PTN_H2:                DB     0FFH,22H,22H,22H,0FFH
PTN_H3:                DB     0FFH,02H,02H,02H,0FFH
PTN_H4:                DB     0FFH,81H,81H,81H,0FFH
PTN_H5:                DB     0FFH,40H,40H,40H,0FFH
PTN_H6:                DB     0FFH,44H,44H,44H,0FFH
PTN_H7:                DB     0FFH,20H,20H,20H,0FFH
PTN_H8:                DB     0FFH,10H,10H,10H,0FFH
PTN_H9:                DB     0FFH,00H,00H,00H,0FFH
PTN_I:          DB     00H,41H,7FH,41H,00H,00H ;  I
PTN_C:          DB     14H,7FH,14H,7FH,14H,00H ;  #
				
MODEL_NO:       DB     1FH,20H,40H,20H,1FH,00H ;  V
		DB     7FH,08H,14H,22H,41H,00H ;  K
		DB     47H,45H,45H,45H,39H,00H ;  5
		DB     41H,49H,4DH,4BH,31H,00H ;  3
		DB     47H,45H,45H,45H,39H,00H ;  5
		DB     3EH,41H,41H,41H,3EH,00H ;  0
		
VER_NO:         DB     7FH,09H,09H,09H,76H,00H ;  R
		DB     7FH,49H,49H,49H,41H,00H ;  E
		DB     1FH,20H,40H,20H,1FH,00H ;  V
		DB     60H,60H,00H,00H,00H,00H ;  .
		DB     7CH,12H,11H,12H,7CH,00H ;  A
		
IDW1_MESS:      DB     00H,00H,00H,00H,00H,01H,01H,0FFH,01H,01H,00H,00H,00H,00H,00H,00H               ; I               
                DB     00H,00H,01H,01H,0FFH,01H,01H,01H,01H,02H,04H,08H,0F0H,00H,00H,00H,00H,00H      ; D
                DB     00H,0FFH,00H,00H,00H,00H,00H,00H,0FFH,00H,00H,00H,00H,00H,00H,0FFH             ; W
IDW2_MESS:      DB     00H,00H,00H,00H,00H,80H,80H,0FFH,80H,80H,00H,00H,00H,00H,00H,00H               ; I
                DB     00H,00H,80H,80H,0FFH,80H,80H,80H,80H,40H,20H,10H,0FH,00H,00H,00H,00H,00H       ; D
                DB     00H,1FH,20H,40H,80H,80H,40H,20H,1FH,20H,40H,80H,80H,40H,20H,1FH                ; W
      END

		

⌨️ 快捷键说明

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