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

📄 l045w1.asm

📁 LCM045液晶显示器驱动及测试程序,采用汇编编写
💻 ASM
字号:
;PCON    EQU     87H
;***********LCD10-3V TEST **************************************
;/CS=P3.5  /WR=P2.2  DATA=P2.1    ********************
;RAM 20H:COMMAND CODE                       ********************
;RAM 21H: LCD ADDR***
;RAM 25H: LCD DATA***
		ORG 0000H
		JMP START
		ORG 0100H

START:          MOV P1,#0FFH
		SETB P3.7
		CALL DLY500
		MOV 20H,#00101001B      ;INITIALIZE
		CALL WRCOM
		MOV 20H,#00011000B      ;RC
		CALL WRCOM
		MOV 20H,#00000001B      ;SYS EN
		CALL WRCOM
		MOV 20H,#00000011B      ;LCD ON
		CALL WRCOM

		MOV 21H,#00000000B      ;DISPLAY  8
		MOV 23H,21H
		MOV R6,#0
		CALL WRDD
		MOV 25H,#00001111B
		MOV 27H,25H
		CALL WRDA
		CALL WALP
		MOV P1,#0FFH
		CALL DLY1S
		CALL DLY1S
		CALL WR123
		MOV P1,#0FFH  
		CALL DLY1S
		CALL DLY1S
		CALL DLY1S
		CALL DLY1S

		MOV 21H,#00000000B      ;DISPLAY  COM1
		MOV 23H,21H
		MOV R6,#0
		CALL WRDD
		MOV 25H,#00000001B
		MOV 27H,25H
		CALL WRDA
		CALL WALP
		MOV P1,#0FFH
		CALL DLY1S
		CALL DLY1S
	
		MOV 21H,#00000000B      ;DISPLAY  COM2
		MOV 23H,21H
		MOV R6,#0
		CALL WRDD
		MOV 25H,#00000010B
		MOV 27H,25H
		CALL WRDA
		CALL WALP
		MOV P1,#0FFH
		CALL DLY1S
		MOV 21H,#00000000B      ;DISPLAY  COM3
		MOV 23H,21H
		MOV R6,#0
		CALL WRDD
		MOV 25H,#00000100B
		MOV 27H,25H
		CALL WRDA
		CALL WALP
		MOV P1,#0FFH
		CALL DLY1S

		MOV 21H,#00000000B      ;DISPLAY  COM4
		MOV 23H,21H
		MOV R6,#0
		CALL WRDD
		MOV 25H,#00001000B
		MOV 27H,25H
		CALL WRDA
		CALL WALP
		MOV P1,#0FFH
		CALL DLY1S
        CALL DLY1S

	   STOP:MOV 20H,#02H            ;LCD OFF
		CALL WRCOM
		MOV P1,#0FFH
		MOV 20H,#00H            ;SYS DI


		MOV 20H,#00001101B      ;ctc=0
		CALL WRCOM
		MOV 20H,#00001001B      ;BZ  ON
		CALL WRCOM
		MOV 20H,#01100000B      ;BZ =2KZ
		CALL WRCOM
		CALL DLY1S
		CALL DLY1S
		MOV 20H,#00001000B      ;BZ  OFF
		CALL WRCOM
		CALL DLY500
		setb p3.7                ;wdt led off
		setb p1.7               ;test wdt
		jnb p1.7,se0
		setb 20h
		jmp ss1
se0:            clr 20h
ss1:            nop
		MOV 20H,#10100110B      ;WDT=1/16 S
		CALL WRCOM
		MOV 20H,#00001101B      ;ctc=0
		CALL WRCOM
		MOV 20H,#00001110B      ;wdt=0
		CALL WRCOM
		MOV 20H,#00000111B      ;WDT ON
		CALL WRCOM
		MOV 20H,#10001000B      ;WDT/CTC EN
		CALL WRCOM
		CALL DLY500             ;1S
		CALL DLY500            ;1S
		jnb p1.7,se00
		setb 21h
		jmp ss2
se00:           clr 21h
ss2:            jnb 20h,ss3
		jb 21h,ss3
		clr p3.7                ;wdt  led ok
		CALL DLY1S
		CALL DLY1S
		jmp ss4
ss3:            setb p3.7               ;wdt led off
ss4:
		MOV 20H,#00000101B      ;WDT OFF
		CALL WRCOM
		MOV 20H,#10000000B      ;WDT/CTC DIS
		CALL WRCOM
		MOV 20H,#00001110B      ;WDT=0
		CALL WRCOM


		MOV 20H,#03H            ;LCD ON
		CALL WRCOM

		JMP START

;**** LCD DRIVER MODE  SUB. **************
;WRITE COMMAND SUB. ***********
WRCOM:  SETB P3.5               ;/CS=1
	NOP
	CALL DLY5
	CLR P3.5                 ;/CS=0
	CALL DLY5
	CALL DLY5
	CLR P2.2                ;/WR=0
	CALL DLY5
	NOP
	SETB P2.1               ;D=1 (100)
	CALL DLY5
	NOP
	SETB P2.2               ;/WR=1
	CALL DLY5
	NOP
	CLR P2.2                ;/WR=0
	CALL DLY5
	NOP
	CLR P2.1                ;D=0
	CALL DLY5
	NOP
	SETB P2.2               ;/WR=1
	CALL DLY5
	NOP
	CLR P2.2                ;/WR=0
	CALL DLY5
	NOP
	CLR P2.1                ;D=0
	CALL DLY5
	NOP
	SETB P2.2               ;/WR=1
	CALL DLY5
	NOP

	MOV R7,#9               ;LOOP=DATA 8 BIT +1X
	CLR C
