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

📄 ocm240128.txt

📁 lcd160*80的程序
💻 TXT
字号:
;                    240128接口程序(MCS51总线方式)
;***************************************************************************
;*  Title : Accessing to LCD-CONTROLLER                                    *
;*  Date :  2003.10.01                                                     *
;*  Support telephone:  0755-61373686,13322923820                          *
;*  Support fax :0755-61373686         E-mail:SZCHL2002@963.NET            *
;*  Create by :陈海龙                                                      *
;*  DESCRIPTION:This subroutine shows how to write data to LCD-CONTROLLER  *
;***************************************************************************
;连线图: *LCM---8031* *LCM---8031* *LCM------------8031* *LCM----------8031*
;        *DB0---P0.0* *DB4---P0.4* *C/D-------------P2.0* */RD---------P3.7*
;        *DB1---P0.1* *DB5---P0.5* *CE--------------P2.1* 
;        *DB2---P0.2* *DB6---P0.6* */RW-------------P3.6
;        *DB3---P0.3* *DB7---P0.7* */RST------------VDD       (详见说明书)
;注:8031的晶振频率为12MHz
;**************************************************************************
XPOS    EQU     20H             ;列方向地址指针(用于LCDPOS子程序)
YPOS    EQU     21H             ;行方向地址指针(用于LCDPOS子程序)
BUFFER	EQU	22H
BUFFERH	EQU	23H
;CEPIN		P2.1
;C/DPIN		P2.0		0:DATA 	1:COMMAND
CADDR	EQU	0100H
DADDR	EQU	0000H

        ORG     0000H
        JMP     START
START:  MOV     SP,#60H
MAIN:        
        CALL    LCDRESET
        MOV     A,#55H
        CALL    LCDFILL
        MOV	A,#0FFH
        CALL	LCDFILL
        CALL    MAP
        MOV     A,#01H
        CALL    LCDFILL
        MOV	DPTR,#STRING1
        CALL	PUTSTR
        CALL	PUTSTR
        MOV     A,#00H
        CALL    LCDFILL
        CALL    TEXTON
        JMP     START 
TEXTON: 
        MOV     A,#97H                      ;TEXT   ON
        CALL    LCDWC                       ;(文本显示打开) 
        MOV	R2,#30
	MOV	R3,#00H
	MOV	A,#41H                      ;TEXT AREA  SET
	CALL	LCDWC3                      ;(文本区域设置)  
	MOV	R2,#00H
	MOV	R3,#00H
	MOV	A,#40H                      ;TEXT HOME ADDRESS SET  
	CALL	LCDWC3                      ;(文本区首地址)
        MOV     DPTR,#0000H
      	MOV     R1,#00H
      	MOV     XPOS,#0
      	MOV     YPOS,#0
TEXT:	MOV     20H,R1
        MOV	A,20H
	MOV	20H,A
        CALL    LCDWRITE
        INC     R1
        CALL    DELAY
        CJNE    R1,#80H,TEXT
        RET	
DELAY400MS:
        MOV     R0,#20              ;延时子程序(400MS)
DL4_PA: MOV     R1,#100
DL4_PB: MOV     R2,#100
        DJNZ    R2,$
        DJNZ    R1,DL4_PB
        DJNZ    R0,DL4_PA
        RET
DELAY:
	MOV	R6,#2
DLY_PA:	MOV	R5,#0
DLY_PB:	MOV	R4,#0
	DJNZ	R4,$
	DJNZ	R5,DLY_PB
	DJNZ	R6,DLY_PA
	RET        
GETSTRCHAR:        
GSC_PA:	
	CLR	A
	MOVC	A,@A+DPTR
	INC	DPTR
	MOV	B,A
	INC	A
	CLR	C
	JZ	GSC_LAX
	CLR	A
	MOVC	A,@A+DPTR
	INC	DPTR
	SETB	C
GSC_LAX:	
	RET
