Forum: Mikrocontroller und Digitale Elektronik LCD: 2 von 4 Zeilen kaputt?


von Christoph (Gast)


Lesenswert?

Hallo  zusammen!

Bei meinem 4x20-Zeichen-Display werden beim Start nur die 1. und 3.
Zeile mit Strom versorgt (d.h. grau hinterlegt).
In diese Zeilen kann ich problemlos schreiben und in ihnen den Cursor
verschieben. Wenn ich allerdings in die 2. bzw. 4. Zeile springen
möchte (ab Adresse 0x40), um sie zu beschreiben, "verschwindet" der
Cursor im Nichts und nichts passiert.
Muss ich diese Zeilen erst "aktivieren" (2-Line-Modus habe ich
eingestellt) oder muss ich damit rechnen, dass das Display bzw. der
Controller für diese Zeilen kaputt ist?

MfG
Christoph

von Alex (Gast)


Lesenswert?

Das beim Initialisieren nur die erste und dritte Zeile grau hinterlegt
wird ist normal..Du musst beachten das 4 Zeilen Displays 2 Controller
besitzen !!!!! Jeder Controller ist für 2 Zeilen zuständig und du musst
zwischen beiden mittels der richtigen Adressierung hin und her
wechseln...Schau dir mal das Datenblatt genau an..

von Christoph (Gast)


Lesenswert?

Erstmal danke für die schnelle Antwort!

So wie ich es im Datenblatt verstehe, funktioniert das Springen in die
2. bzw. 4. Zeile genauso wie das in die 1. bzw. 3. Zeile nur eben mit
anderen Adressen: Sie beginnen bei 0x40 statt bei 0x00. Gibt es
vielleicht einen Steuerbefehl, um zwischen den Controllern
umzuschalten?

Das Datenblatt: http://www.farnell.com/datasheets/51113.pdf

von Alex (Gast)


Lesenswert?

Das "umschalten" geschieht automatisch durch Adressierung.
Du musst zu den angebenen Adressen immer 128 dazu addieren...
Hier mal die Adressen für die jeweils 1. Position der Zeilen:

line1      =0x80
line2      =0xC0
line3      =0x94
line4      =0xD4

von Sven (Gast)


Lesenswert?

Das sieht danach aus, als ob die Initialisierung des 2-Line-Modus nicht
funktioniert hat. Am Anfang eventuell mehrmals initialisieren kann
helfen. Manche Displays sind da garstig...

Sven

von Christoph (Gast)


Lesenswert?

Das addieren der 128 entspricht einem setzen von DB7 auf 1, richtig?
Ich  bin bei 0x40 usw. nur von DB0-DB6 ausgegangen und habe DB7 sowieso
auf 1 gesetzt (zum Setzen der DDRAM address eben).

Wie sieht das "Umschalten" eigentlich aus? Werden plötzlich die
komplette 2. und 4. Zeile mit Strom versorgt und dunkel hinterlegt oder
nur die entsprechenden Zeichen?

von Alex (Gast)


Lesenswert?

ja richtig das DB7 muss gesetzt sein. vergiss das mit dem umschalten am
besten (hab mich vielleicht etwas blöd ausgedrückt).. es ist wichtig
das Display richtig zu initialisieren!!!! (zeiten einhalten) ein
umschalten in dem sinne erfolgt nicht...du musst dir das so vorstellen
das ein controller für 40 zeichen zuständig ist. da das display über
4x20 zeichen verfügt werden 20 in der ersten zeile und 20 in der
dritten zeile dargestellt. der 2. Controller steuert 20 zeichen der
2.zeile und 20 zeichen der 4. zeile...wenn du einen text schiebst
kannst du das sehr gut beobachten.... ich denke dein fehler liegt beim
initialisieren.....

von Christoph (Gast)


Lesenswert?

Meine Initialisierungsreihenfolge (teilweise übertrieben fail-save ;)
):

100ms warten  // Zeit zum "Aufwachen" geben
200mal:
 Datenbits 5,4 und 3 setzen // 8 Bit, 2 Lines
Datenbits 3,2 und 1 setzen // Disp On, Cursor On
Datenbit o setzen // Clr Disp

alles großzügig mit delays ausgestattet


Bei dieser Initialisierung lassen sich die 1. und 3. Zeile nutzen, der
Rest halt leider nicht.

Müssten nach der Initialisierung auch die 2. und 4. Zeile grau
hinterlegt (mit Strom versorgt) sein?

von Einer der Bernds (Gast)


Lesenswert?

Nur mal so am Rande:

Ein 4x20 Display (wenns 44780 kompatibel ist) hat nur einen COntroller,
weil der Controller 80 Zeichen verwalten und darstellen kann.

Ein 4x40 hat 2 Controller...

Für mich hört sich das übrigens an wie wenn die Initalisierung falsch
gelaufen ist, oder gar nicht gemacht wurde.

Gruß Bernd

von Rennesson (Gast)


Lesenswert?

Da muss ich Bernd recht geben habe auch ein 4*20 display und es hat nur
einen controller.
aber das die erste und dritte zeile hell sind ist bei mir auch obwohl
alles funzt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.