LOOPWR: NOP
	CALL DLY5
	CLR P2.2
	CALL DLY5
	MOV A,20H
	RLC A
	MOV 20H,A
	JC WR1
	CLR P2.1                ;DATA=0
	CALL DLY5
	JMP WRR
WR1:    SETB P2.1               ;DATA=1
	CALL DLY5
WRR:    SETB P2.2
	CALL DLY5
	DJNZ R7,LOOPWR
	RET

;************************************************************
;LOOP WRDA SUB
WALP:
ST1:    MOV 21H,23H
	MOV A,21H
	ADD A,#00000100B
	MOV 21H,A
	MOV 23H,A
	INC R6
	CALL WRDD
	MOV 25H,27H
	CALL WRDA
	CJNE R6,#31,ST1
	RET

;WRITE DATA SUB.*********************************************
   WRDD:SETB P3.5               ;/CS=1
	CALL DLY5
	NOP
	CLR P3.5                ;/CS=0
	CALL DLY5
	CLR P2.2                ;/WR=0
	CALL DLY5
	SETB P2.1               ;D=1 (101)
	CALL DLY5
	SETB P2.2               ;/WR=1
	CALL DLY5
	CLR P2.2                ;/WR=0
	CALL DLY5
	CLR P2.1                ;D=0
	CALL DLY5
	CALL DLY5
	SETB P2.2               ;/WR=1
	CALL DLY5
	CALL DLY5
	CLR P2.2                ;/WR=0
	CALL DLY5
	SETB P2.1               ;D=1
	CALL DLY5
	SETB P2.2               ;/WR=1
	CALL DLY5
	MOV R4,#6
	MOV 22H,21H
ADDWR2: NOP
	CALL DLY5
	CLR P2.2
	CALL DLY5
	MOV A,21H
	RLC A
	MOV 21H,A
	JC WR11
	CLR P2.1                ;DATA=0
	CALL DLY5
	JMP WRR1
WR11:   NOP
	CALL DLY5
	SETB P2.1               ;DATA=1
	CALL DLY5
WRR1:   NOP
	CALL DLY5
	SETB P2.2
	CALL DLY5
	DJNZ R4,ADDWR2
	RET

;****************************************************
WRDA:   MOV R5,#4               ;LOOP=DATA 4 BIT
ADDWR3: NOP
	CALL DLY5
	CLR P2.2
	CALL DLY5
	MOV A,25H
	RRC A
	MOV 25H,A
	JC WR12
	CLR P2.1                ;DATA=0
	CALL DLY5
	JMP WRR2
WR12:   NOP
	CALL DLY5
	SETB P2.1               ;DATA=1
	CALL DLY5
WRR2:   NOP
	CALL DLY5
	SETB P2.2
	CALL DLY5
	DJNZ R5,ADDWR3
	RET

DLY5:   NOP
	NOP
	NOP
	NOP
	RET
DLY25M: MOV R1,#250             ;12M/2.5MS
DLOP:   CALL DLY5
    CALL DLY5
	CALL DLY5
	DJNZ R1,DLOP
	RET
DLY1S:  MOV R0,#20             ;1S
DLOP1:  CALL DLY25M
	CALL DLY25M
	DJNZ R0,DLOP1
	RET
DLY500: MOV R0,#5
DLOP11: CALL DLY25M
	CALL DLY25M
	DJNZ R0,DLOP11
	RET
;lianxv wr sub==============
wr123:  nop
	SETB P3.5               ;/CS=1
	CALL DLY5
	NOP
	CLR P3.5                 ;/CS=0
	CALL DLY5
	CLR P2.2                ;/WR=0
	CALL DLY5
	SETB P2.1               ;D=1 (101)
	CALL DLY5
	SETB P2.2               ;/WR=1
	CALL DLY5
	CLR P2.2                ;/WR=0
	CALL DLY5
	CLR P2.1                ;D=0
	CALL DLY5
	SETB P2.2               ;/WR=1
	CALL DLY5
	CLR P2.2                ;/WR=0
	CALL DLY5
	SETB P2.1                ;D=1
	CALL DLY5
	SETB P2.2               ;/WR=1
	CALL DLY5
	MOV R2,#6
LOOP:   CLR P2.2                ;/WR=0
	CALL DLY5
	CLR P2.1               ;D=0 
	CALL DLY5
	SETB P2.2               ;/WR=1
	CALL DLY5
	DJNZ R2,LOOP
	
	MOV R3,#32
	MOV DPTR,#TABDA
LOOP1:  CLR A
	MOVC A,@A+DPTR
	MOV 25H,A       
	CALL WRDA
	INC DPTR
	DJNZ R3,LOOP1
	RET
TABDA:  DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H  ;1 2 3 4 5 6
	DB 00H,00H,00H,00H,00H,02H,00H,0EH,0EH,03H,00H,0AH,07H,03H,06H,05H
	END

⌨️ 快捷键说明

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