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

📄 lcm240128_0611.asm

📁 lcm2401282液晶模块的调试程序
💻 ASM
字号:
;TEST TO 240128-1 (C240128-1)
;CONTROLLER: T6963C
;SIDE: 240 X 128 DOTS
;DRAW: WHY
;DATE: 1999.5.26
;****************************************************************
WR       BIT     P2.4          ;DEFINE LCM WRITE PIN
RD       BIT     P2.5          ;DEFINE LCM READ PIN
CE       BIT     P2.7          ;DEFINE LCM CHIP ENABLE PIN
CD       BIT     P2.3          ;DEFINE LCM COMMAND/DATA PIN
FS       BIT     P2.2          ;DEFINE LCM WORD PIN
RST      BIT     P3.3         ;DEFINE LCM RESET PIN
SLK      BIT     P3.4
DB0      BIT     P0.0    ;DEFINE LCM DATA BUS PIN
DB1      BIT     P0.1
DB2      BIT     P0.2
DB3      BIT     P0.3
DB4      BIT     P0.4
DB5      BIT     P0.5
DB6      BIT     P0.6
DB7      BIT     P0.7

COUNT   DATA    34H
CODE1    DATA    35H
O_X     DATA    36H
O_Y     DATA    37H

        ORG     0000H
START:  CLR     RST            ;RESET
        NOP
        SETB    RST
        CLR     FS           ;SET FS=0
	SETB	SLK
;TEXT HOME ADDRESS SET
        MOV     R2,#00H
        MOV     R3,#00H
        MOV     R4,#40H
        LCALL   PR1
;TEXT AREA SET
        MOV     R2,#1EH         ;TEXT AREA 30 COLUMNS
        MOV     R3,#00H
        MOV     R4,#41H
        LCALL   PR1
;GRAPHIC HOME ADDRESS SET
        MOV     R2,#00H
        MOV     R3,#04H
        MOV     R4,#42H
        LCALL   PR1
;GRAPHIC AREA SET
        MOV     R2,#1EH         ;GRAPHIC AREA 30 COLUMNS
        MOV     R3,#00H
        MOV     R4,#43H
        LCALL   PR1
        MOV     R4,#80H         ;"OR" MODE
        LCALL   PR12
        MOV     R4,#0A7H        ;CURSOR PATTERN SET 3 LINES
        LCALL   PR12
START1:
        LCALL   CLEAR           ;START TO TEST
START2: MOV     R4,#9FH         ;DISPLAY ON
        LCALL   PR12
	;LCALL	TEST
        MOV     COUNT,#04H
        LCALL   CGRAM
        MOV      CODE1,#80H
        ;MOV     CODE1,#00H
        MOV     O_X,#03H
        MOV     O_Y,#02H
        LCALL   WRI_CT
        ;MOV     CODE1,#84H
        ;MOV     O_X,#07H
        ;MOV     O_Y,#02H
        ;LCALL   WRI_CT
        ;LCALL   WR_CC
        JMP     START2

DELAY:  MOV     40H,#1FH        ;DELAY TIME
DELAY1: MOV     41H,#30H
DELAY2: DJNZ    41H,DELAY2
        DJNZ    40H,DELAY1
	RET

;READ BUSY_SIGNAL
PR0:    CLR     CE            ;SET CE=L
        SETB    CD            ;SET CD=H
        SETB    WR            ;SET WR=H
        ORL     P0,#0FFH
        CLR     RD            ;SET RD=L
        MOV     A,P0
        SETB    RD            ;SET RD=H
	;MOV	R3,A
        RET

;READ BUSY_SIGNAL ,OK OR NOT ?
PR01:   CALL   PR0
        JNB     ACC.0,PR01      ;STA0 OK?
        JNB     ACC.1,PR01      ;STA1 OK?
        RET
PR02:   CALL   PR0
        JNB     ACC.2,PR03      ;STA2 OK?
        RET
PR03:   CALL   PR0
        JNB     ACC.3,PR03      ;STA3 OK?
        RET
PR06:   CALL   PR0
        JB      ACC.6,ERR
        RET
ERR:    LJMP    START
        RET

;SEND OUT INSTRUCTION AND DATA TO LCM
PR1:    CALL    PR01            ;DOUBLE BYTE PARAMETER INST. PORT
        MOV     A,R2
        CALL    PR14
PR11:   CALL    PR01            ;SINGLE BYTE PARAMETER INST. PORT
        MOV     A,R3
        CALL    PR14
PR12:   CALL    PR01            ;NO PARAMETER INST. PORT
        MOV     A,R4
        JMP     PR15
PR14:   CLR     CE            ;SET CE=L
        CLR     CD            ;SET CD=L
        JMP     PR16
PR15:   CLR     CE            ;SET CE=L
        SETB    CD            ;SET CD=H
PR16:   SETB    RD            ;SET RD=H
        CLR     WR            ;SET WR=L
        MOV     P0,A
        NOP
        SETB    WR            ;SET WR=H
        RET

CLEAR:  MOV     R2,#00H         ;CLEAR DISPLAY RAM
        MOV     R3,#00H
        MOV     R4,#24H
        LCALL   PR1
        MOV     R4,#0B0H
        LCALL   PR12
        MOV     R6,#0A2H
CLEAR1: MOV     R5,#1EH
CLEAR2: LCALL   PR03
        MOV     A,#00H
        LCALL   PR14
        DJNZ    R5,CLEAR2
        DJNZ    R6,CLEAR1
        MOV     R4,#0B2H
        LCALL   PR12
        RET



