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

📄 display.asm

📁 液晶显示调试程序。初始化程序
💻 ASM
字号:
;This program is for 12232F
;	RS--------P3.3
;	R/W-------P3.1
;	E---------P3.0
;	DB~7-----P1

DI		EQU		P3.3
RW	   	EQU		P3.1
E		EQU	P	3.0

		ORG		0000H
		AJMP	START
		ORG		0003H
		LCALL 	PAUSE
START:
		MOV  	IE,#81H 	       ;EXT. INT0 PERMIT
		MOV  	IP,#01H 	       ;INT0 IS FIRST INT. LEVEL
		MOV  	TCON,#00H	       ;TIMER/COUNTER CONTROLER INIT.
		mov 	SP, #67h
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	SETUP
		LCALL 	DEF_CHAR
		MOV  	A,#80H
		LCALL 	WRITE_COM
		MOV  	R3,#8
TEST11:	
                MOV  	DPTR,#CGRAM1	;CGRAM TEST
		LCALL	WRITE_CGRAM
		DJNZ 	R3,TEST11
		MOV  	A,#90H
		LCALL 	WRITE_COM
		MOV  	R3,#8
TEST12:	
MOV  	DPTR,#CGRAM1
		LCALL 	WRITE_CGRAM
		DJNZ  	R3,TEST12
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		MOV 	A,#80H
		LCALL 	WRITE_COM
		MOV  	R3,#8
TEST21:	
MOV  	DPTR,#CGRAM2
		LCALL 	WRITE_CGRAM
		DJNZ 	3,TEST21
		MOV  	A,#90H
		LCALL 	WRITE_COM
		MOV  	R3,#8
TEST22:	
MOV  	DPTR,#CGRAM2
		LCALL 	WRITE_CGRAM
		DJNZ  	R3,TEST22
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		MOV  	A,#80H
		LCALL 	WRITE_COM	
		MOV  	R3,#8
TEST31:	
MOV  	DPTR,#CGRAM3
		LCALL 	WRITE_CGRAM
		DJNZ 	R3,TEST31
		MOV  	A,#90H
		LCALL 	WRITE_COM
		MOV  	R3,#8
TEST32:	
MOV  	DPTR,#CGRAM3
		LCALL 	WRITE_CGRAM
		DJNZ  	R3,TEST32
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		MOV  	A,#80H
		LCALL 	WRITE_COM	
		MOV  	R3,#8
TEST41:	
MOV  	DPTR,#CGRAM4
		LCALL 	WRITE_CGRAM
		DJNZ 	R3,TEST41
		MOV  	A,#90H
		LCALL 	WRITE_COM
		MOV  	R3,#8
TEST42:	
MOV  	DPTR,#CGRAM4
		LCALL 	WRITE_CGRAM
		DJNZ  	R3,TEST42
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
	
		MOV  	A#80H			;WORD TEST
		LCALL 	WRITE_COM
		MOV  	DPTR,#CHINESE
		LCALL 	WRITE_HZ
		MOV 	A,#90H
		LCALL 	WRITE_COM
		MOV 	DPTR,#TABLE1
		LCALL 	WRITE_ASCII
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		MOV  	A#80H
		LCALL 	WRITE_COM
		MOV  	DPTR,#table1
		LCALL 	WRITE_ascii
		MOV  	A,#90H
		LCALL 	WRITE_COM
		MOV 	DPTR,#chinese
		LCALL	WRITE_hz
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
AAA:		LJMP 	START

SETUP:
		LCALL 	DELAY
		LCALL 	DELAY
		LCALL 	DELAY
		MOV  	A,#01H				;CLEAR DISPLAY
		LCALL 	WRITE_COM
		MOV  	A,#00110000B		;FUNCTION SETTING
		LCALL 	WRITE_COM
		MOV  	A,#00000010B		;DDRAM SET TO '00H'
		LCALL 	WRITE_COM
		MOV  	A,#00000100B		;
		LCALL 	WRITE_COM
		MOV  	A,#00001100B		;DISPLAY ON
		LCALL 	WRITE_COM
		MOV  	A,#00000001B		;CLEARING SCREEN
		LCALL 	WRITE_COM
		MOV  	A,#10000000B		;SET DDRAM ADDRESS
		LCALL 	WRITE_COM
		RET

