Guten Morgen,

- Datenpins richtig herum angeschlossen?
- Chip-Select ("Enable") Signal acitve high (nicht wie üblich low)?
- großzügige Warteschleifen (bei der Initialisierung gibts kein Feedback, ob die Befehle angekommen sind, da hilft nur abwarten)?
- R/W Signal aktiviert (Befehle werden nur beim Pegelwechsel übernommen, müssen also schon vorher am Bus anliegen)?

So klappts bei meinem 20x4 Display (sicher keine Augenweide, funktioniert aber):

Code:
Display_initiieren:
	rcall warte250						; Einschalt-Reset vom Display abwarten


	ldi Zeichen,0b00111000				; Befehl "Function Set"
	rcall Display_Befehl_schreiben
	rcall warte10
	rcall warte10
	rcall Display_Befehl_schreiben
	rcall warte10
	rcall Display_Befehl_schreiben
	rcall warte2
	
	ldi Zeichen, 0b00111000				; lade Befehl "2-zeilig, 5x8"
	rcall Display_Befehl_schreiben	

	rcall warte2
	ldi Zeichen, 0b00001000				; lade Befehl "Display aus"
	rcall Display_Befehl_schreiben
	
	rcall warte2
	ldi Zeichen, 0b000000001				; lade Befehl "Display löschen"
	rcall Display_Befehl_schreiben
	
	rcall warte2
	ldi Zeichen, 0b000000110				; lade Befehl "Cursor nach rechts wandern"
	rcall Display_Befehl_schreiben
	
	rcall warte2
	ldi Zeichen, 0b000001111				; lade Befehl "Display einschalten"
	rcall Display_Befehl_schreiben
	ret


Display_Zeichen_schreiben:
	rcall warte2				; warte bis Display empfangsbereit ist
	rcall Datenbus_ist_Ausgang
	out Datenbus, Zeichen					; schreibe Daten in Datenbus
	nop
	ldi Adresse,0b00001001					; RW=0 | RS=1 | E=1
	out Adressbus, Adresse					; schreibe Enable-Bit auf Adressbus
	nop
	ldi Adresse,0b00001000					; RW=0 | RS=1 | E=1
	out Adressbus, Adresse					; schreibe Enable-Bit auf Adressbus
	nop
	ret

Display_Befehl_schreiben:
	rcall Datenbus_ist_Ausgang
	out Datenbus, Zeichen					; schreibe Befehl in Datenbus
	nop
	ldi Adresse,0b00000001					; setze Enable-Bit für Display
	out Adressbus, Adresse					; Display im Schreibmodus ansprechen
	nop
	ldi Adresse,0b00000000					; lösche Enable-Bit für Display
	out Adressbus, Adresse					; schreibe Enable-Bit auf Adressbus
	nop
	ret

"wartexxx" ist eine Routine, die den angegebenen Zahlenwert in mSek. abwartet.

Grüße

Edit von BASTIUniversal: Code-Box!