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!
Lesezeichen