WRITE_COM:								;WRIT///cv
;WRITE COMMANDS TO ST7920
		LCALL 	DELAY1				;INSTEAD OF CHECKING BF STATE
		CLR  	RS
		CLR 	RS
		CLR  	RW
		CLR  	RW
		MOV  	P1,A
		MOV  	P1,A
		SETB 	E
		SETB 	E
		NOP
		NOP
		CLR  	E
		CLR  	E
		;LCALL DELAY1
		RET
WRITE_DAT:								;WRITE DISPLAY DATAS TO ST79220
		LCALL 	DELAY1
		SETB 	RS
		SETB	RS
		CLR 	RW
		CLR  	RW
		MOV  	P1,A
		MOV  	P1,A
		SETB 	E
		SETB 	E
		NOP
		NOP
		CLR  	E
		CLR  	E
		RET
	
DELAY1:
		MOV  	R7,#010H
D11:		MOV  	R6,#010H
		DJNZ 	R6,$
		DJNZ 	R7,D11
		RET

DELAY:
		MOV  	R1,#00H
D2:			MOV  	R2,#00H
		DJNZ 	R2,$
		DJNZ 	R1,D2
		RET
	
DEF_CHAR:								;WRITE TO CGRAM
		MOV  	A,#01000000B		;SET CGRAM ADDRESS
		LCALL 	WRITE_COM	
		MOV  	R3,#8
DEF1:	
MOV  	A,#000H
		LCALL 	WRITE_DAT
		LCALL 	WRITE_DAT
		MOV  	A,#0FFH
		LCALL 	WRITE_DAT
		LCALL 	WRITE_DAT
		DJNZ 	R3,DEF1
		MOV  	R3,#8
DEF2:	
MOV  	A,#0AAH
		LCALL 	WRITE_DAT
		LCALL 	WRITE_DAT
		MOV  	A,#0AAH
		LCALL 	WRITE_DAT
		LCALL 	WRITE_DAT
		DJNZ 	R3,DEF2
		MOV  	R3,#8
DEF3:	
MOV  	A,#055H
		LCALL 	WRITE_DAT
		LCALL 	WRITE_DAT
		MOV 	A,#0AAH
		LCALL 	WRITE_DAT
		LCALL 	WRITE_DAT
		DJNZ 	R3,DEF3
		mov  	R3,#8
DEF4:	
MOV  	A,#0FFH
		LCALL 	WRITE_DAT
		LCALL 	WRITE_DAT
		LCALL	WRITE_DAT
		LCALL 	WRITE_DAT
		DJNZ 	R3,DEF4
		RET
WRITE_ASCII:
		MOV  	R4,#16
DDDD:		CLR  	A
		MOVC 	A,@A+DPTR
		LCALL 	WRITE_DAT
		INC  	DPTR
		DJNZ 	R4,DDDD
		RET
WRITE_HZ:								;WRITE 8 CHINESE TO LCD
		MOV  	R4,#8
DD:		CLR  	A
		MOVC 	A,@A+DPTR
		INC  	DPTR
		LCALL 	WRITE_DAT
		CLR  	A
		MOVC 	A,@A+DPTR
		INC 	DPTR
		LCALL 	WRITE_DAT
		DJNZ 	R4,DD
		RET
	
WRITE_CGRAM:								;CGRAM TESTING
		CLR  	A
		MOVC 	A,@A+DPTR
		LCALL 	WRITE_DAT
		INC  	DPTR
		CLR  	A
		MOVC 	A,@A+DPTR
		LCALL 	WRITE_DAT
		RET
PAUSE:		SETB	P3.2				;PAUSE KEY PROCESS
		SETB	P3.2
		LCALL	DELAY1
		MOV		C,P3.2
		MOV		C,P3.2
		JNC		PAUSE				;CHECK KEY WAS PRESSED
PAUSE1:	MOV		C,P3.2
		MOV		C,P3.2
		LCALL	DELAY1
		JC		PAUSE1				;CHECK KEY OPEN AFTER PRESSED
PAUSE2:	SETB	P3.2
		SETB	P3.2
		LCALL	DELAY1
		MOV		C,P3.2
		MOV		C,P3.2
		JNC		PAUSE2				;CHECK KEY WAS PRESSED AGAIN
		RETI
	
TABLE1:	
;“这里是16*8点阵的字符代码”
CGRAM1:	DB 		000H,000H       ;这里是自造字符地址表 
CGRAM2:	DB 		000H,002H
CGRAM3:	DB 		000H,004H
CGRAM4:	DB 		000H,006H
CHINESE:
;		“这里是16*16点阵的汉字代码表”
END

⌨️ 快捷键说明

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