[elektro] LCD power up probléma

vfx info at vfx.hu
Tue Dec 27 10:52:48 CET 2011


Hali!

> > Mi lehet a gond?
> Nekem is volt problemam a hd44780-al. Mar nem emelekszem pontosan, hogy
> kozvetlen bekapcsolaskor vagy csak akkor ha ujraindult a uC de az LCD
> nem. Ilyenkor nem mindig sikerult ujrainicializalni a kijelzot. 4
> bitesben hasznaltam emiatt ha felbyte kozben indul ujra a uC akkor
> nehezen ert szot a kijelzovel. Ketsegtelen, hogy a kijelzot is jo lenne
> resetelni, tapjat a uC-vel kapcsolni.
> 
> 4 vagy 8 bites uzemmodban hasznalod?
> 

8 bitesben használom. 
Tegnap éjjel óta kapcsolgatom találomra, eddig 100% indulás volt. Ha
holnapig nincs gond, akkor ráfogom hogy jó :)

Nekem ez a procedura orvosolta AVRen:


LCD_Init:
		ldi	R16,40		;Wait at least 40msec after
		call	Wait1ms		;powerup before writing to display

		ldi	R16,0b00111000		;3x probalkozunk 8 bit mode-ba rakni
		clt				;select command register
		rcall	LCD_IOWrite
		ldi	R16,60
		call	Wait1ms			;wait 5ms


		ldi	R16,0b00111000
		rcall	LCD_IOWrite
		ldi	R16,60
		call	Wait1ms			;wait 5ms

		ldi	R16,0b00111000
		rcall	LCD_IOWrite
		ldi	R16,60
		call	Wait1ms			;wait 5ms


		; *** Send the 'FUNCTION SET' command
		;                +------ Data:  0 = 4-bit; 1 = 8-bit
		;                |+----- Lines: 0 = 1; 1 = 2
		;   	         ||+---- Font:  0 = 5x8; 1 = 5x11
		ldi	R16,0b00111000
;		rcall	LCD_SendCmd
		clt
		rcall	LCD_IOWrite
		ldi	R16,5
		call	Wait1ms



		; *** Send the 'DISPLAY ON/OFF' command
		;     		   +---- Display: 0 = off; 1 = on
		;     		   |+--- Cursor: 0 = off; 1 = on
		;     		   ||+-- Blink: 0 = off; 1 = on
		ldi	R16,0b00001100
;		rcall	LCD_SendCmd
		clt
		rcall	LCD_IOWrite
		ldi	R16,5
		call	Wait1ms



		; *** Send the 'ENTRY MODE' command
		;      		    +--- Direction: 0 = left; 1 = right
		;  	            |+-- Shift Dislay: 0 = off; 1 = on
		ldi	R16,0b00000110
;		rcall	LCD_SendCmd
		clt
		rcall	LCD_IOWrite
		ldi	R16,5
		call	Wait1ms



		; *** Send the 'CURSOR/DISPLAY SHIFT' command
		;                 +----- S/C:  0 = cursor; 1 = display
		;    	          |+---- R/L:  0 = left; 1 = right
		ldi	R16,0b00010100
;		rcall	LCD_SendCmd

		clt
		rcall	LCD_IOWrite
		ldi	R16,5
		call	Wait1ms


		rcall	LCD_Clear
		ret


ÜDV. VFX.
http://www.vfx.hu



More information about the Elektro mailing list