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

📄 002.asm

📁 LCD12232 点阵液晶显示屏 51汇编驱动程序
💻 ASM
字号:
;This program is for 12232F
;	RS--------P3.3
;	R/W-------P3.1
;	E---------P3.0
;	DB0~7-----P1

RS		  EQU	P0.5
RW	      EQU	P0.7
E		  EQU	P0.6

	ORG	0000H
	AJMP	START
	ORG	0003H
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 R3,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

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 + -