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

📄 lcdroutines.asm

📁 The circuit is drawn for measurement of acceleration from –1000 mg until + 1000 mg. It can be place
💻 ASM
字号:
;------------------------------------------------------------------------------------------------------
;Name		:LCDRoutines
;------------------------------------------------------------------------------------------------------
.cseg
.org		SegmentLCDRoutines
;------------------------------------------------------------------------------------------------------
LCDInitialization:											;LCD Initialization
	ldi		TempRegister,_15_MSEC
	rcall	Delaymsec
	ldi		TempRegister,3
	out		PortLCD,TempRegister
	sbi		PortE,PinE
	cbi		PortE,PinE
	ldi		TempRegister,_4_1_MSEC
	rcall	Delaymsec
	ldi		TempRegister,3
	out		PortLCD,TempRegister
	sbi		PortE,PinE
	cbi		PortE,PinE
	rcall	Delay100usec
	ldi		TempRegister,3
	out		PortLCD,TempRegister
	sbi		PortE,PinE
	cbi		PortE,PinE
	ldi		TempRegister,2
	out		PortLCD,TempRegister
	sbi		PortE,PinE
	cbi		PortE,PinE
	ldi		TempRegister,0b11110000
	out		PortLCDDirection,TempRegister					;as a 4 wire interface, 2 lines,
	ldi		TempRegister,_WIRE4_LINES2_FONTS5x7				;and 5x7 fonts
	rcall	LCDCommand
	ldi		TempRegister,_DISPLAYON_CURSOROFF_BLINKOFF
	rcall	LCDCommand
	ldi		TempRegister,_ADDRESSINCREMENT_SCROLLINGNO
	rcall	LCDCommand
	ret
;------------------------------------------------------------------------------------------------------
LCDCommand:													;LCD Command subroutine
	mov		TempRegisterB,TempRegister
	rcall	WaitLCD
	ldi		TempRegister,0xFF
	out		PortLCDDirection,TempRegister
	mov		TempRegister,TempRegisterB
	mov		TempREgisterB,TempRegister
	swap	TempRegister
	andi	TempRegister,0X0F
	out		PortLCD,TempRegister
	sbi		PortE,PinE
	cbi		PortE,PinE
	mov		TempRegister,TempRegisterB
	andi	TempRegister,0x0F
	out		PortLCD,TempRegister
	sbi		PortE,PinE
	cbi		PortE,PinE
	ldi		TempRegister,0xF0
	out		PortLCDDirection,TempRegister
	ret
;------------------------------------------------------------------------------------------------------
LCDData:													;LCD Data subroutine
	mov		TempRegisterB,TempRegister
	rcall	WaitLCD
	ldi		TempRegister,0xFF
	out		PortLCDDirection,TempRegister
	mov		TempRegister,TempRegisterB
	mov		TempRegisterB,TempRegister
	swap	TempRegister
	andi	TempRegister,0x0F
	out		PortLCD,TempRegister
	sbi		PortRS,PinRs
	sbi		PortE,PinE
	cbi		PortE,PinE
	mov		TempRegister,TempRegisterB
	andi	TempRegister,0x0F
	out		PortLCD,TempRegister
	sbi		PortRS,PinRS
	sbi		PortE,PinE
	cbi		PortE,PinE
	ldi		TempRegister,0xF0
	out		PortLCDDirection,TempRegister
	ret
;------------------------------------------------------------------------------------------------------
WaitLCD:													;Wait LCD to be unbusy subroutine
	ldi		TempRegister,0xF0
	out		PortLCDDirection,TempRegister
	sbi		PortRW,PinRW
	cbi		PortRS,PinRS
WaitLCDInLoop:
	sbi		PortE,PinE
	cbi		PortE,PinE
	in		TempRegister,PINB
	sbi		PortE,PinE
	cbi		PortE,PinE
	sbrc	TempRegister,3
	rjmp	WaitLCDInLoop
	ret
;------------------------------------------------------------------------------------------------------
ClearLCD:													;Clear LCD subroutine
	ldi		TempRegister,0b00000001
	rcall	LCDCommand
	ldi		TempRegister,_15_MSEC
	rcall	Delaymsec
	ret
;------------------------------------------------------------------------------------------------------
Line1:														;LCD's line 1 subroutine
	ldi		TempRegister,_LINE1
	rcall	LCDCommand
	ret
;------------------------------------------------------------------------------------------------------
Line2:														;LCD's line 2 subroutine
	ldi		TempRegister,_LINE2
	rcall	LCDCommand
	ret
;------------------------------------------------------------------------------------------------------





⌨️ 快捷键说明

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