PUTSTR:
	CALL	DELAY
	CALL	GETSTRCHAR
	PUSH	DPL
	PUSH	DPH
	JNC	PSR_LAX
	JNB	B.7,PSR_LBY
;CHINESE:
	CALL	HZKPOS
	CALL	PUTCHARDOT
	CALL	PUTCHARDOT
	JMP	PSR_LBX
PSR_LBY:
;ENGLISH:
	CALL	HZKPOS
	CALL	PUTCHARDOT
PSR_LBX:
	POP	DPH
	POP	DPL
	JMP	PUTSTR
PSR_LAX:POP	DPH
	POP	DPL	
	RET
PUTCHARDOT:
	MOV	R7,#16
PAC_PA:
	CLR	A
	MOVC	A,@A+DPTR
	CALL	LCDWRITE
	INC	YPOS
	INC	DPTR
	DJNZ	R7,PAC_PA
	CLR	C
	MOV	A,XPOS
	SUBB	A,#29
	JNZ	PAC_LAY
	MOV	XPOS,#0
	JMP	PAC_LAX
PAC_LAY:INC	XPOS	
	CLR	C
	MOV	A,YPOS
	SUBB	A,#16
        MOV	YPOS,A
PAC_LAX:	
	RET
HZKPOS:
	MOV	R2,#5
HTP_PA:	
	CLR	C
	RLC	A
	XCH	A,B
	RLC	A
	XCH	A,B
	DJNZ	R2,HTP_PA
	
	MOV	DPTR,#HZKDOT
	ADD	A,DPL
	MOV	DPL,A
	MOV	A,B
	ADDC	A,DPH
	MOV	DPH,A
	RET	
LCDFILL:                        ;LCD整屏显示A的内容
        MOV     R7,A
        MOV     YPOS,#0
LFL_PB: MOV     XPOS,#0
LFL_PA: MOV     A,R7
        CALL    LCDWRITE        ;定位并写数据
        CALL    CUSORNEXT
        MOV     A,XPOS
        JNZ     LFL_PA          ;XPOS<128则循环(128列)
        MOV     A,YPOS
        JNZ     LFL_PB          ;YPOS<8则循环(8页)
        RET
DEMO:
	MOV	XPOS,#0
	MOV	YPOS,#0
	MOV	R7,#128
DMO_PB:	
	MOV	R6,#30
DMO_PA:	
	CLR	A
	MOVC	A,@A+DPTR
	CALL	LCDWRITE
	CALL	NEXTADDR
	INC	DPTR
	DJNZ	R6,DMO_PA
	DJNZ	R7,DMO_PB
	RET
NEXTADDR:
	INC	XPOS
	MOV	A,XPOS
	CJNE	A,#30,NTL_LAX
	MOV	XPOS,#0
	INC	YPOS
	ANL	YPOS,#7FH
NTL_LAX:	
	RET	
LCDWRITE:                    ;定位并写数据子程序
        CALL    LCDPOS       ;内部写数指针定位
        CALL    LCDWDATA        ;写数据
        RET

CUSORNEXT:
	INC	XPOS
	MOV	A,XPOS
	CJNE	A,#30,NTR_LAX
	MOV	XPOS,#0
	INC	YPOS
	ANL	YPOS,#7FH
NTR_LAX:	
	RET	
LCDPOS:
	PUSH	ACC
	PUSH	B
	MOV	A,YPOS		;R2R3=30*YPOS+XPOS
	MOV	B,#30
	MUL	AB
	ADD	A,XPOS
	MOV	R2,A
	MOV	A,B
	ADDC	A,#0
	MOV	R3,A
   	MOV	A,#24H
   	CALL	LCDWC3
   	POP	B
   	POP	ACC
   	RET	
LCDWDATA:                         ;WRITE DATA(ADDRESS+1) 
	PUSH	ACC
	MOV	R2,A
	MOV	A,#0C0H
	CALL	LCDWC2
	POP	ACC
	RET   	
