PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 1-zeiliges LCD-Display 161A



LotharK
19.03.2007, 20:22
Hi,

ich habe mir bei Reichelt ein 20stelliges, einzeiliges LCD Display mit der Bezeichnung 161A gekauft.
Dieses versuche ich nun im 4bit-Modus zur Anzeige zu bewegen.

Mir ist es möglich, Zeichen auszugeben, aber nur 8. Die anderen 8 Zeichen werden nicht angezeigt.

Dabei habe ich das Display schon zum Test abwechselnd, versuchsweise als einzeilig und zweizeilig definiert. Leider immer der gleiche Effekt.

Zum Test habe ich nun mal eine Routine geschrieben, die mir in intervallen einige Buchstaben schnell hintereinander ausgibt. Nach einiger Zeit werden auch 16 Zeichen dargestellt.

Irgend etwas übersehe ich, weiß aber nicht was. Liegt es an meinem Displaytyp? Leider war kein Datenblatt dabei und im Net finde ich auch nichts.

Ich würde mich sehr freuen, wenn mir jemand einen Tipp geben würde.

MfG LotharK

PICture
19.03.2007, 20:37
Hallo LotharK!

So ein Display kann man als 2x10 betrachten, wobei die Zeilen nebeneinander und nicht wie gewohnt untereinander sind.

Die Adresse der "zweiten" Zeile ist wahrscheinlich 40h und das Display muss als 2-Zeilig initialisiert werden. Die Adressen in der Zeile sind also von links:

00,01,02,03,04,05,06,07,08,09,40,41,42,43,44,45,46 ,47,48,49 alle hex.

MfG

LotharK
20.03.2007, 09:06
Hallo PICture,

ich habe jetzt ein Datenblatt. Dort steht genau das, was Du schriebst.
Ich hatte das Display auch als zweizeilig initialisiert. Muss ich da noch irgend etwas anderes tun?
Ich dachte, ich müsse nur das obere Nipple übergeben, das Display kurz initialisieren, das 2. Nipple übergeben und noch mal initialisieren. (natürlich mit den entsprechenden Pausen)
Ich dachte, der Chip im display kümmert sich um den Rest. Ich beschäftige mich erst einige Wochen mit der Materie. Kannst Du mir da noch eine kleine Hilfestellung geben?
Wie komme ich von Adresse 0x09 auf 0x40?

Vielen Dank schon jetzt und sorry wenn ich mich etwas prasslich anstelle.

PICture
20.03.2007, 20:54
Hallo LotharK!

Wenn Du schon ein Datenblatt für das Display hast, dann kannst Du dort schauen was für Befehl nötig ist um eine Adresse ans Display zu senden. Normaleweise geht es so:

RS=0, da als nächstes Befehl kommt
0xXX, die gewünschte Adresse an Display senden

Nach der Initialisierung ist die Adresse 0x00 voreingestellt und wird nach jedem gesendetem Zeichen um 1 automatisch erhöht. Du musst nach dem 10-tem Zeichen einfach zuerst die Adresse 0x40 als Befehl (mit RS=0) und danach weitere 10 Zeichen als Data (mit RS=1) senden.

Ich hoffe, dass Du es schaffst, sonst, bitte, weiter fragen! :)

MfG

LotharK
21.03.2007, 20:04
Hallo PICture,

Du hast Recht, das könnte man, aber nur, wenn man die Materie verstanden hat.
Ich bin jetzt dahinter gestiegen wie es läuft. Alle Tests waren erfolgreich. Danke für Deine Hilfe!

MfG LotharK