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

📄 l0825.asm

📁 青云科技的液晶模块lcm0825汇编原程序
💻 ASM
字号:
PCON    EQU     87H
;*********    LCD10-3V TEST    **********************
;/CS=LCD_CS  /WR=LCD_CLK  DATA=LCD_DATA         ********************
;RAM 20H:COMMAND CODE                       ********************
;RAM 21H: LCD ADDR ***
;RAM 25H: LCD DATA ***
LCD_DATA	EQU	P1.2
LCD_CLK		EQU	P1.1
LCD_CS		EQU	P1.0
		ORG  0000H
		JMP  START
		ORG  0100H

START:          MOV  P1,#0FFH
		SETB P3.7
		CALL DLY500
		MOV  20H,#00101001B      ;INITIALIZE
		CALL WRCOM
		MOV  20H,#00010100B      ;32678HZ
		CALL WRCOM
		MOV  20H,#00000001B      ;SYS EN
		CALL WRCOM
		MOV  20H,#00000011B      ;LCD ON
		CALL WRCOM
		MOV  21H,#00000000B      ;CLEAR DISPLAY 
		MOV  23H,21H
		MOV  R6,#0
		CALL WRDD
		MOV  25H,#00000000B      ;FIRST ADDR
		MOV  27H,25H
		CALL WRDA
		CALL WALP
		CALL DLY1S

		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 DLY500              ;DISPLAY  123
		MOV  P1,#0FFH
		CALL DLY1S
		CALL WR123
		MOV  P1,#0FFH
		CALL DLY1S
		CALL DLY1S

		MOV  21H,#00000000B      ;DISPLAY  D0
		MOV  23H,21H
		MOV  R6,#0
		CALL WRDD
		MOV  25H,#00000001B
		MOV  27H,25H
		CALL WRDA
		CALL WALP
		MOV  P1,#0FFH
		CALL DLY1S
		MOV  21H,#00000000B      ;DISPLAY  D1
		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  D2
		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  D3
		MOV  23H,21H
		MOV  R6,#0
		CALL WRDD
		MOV  25H,#00001000B
		MOV  27H,25H
		CALL WRDA
		CALL WALP
		MOV  P1,#0FFH
		CALL DLY1S
		



STOP:           MOV  P1,#0FFH
		CALL DLY1S
		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 =2KHZ
		CALL WRCOM
		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               ;1S
		CALL DLY1S               ;1S
		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 LCD_CS                ;/CS=1
		NOP
		CALL DLY5
		CLR  LCD_CS                ;/CS=0
		CALL DLY5
		CLR  LCD_CLK                ;/WR=0
		CALL DLY5
		NOP
		SETB LCD_DATA                ;D=1 (100)
		CALL DLY5
		NOP
		SETB LCD_CLK                ;/WR=1
		CALL DLY5
		NOP
		CLR  LCD_CLK                ;/WR=0
		CALL DLY5
		NOP
		CLR  LCD_DATA                ;D=0
		CALL DLY5
		NOP
		SETB LCD_CLK                ;/WR=1
		CALL DLY5
		NOP
		CLR  LCD_CLK                ;/WR=0
		CALL DLY5
		NOP
		CLR  LCD_DATA                ;D=0
		CALL DLY5
		NOP
		SETB LCD_CLK                ;/WR=1
		CALL DLY5
		NOP

		MOV  R7,#9               ;LOOP=DATA 8 BIT +1X
		CLR  C
LOOPWR:         NOP
		CALL DLY5
		CLR  LCD_CLK
		CALL DLY5
		MOV  A,20H
		RLC  A
		MOV  20H,A
		JC   WR1
		CLR  LCD_DATA                ;DATA=0
		CALL DLY5
		JMP  WRR
WR1:            SETB LCD_DATA                ;DATA=1
		CALL DLY5
WRR:            SETB LCD_CLK
		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 LCD_CS                ;/CS=1
		CALL DLY5
		NOP
		CLR  LCD_CS                ;/CS=0
		CALL DLY5
		CLR  LCD_CLK                ;/WR=0
		CALL DLY5
		SETB LCD_DATA                ;D=1 (101)
		CALL DLY5
		SETB LCD_CLK                ;/WR=1
		CALL DLY5
		CLR  LCD_CLK                ;/WR=0
		CALL DLY5
		CLR  LCD_DATA                ;D=0
		CALL DLY5
		SETB LCD_CLK                ;/WR=1
		CALL DLY5
		CLR  LCD_CLK                ;/WR=0
		CALL DLY5
		SETB LCD_DATA                ;D=1
		CALL DLY5
		SETB LCD_CLK                ;/WR=1
		CALL DLY5

		MOV  R4,#6
		MOV  22H,21H
ADDWR2:         NOP
		CALL DLY5
		CLR  LCD_CLK
		CALL DLY5
		MOV  A,21H
		RLC  A
		MOV  21H,A
		JC   WR11
		CLR  LCD_DATA                ;DATA=0
		CALL DLY5
		JMP  WRR1
WR11:           NOP
		CALL DLY5
		SETB LCD_DATA                ;DATA=1
		CALL DLY5
WRR1:           NOP
		CALL DLY5
		SETB LCD_CLK
		CALL DLY5
		DJNZ R4,ADDWR2
		RET

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

DLY5:           NOP
		NOP
		NOP
		NOP
		RET
DLY25M:         MOV  R1,#250             ;12M/2.5MS
DLOP:           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 LCD_CS                ;/CS=1
		CALL DLY5
		NOP
		CLR  LCD_CS                ;/CS=0
		CALL DLY5
		CLR  LCD_CLK                ;/WR=0
		CALL DLY5
		SETB LCD_DATA                ;D=1 (101)
		CALL DLY5
		SETB LCD_CLK                ;/WR=1
		CALL DLY5
		CLR  LCD_CLK                ;/WR=0
		CALL DLY5
		CLR  LCD_DATA                ;D=0
		CALL DLY5
		SETB LCD_CLK                ;/WR=1
		CALL DLY5
		CLR  LCD_CLK                ;/WR=0
		CALL DLY5
		SETB LCD_DATA                ;D=1
		CALL DLY5
		SETB LCD_CLK                ;/WR=1
		CALL DLY5

		MOV  R2,#6
LOOP:           CLR  LCD_CLK                ;/WR=0
		CALL DLY5
		CLR  LCD_DATA                ;D=0 
		CALL DLY5
		SETB LCD_CLK                ;/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 0EH,0DH,0FH,00H,0AH,0FH,0AH,0DH,06H,0CH,0EH,05H,0CH,07H,0EH,0BH;
	 
	
		END

⌨️ 快捷键说明

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