LCDRESET:  
	MOV	A,#80H                ;OR MODE
	CALL	LCDWC
 	MOV     A,#98H                ;GRAPHICS MODE
	CALL    LCDWC
	MOV     R2,#00H               
	MOV     R3,#00H
	MOV     A,#42H
	CALL    LCDWC3 
	MOV     R2,#30      
	MOV     R3,#00H
	MOV     A,#43H
	CALL    LCDWC3 
	RET
LCDREAD:
	CALL	LCDPOS
	CALL	LCDRDATA
	RET
LCDRDATA:
	MOV	A,#0C1H
	CALL	LCDWC
	CALL	LCDRD
	RET	
LCDWBIT:
	ORL	A,#0F0H
	MOV	ACC.3,C
	CALL	LCDWC
	RET	
WTI_PB:
	NOP
	JMP	WTI_PA

WAITIDLE:
	PUSH	ACC
WTI_PA:	CALL	LCDRC
	JNB	ACC.0,WTI_PB
	JNB	ACC.1,WTI_PB
	POP	ACC
	RET	
WAITAIDLE:
	PUSH	ACC
WTW_PA:	CALL	LCDRC
	JNB	ACC.2,WTW_PA
	JNB	ACC.3,WTW_PA
	POP	ACC
	RET	
LCDWC3:	PUSH	ACC
	MOV	A,R2
	CALL	LCDWD
	MOV	A,R3
	CALL	LCDWD
	POP	ACC
	CALL	LCDWC
	RET
LCDWC2:	PUSH	ACC
	MOV	A,R2
	CALL	LCDWD
	POP	ACC
	CALL	LCDWC
	RET
LCDWC:	CALL	WAITIDLE
	PUSH	DPH
	PUSH	DPL
	MOV	DPTR,#CADDR
	MOVX	@DPTR,A
	POP	DPL
	POP	DPH
	RET	
LCDWD:	CALL	WAITIDLE
	PUSH	DPH
	PUSH	DPL
	MOV	DPTR,#DADDR
	MOVX	@DPTR,A
	POP	DPL
	POP	DPH
	RET	
LCDRC:	
	PUSH	DPH
	PUSH	DPL
	MOV	DPTR,#CADDR
	MOVX	A,@DPTR
	POP	DPL
	POP	DPH
	RET      
LCDRD:	CALL	WAITIDLE
	PUSH	DPH
	PUSH	DPL
	MOV	DPTR,#DADDR
	MOVX	A,@DPTR
	POP	DPL
	POP	DPH
	RET	
MAP:	MOV	BUFFER,#0
	MOV	BUFFERH,#0H
	MOV	DPTR,#BITMAP2
        CALL	DEMO
        CALL    SDELAY
        MOV	DPTR,#30*128
        MOV	BUFFER,DPL
        MOV	BUFFERH,DPH
        MOV	DPTR,#BITMAP
        CALL	DEMO
        CALL    SDELAY
        MOV	DPTR,#60*128
        MOV	BUFFER,DPL
        MOV	BUFFERH,DPH
        MOV	DPTR,#BITMAP2
        CALL	DEMO
        CALL    SDELAY
        RET
SDELAY:	
SDLY_PA:	
	MOV	R5,#30
SDLY_PB:	
	MOV	R4,#100
	DJNZ	R4,$
	DJNZ	R5,SDLY_PB
	DJNZ	R6,SDLY_PA
	RET        
BITMAP:	
	INCLUDE 	"B2401282"
BITMAP2:
	INCLUDE		"B2401281"	

HZKDOT:	
	;(d3d0H)(有)(8000)
