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

📄 lcd8bit2.asm

📁 Library for the 8051 microcontroller. such as math routine, hexBCD, LCD, Keyboard, I2C, Remote, Ke
💻 ASM
字号:

;-----------------------LCD 8-bit--------------------------
;LCD Connections to microcontroller
E		EQU	P2.0		; PIN 6 enable
RS 		EQU	P2.1		; /register select

DATANE		EQU	P0		; data lines
;----------------------------------------------------------
ORG 0000H
	JMP on_reset
;----------------------------------------------------------
ORG 00FFH
on_reset:	
		MOV DPTR,#init_data
		CALL disp_init
		
		MOV DPTR,#message1
		CALL disp_string
		
		CALL disp_line2
		
		MOV DPTR,#message2
		CALL disp_string

ENDLESS:
		JMP ENDLESS	
;----------------------------------------------------------
; display char in A
disp_char:
		SETB RS			; desable register select
		MOV DATANE,A
		SETB E			; give E pulse
		ACALL delay_data
		CLR E
		ACALL delay_data
RET
;----------------------------------------------------------
; used registers A,R1,R7
disp_string:
		MOV A,#00H
		MOV R1,#00h
next_char:
		INC R1			
		MOVC A,@A+DPTR
			MOV DATANE,A
			ACALL disp_char
			MOV A,R0
		CJNE R1,#0Fh,next_char			
RET
;----------------------------------------------------------
; used registers A,R1,R7
disp_init:
		CLR RS			; enable /register select
		MOV A,#00H
		MOV R1,#00h
next_chari:
		INC R1			
		MOVC A,@A+DPTR
			MOV DATANE,A
			SETB E		; give E pulse
			ACALL delay_init
			CLR E
			ACALL delay_init
			MOV A,R0
		CJNE R1,#02h,next_chari	
		

RET
;----------------------------------------------------------
disp_line1:
		CLR RS			; register select
		MOV DATANE,#80H		; first line address
		SETB E			; give E pulse
		ACALL delay_init
		CLR E
		ACALL delay_init
RET
;----------------------------------------------------------
disp_line2:
		CLR RS			; register select	
		MOV DATANE,#0A8H		; next line address
		SETB E			; give E pulse
		ACALL delay_init
		CLR E
		ACALL delay_init
RET
;----------------------------------------------------------
;2 msec delay
delay_data:
		MOV R7,#0FFH
del:		NOP
		NOP
		DJNZ R7, del	
RET
;----------------------------------------------------------
;20 msec delay
delay_init:
		MOV R7,#0FFH
del1:		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		DJNZ R7, del1	

RET
;----------------------------------------------------------
message1:
DB "Testing 123.... "
message2:
DB "It's working    "
init_data:
DB 0FH ; Display On, Cursor On,Cursor Blink On(1)/Off(0)
DB 01H ; Clear Display
DB 38H ; Set Interface Length
END

⌨️ 快捷键说明

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