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

📄 24064(t6963).asm

📁 用51驱动T6963(240*64DOTS)液晶模块
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;TEST TO 24064
;CONTROLLER: T6963C
;SIDE: 240 X 64 DOTS

;****************************************************************
W_R      EQU     P3.6          ;DEFINE LCM W_RITE PIN          
R_D      EQU     P3.7          ;DEFINE LCM READ PIN 
CE       EQU     P2.7          ;DEFINE LCM CHIP ENABLE PIN 
CD       EQU     P2.0          ;DEFINE LCM COMMAND/DATA PIN 
FS       EQU     P3.5           ;DEFINE LCM WOR_D PIN 
RST      EQU     P2.3            ;DEFINE LCM RESET PIN 
;DB0-DB7  REG     P0.0-P0.7     DEFINE LCM DATA BUS PIN 
        ORG     0000H
	JMP     START
	ORG     0013H
        JMP     HALT
        ORG     0040H
        
HALT:   JMP     $   
START:  CLR     RST            ;RESET  
        NOP
        SETB    RST
        CLR     FS       
;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   80H     
        LCALL   PR12           
        MOV     R4,#0A3H        ;CURSOR PATTERN SET 3 LINES  
        LCALL   PR12           
START1: MOV     R2,#00H        
        MOV     R3,#04H        
        MOV     R4,#42H 
        LCALL   PR1
        LCALL   CLEAR           ;START TO TEST
        MOV     R4,#98H         ;DISPLAY ON
        LCALL   PR12 
        
	SETB    EA              ;HALT ENABLE
        SETB    IT1
        SETB    EX1
  
	LCALL   TEST
	LCALL   DELAYL
        LCALL   CLEAR
        LCALL   WRCHAR 
	LCALL   DELAYL
        LCALL   CLEAR
        LCALL   DRAW 
       	LCALL   DELAYL  
	JMP     START


	
DELAY:  MOV     40H,#1FH        ;DELAY TIME      
DELAY1: MOV     41H,#30H        
DELAY2: DJNZ    41H,DELAY2      
        DJNZ    40H,DELAY1      
	RET                     
DELAYL:  MOV     42H,#0AH
DELAYL3: MOV     40H,#0FFH        ;DELAY TIME      
DELAYL1: MOV     41H,#0FFH        
DELAYL2: DJNZ    41H,DELAYL2      
        DJNZ    40H,DELAYL1
        DJNZ    42H,DELAYL3
	RET

                                
;READ BUSY_SIGNAL    
PR0:    CLR     CE            ;SET CE=L 
        SETB    CD            ;SET C/D=H
        SETB    W_R            ;SET W_R=H
        ORL     P0,#0FFH       
        CLR     R_D            ;SET R_D=L
        MOV     A,P0           
        SETB    R_D            ;SET R_D=H
        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 C/D=L
        JMP     PR16
PR15:   CLR     CE            ;SET CE=L
        SETB    CD            ;SET C/D=H
PR16:   SETB    R_D            ;SET R_D=H
        CLR     W_R            ;SET W_R=L
        MOV     P0,A            
        SETB    W_R            ;SET W_R=H
        RET

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

	

TEST:   MOV     R4,#84H       
        LCALL   PR12  
        MOV     R4,#9FH       
        LCALL   PR12  
        MOV     R2,#00H
        MOV     R3,#00H
        MOV     R4,#24H        
        LCALL   PR1
        MOV     R4,#0B0H       
        LCALL   PR12
	MOV     R2,#08H
TEST1:	MOV     R3,#50H
        MOV     R7,#10H
TEST2:  MOV     A,R7
	LCALL   PR14
	INC     R7
	DJNZ    R3,TEST2
	DJNZ    R2,TEST1
        MOV     R4,#0B2H       
        LCALL   PR12  
       	RET

WRCHAR: MOV     R4,#80H       
        LCALL   PR12  
        MOV     R4,#9CH       
        LCALL   PR12  
        MOV     R2,#00H
        MOV     R3,#00H
        MOV     R4,#24H        
        LCALL   PR1
        MOV     R4,#0B0H       

⌨️ 快捷键说明

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