DB	 02H, 02H,0ffH, 04H, 04H, 0fH, 08H, 18H
DB	 2fH, 48H, 88H, 0fH, 08H, 08H, 08H, 08H
DB	 00H, 04H,0feH, 00H, 10H,0f8H, 10H, 10H
DB	0f0H, 10H, 10H,0f0H, 10H, 10H, 50H, 20H
;(cfdeH)(限)(8001)
DB	 00H, 7dH, 45H, 49H, 49H, 51H, 49H, 49H
DB	 45H, 45H, 45H, 69H, 51H, 41H, 41H, 41H
DB	 08H,0fcH, 08H, 08H,0f8H, 08H, 08H,0f8H
DB	 04H, 88H, 50H, 20H, 10H, 4eH, 84H, 00H
;(b9abH)(公)(8002)
DB	 00H, 00H, 04H, 04H, 08H, 08H, 11H, 21H
DB	0c2H, 02H, 04H, 08H, 10H, 1fH, 00H, 00H
DB	 00H, 80H, 80H, 40H, 40H, 20H, 10H, 0eH
DB	 04H, 00H, 00H, 40H, 20H,0f0H, 10H, 00H
;(cbbeH)(司)(8003)
DB	 00H, 3fH, 00H, 00H,0ffH, 00H, 00H, 3fH
DB	 20H, 20H, 20H, 20H, 3fH, 20H, 00H, 00H
DB	 08H,0fcH, 08H, 48H,0e8H, 08H, 88H,0c8H
DB	 88H, 88H, 88H, 88H, 88H, 88H, 28H, 10H
;(d3d0H)(有)(8004)
DB	 02H, 02H,0ffH, 04H, 04H, 0fH, 08H, 18H
DB	 2fH, 48H, 88H, 0fH, 08H, 08H, 08H, 08H
DB	 00H, 04H,0feH, 00H, 10H,0f8H, 10H, 10H
DB	0f0H, 10H, 10H,0f0H, 10H, 10H, 50H, 20H
;(cfdeH)(限)(8005)
DB	 00H, 7dH, 45H, 49H, 49H, 51H, 49H, 49H
DB	 45H, 45H, 45H, 69H, 51H, 41H, 41H, 41H
DB	 08H,0fcH, 08H, 08H,0f8H, 08H, 08H,0f8H
DB	 04H, 88H, 50H, 20H, 10H, 4eH, 84H, 00H
;(b9abH)(公)(8006)
DB	 00H, 00H, 04H, 04H, 08H, 08H, 11H, 21H
DB	0c2H, 02H, 04H, 08H, 10H, 1fH, 00H, 00H
DB	 00H, 80H, 80H, 40H, 40H, 20H, 10H, 0eH
DB	 04H, 00H, 00H, 40H, 20H,0f0H, 10H, 00H
;(cbbeH)(司)(8007)
DB	 00H, 3fH, 00H, 00H,0ffH, 00H, 00H, 3fH
DB	 20H, 20H, 20H, 20H, 3fH, 20H, 00H, 00H
DB	 08H,0fcH, 08H, 48H,0e8H, 08H, 88H,0c8H
DB	 88H, 88H, 88H, 88H, 88H, 88H, 28H, 10H
;(d3d0H)(有)(8008)
DB	 02H, 02H,0ffH, 04H, 04H, 0fH, 08H, 18H
DB	 2fH, 48H, 88H, 0fH, 08H, 08H, 08H, 08H
DB	 00H, 04H,0feH, 00H, 10H,0f8H, 10H, 10H
DB	0f0H, 10H, 10H,0f0H, 10H, 10H, 50H, 20H
;(cfdeH)(限)(8009)
DB	 00H, 7dH, 45H, 49H, 49H, 51H, 49H, 49H
DB	 45H, 45H, 45H, 69H, 51H, 41H, 41H, 41H
DB	 08H,0fcH, 08H, 08H,0f8H, 08H, 08H,0f8H
DB	 04H, 88H, 50H, 20H, 10H, 4eH, 84H, 00H
;(b9abH)(公)(800a)
DB	 00H, 00H, 04H, 04H, 08H, 08H, 11H, 21H
DB	0c2H, 02H, 04H, 08H, 10H, 1fH, 00H, 00H
DB	 00H, 80H, 80H, 40H, 40H, 20H, 10H, 0eH
DB	 04H, 00H, 00H, 40H, 20H,0f0H, 10H, 00H
;(cbbeH)(司)(800b)
DB	 00H, 3fH, 00H, 00H,0ffH, 00H, 00H, 3fH
DB	 20H, 20H, 20H, 20H, 3fH, 20H, 00H, 00H
DB	 08H,0fcH, 08H, 48H,0e8H, 08H, 88H,0c8H
DB	 88H, 88H, 88H, 88H, 88H, 88H, 28H, 10H
;(d3d0H)(有)(800c)
DB	 02H, 02H,0ffH, 04H, 04H, 0fH, 08H, 18H
DB	 2fH, 48H, 88H, 0fH, 08H, 08H, 08H, 08H
DB	 00H, 04H,0feH, 00H, 10H,0f8H, 10H, 10H
DB	0f0H, 10H, 10H,0f0H, 10H, 10H, 50H, 20H
;(cfdeH)(限)(800d)
DB	 00H, 7dH, 45H, 49H, 49H, 51H, 49H, 49H
DB	 45H, 45H, 45H, 69H, 51H, 41H, 41H, 41H
DB	 08H,0fcH, 08H, 08H,0f8H, 08H, 08H,0f8H
DB	 04H, 88H, 50H, 20H, 10H, 4eH, 84H, 00H
;(b9abH)(公)(800e)
DB	 00H, 00H, 04H, 04H, 08H, 08H, 11H, 21H
DB	0c2H, 02H, 04H, 08H, 10H, 1fH, 00H, 00H
DB	 00H, 80H, 80H, 40H, 40H, 20H, 10H, 0eH
DB	 04H, 00H, 00H, 40H, 20H,0f0H, 10H, 00H

