Mein erstes Lcd gibt nix aus :-( Anfänger bittet um HILFE
Hallo an die hilfsbereite Community!!!
Also ich habe vor einiger Zeit mit der uC Programmierung in Assembler angefangen, was auch bis zum heutigen Tag recht erfolgreich verlief. Jetzt habe ich mir ein 1 Zeiliges Lcd von Pollin besorgt (HD44780 kompatibel), worauf ich es leider nicht schaffe etwas auszugeben :-(.
Es ist alles richtig angeschlossen und an dem Datenport und an (Enable,RS,RW) liegen auch die Signale an die ich ausgebe.
Nachdem an dem Datenport etwas anliegt, schalte ich E an,warte ca.50ms und schalte E wiede aus. Aber irgendwie interessiert es das Display nicht was ich
mache.
Ist es richtig, das nach dem Initalisieren von :
8 Bit
Clear home
Coursorrichtung
Display + Coursor ON + Blinkend
zumindest schonmal ein Coursor zu sehen sein sollte?
Ich sitze jetzt bestimmt schon 7 Std an diesem Teil, aber leider erfolglos
Was muss ich alles Initialisieren damit ich etwas sehe?
Oder reicht nur initialisieren für zumindest einen Cursor nicht aus?
vielen vielen Dank schonmal im voraus!!!!
Philipp
Hmm, vom Prinzip her das gleiche in grün
Soweit vielen dank für die Antwort!
Jetzt bin ich ratlos. Zu schnell spreche ich das Display nicht an,da ich das ganze zum Test mal an Led´s geklemmt habe und dabei verzögerungen von Befehl zu Befehl problemlos erkennen konnte.
Soweit ich das erkennen konnte, habe ich auch die gleichen Initialisierungsschritte gemacht wie du. *grübel
Ist es denn richtig, das ich nach den Initialisierungs schritten zumindest schonmal einen Cursor sehen müssste? Oder muss ich schon etwas hineinschreiben?
mfg, Philipp
Kein Datenblatt vorhanden
Hallo,
Nein, leider sehe ich garnix und habe auch nie etwas darauf gesehen :-(
Ich glaube das die positive Kontrastspannung richtig ist, habe aber auch leider kein Datenblatt zu dem Display gefunden .
LC-Display HYUNDAI HB16102
1-zeiliges Display mit integriertem Controller (HD44780-kompatibel), Lötkontakten zum Anlöten der Anschlussleitungen für Betriebsspannung, Kontrast und Datenübertragung.
Technische Daten:
- 1 Zeile x 16 Zeichen
- Ansteuerung über 4-Bit- oder 8-Bit-Datenbus möglich
- Kontrast über externes Poti regelbar
- Anzeigefläche 64x13,5 mm
- Zeichengröße 3x6 mm
- Betriebsspannung 5 V-
Maße (BxHxT): 80x36x9 mm.
BestNR. 120 333 bei Pollin
Vielleicht kennt ja jemand dieses Display und hat nähere Informationen für mich.
Sollte denn ein Blinkender Cursor auf dem sonst leeren Display nach dem Initialisieren und eventueller Kontrastveränderung zu sehen sein oder nicht?
.include "m16def2.inc"
ldi r16, LOW(RAMEND) ;
out SPL, r16 ; Stackpointer
ldi r16, HIGH(RAMEND) ;
out SPH, r16 ;
ldi r16, 0xFF
out DDRA, r16 ;Port A = Ausgabeport
out DDRB, r16 ;Port B = Ausgabeport
ldi r16, 0xFF
ldi r17, 0x00
ldi r18, 0b00000100 ; Enable Pin
ldi r21, 0b00000110 ; Enable und RS Pin
ldi r20, 0xFF
Lcd_Init: ldi r19, 0x30
out Porta, r19
rcall Enable
ldi r19, 0x30
out Porta, r19
rcall Enable
ldi r19, 0x30
out Porta, r19
rcall Enable
ldi r19, 0b00000010 ; Cursor Home
out Porta, r19
rcall Enable
ldi r19, 0b00000110 ; Cursor Bewegungsrichtung
out Porta, r19
rcall Enable
ldi r19, 0b00001111 ; Display ON
out Porta, r19
rcall Enable
ldi r19, 0b10000010 ; Ram Adresse
out Porta, r19
rcall Enable
ldi r19, 0b00000010 ;
out Porta, r19 ;
ldi r19, 0b00000010 ; Etwas reinschreiben
out Portb, r19 ;
rcall Setzen ;
Tot: nop
rjmp Tot
Enable: out PortB, r18 ; ENABLE AN
ldi r19, 0xFF ;
Wait: dec r19 ;
CP r19, r17 ;
BREQ Wait1 ;
rjmp Wait ;
Wait1: dec r20 ; WARTEN
CP r20, r17 ;
BREQ Aus ;
ldi r19, 0xFF ;
rjmp Wait ;
Aus: out PortB, r17 ; ENABLE WIEDER AUS
ret
Setzen: out PortB, r21 ; ENABLE und RS AN
ldi r19, 0xFF ;
Wait2: dec r19 ;
CP r19, r17 ;
BREQ Wait3 ;
rjmp Wait2 ;
Wait3: dec r20 ; WARTEN
CP r20, r17 ;
BREQ Aus1 ;
ldi r19, 0xFF ;
rjmp Wait2 ;
Aus1: ldi r19, 0b00000010
out PortB, r19 ; ENABLE WIEDER AUS (Rs bleibt)
ret
Hmm, sieht bei mir ordentlicher aus (warum erkennt der hier keine Leerstellen)
mfg, Philipp