WR_CC:  MOV     A,O_Y
        MOV     B,#1EH
        MUL     AB
        ADD     A,O_X
        MOV     O_X,A
        MOV     A,B
        ADDC    A,#04H
        MOV     O_Y,A
        MOV     DPTR,#CGTAB
        MOV     A,CODE1
        MOV     B,#20H
        MUL     AB
        ADD     A,DPL
        MOV     DPL,A
        MOV     A,B
        ADDC    A,DPH
        MOV     DPH,A
        PUSH    DPH
        PUSH    DPL
        MOV     COUNT,#10H
WR_CC1: MOV     R2,O_X
        MOV     R3,O_Y
        MOV     R4,#24H
        LCALL   PR1
        POP     DPL
        POP     DPH
        CLR     A
        ;MOV     A,#00H
        MOVC    A,@A+DPTR
        MOV     R3,A
        MOV     A,#10H
        MOVC    A,@A+DPTR
        ;MOV      A,#00H
        MOV     R2,A
        INC     DPTR
        PUSH    DPH
        PUSH    DPL
        MOV     R4,#0C0H
        LCALL   PR11
        MOV     A,R2
	MOV	R3,A
	LCALL	PR11
	MOV	A,#1EH
	ADD	A,O_X
	MOV	O_X,A
	CLR	A
	ADDC	A,O_Y
	MOV	O_Y,A
	DJNZ    COUNT,WR_CC1
        POP     ACC
        POP     ACC
        RET

CGRAM:	MOV    R2,#03H      ;设置 CGRAM 偏置地址
	MOV    R3,#00H
	MOV    R4,#22H
	LCALL  PR1
	MOV    R2,#00H;设置存储器地址指针
	MOV    R3,#1CH
	MOV    R4,#24H
	LCALL  PR1
	MOV    R4,#0B0H
	LCALL  PR12
        MOV    A,COUNT
        MOV    B,#08H
        MUL    AB
        MOV    COUNT,A
        INC    B
	MOV    DPTR,#CGTAB
	PUSH   DPH
	PUSH   DPL
CGRAM1: LCALL   PR03
	POP    DPL
	POP    DPH
	CLR    A
	MOVC   A,@A+DPTR
	INC    DPTR
	PUSH   DPH
	PUSH   DPL
	LCALL  PR14
	DJNZ   COUNT,CGRAM1
        DJNZ   B,CGRAM1
	MOV    R4,#0B2H
	LCALL  PR12
        POP    ACC
        POP    ACC
	RET

WRI_CT:
        MOV A,O_Y
        MOV B,#20H
        MUL AB
        ADD A,O_X
        MOV O_X,A
	MOV R2,A
        MOV A,B
	ADDC A,#00H
	MOV  O_Y,A
        MOV  R3,A
        MOV  R4,#24H
        LCALL  PR1
        MOV    A,CODE1
        MOV    R3,A
        MOV    R4,#0C0H
        LCALL  PR11
        MOV    A,CODE1
        ADD    A,#02H
        MOV    R3,A
        LCALL  PR11
        MOV    A,#1EH
        ADD    A,O_X
        MOV    R2,A
        CLR    A
        ADDC   A,O_Y
        MOV    R3,A
        MOV    R4,#24H
        LCALL  PR1
        MOV    A,CODE1
        INC    A
        MOV    R3,A
        MOV    R4,#0C0H
        LCALL  PR11
        MOV    A,CODE1
        ADD    A,#03H
        MOV    R3,A
        LCALL  PR11
	NOP
	RET

TEST:   MOV     DPTR,#ADATA     ;TEST 1
        ;MOV     65H,DPH
        ;MOV     66H,DPL
        ;MOV     R0,#01H
TEST0:  MOV     R2,#0AH
        MOV     R3,#04H
        MOV     R4,#24H
        LCALL   PR1
        MOV     R4,#0B0H
        LCALL   PR12
        ;MOV     R1,#10H
TEST1:  ;MOV     A,65H
        ;MOV     67H,A
        ;MOV     A,66H
        ;MOV     68H,A
        MOV     R2,#08H
TEST2:  ;MOV     DPH,67H
        ;MOV     DPL,68H
        ;MOV     R3,#1EH
TEST3:  LCALL   PR03
        MOV     A,#00H
        MOVC    A,@A+DPTR
        LCALL   PR14
        ;DJNZ    R3,TEST3
        ;MOV     DPH,67H
        ;MOV     DPL,68H
        INC     DPTR
        ;MOV     67H,DPH
        ;MOV     68H,DPL
        DJNZ    R2,TEST2
        ;DJNZ    R1,TEST1
        MOV     R4,#0B2H
        LCALL   PR12
        ;MOV     A,66H
        ;ADD     A,#08H
        ;MOV     66H,A
        ;JNC     TEST4
        ;INC     65H
TEST4:  ;DJNZ    R0,TEST0
        RET



ADATA:
        DB  011H,055H,023H,055H,055H,055H,055H,055H
CGTAB:
DB 001H,001H,001H,0FFH,003H,003H,005H,005H
DB 009H,011H,02FH,0C1H,001H,001H,001H,000H
DB 000H,000H,000H,0FEH,080H,040H,040H,020H
DB 010H,018H,0EEH,004H,000H,000H,000H,000H






        END

⌨️ 快捷键说明

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