STRING1:	DB	 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H, 80H, 04H, 80H, 05H, 80H, 06H, 80H, 07H, 80H, 08H, 80H, 09H, 80H, 0aH, 80H, 0bH, 80H, 0cH, 80H, 0dH, 80H, 0eH, 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H, 80H, 04H, 80H, 05H, 80H, 06H, 80H, 07H, 80H, 08H, 80H, 09H, 80H, 0aH, 80H, 0bH, 80H, 0cH, 80H, 0dH, 80H, 0eH, 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H, 80H, 04H, 80H, 05H, 80H, 06H, 80H, 07H, 80H, 08H, 80H, 09H, 80H, 0aH, 80H, 0bH, 80H, 0cH, 80H, 0dH, 80H, 0eH, 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H, 80H, 04H, 80H, 05H, 80H, 06H, 80H, 07H, 80H, 08H, 80H, 09H, 80H, 0aH, 80H, 0bH, 80H, 0cH, 80H, 0dH, 80H, 0eH, 0ffH
STRING2:	DB	 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H, 80H, 04H, 80H, 05H, 80H, 06H, 80H, 07H, 80H, 08H, 80H, 09H, 80H, 0aH, 80H, 0bH, 80H, 0cH, 80H, 0dH, 80H, 0eH, 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H, 80H, 04H, 80H, 05H, 80H, 06H, 80H, 07H, 80H, 08H, 80H, 09H, 80H, 0aH, 80H, 0bH, 80H, 0cH, 80H, 0dH, 80H, 0eH, 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H, 80H, 04H, 80H, 05H, 80H, 06H, 80H, 07H, 80H, 08H, 80H, 09H, 80H, 0aH, 80H, 0bH, 80H, 0cH, 80H, 0dH, 80H, 0eH, 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H, 80H, 04H, 80H, 05H, 80H, 06H, 80H, 07H, 80H, 08H, 80H, 09H, 80H, 0aH, 80H, 0bH, 80H, 0cH, 80H, 0dH, 80H, 0eH, 0ffH
        END




⌨️ 快捷键说明

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