Forum: Mikrocontroller und Digitale Elektronik Cursorpositionierung bei 16x4 Display


von Markus (Gast)


Lesenswert?

Hallo,

ich habe mir gerade den ISP und den Controller AT90S4433 komplett selber 
aufgebaut, um auf diesem Gebiet Erfahrungen zu sammeln.

Jetzt habe ich mir ein 16x4 Display von Displaytech gekauft und an den 
Prozessor im 4 Bitmodus angeschlossen. Nach anfänglichen Schwierigkeiten 
lief es dann auch.

Mein Problem ist nun folgendes:

Wie kann ich diese Information die auch hier auf den Webseiten liegt 
umsetzen auf ein vierzeiliges Display?

Hier ist die Beschreibung:

Display RAM Address Set (1aaaaaaa)
......
...
....
On two line models (and most 16x1), the command can be interpreted this 
way:
1laaaaaa
l=line #
a=6-bit column #


Ich habe es geschafft die zweite Zeile mit dem Befehl

ldi temp1, 0b11000000
rcall lcd_command

anzusteuern. Ich komme aber nicht drauf wie ich die dritte bzw. vierte 
erreiche?

Ich habe auch schon die Forumsbeiträge zu diesem Thema gelesen, wo 
beschrieben ist, welche Startadresse jede Zeile hat. Mir ist nur nicht 
klar ob ich auch mit dieser oben gezeigten Methode die Adresse der 
Cursorposition ändern kann.
D.h. gibt es nun zwei Möglichkeiten die Position zu ändern (außer Cursor 
shift).

Vielen Dank für Eure Hilfe

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Der Teil laaaaaa des Befehls ist die Adresse. Wenn du dafür z.B. die 
Adresse der dritten Zeile einsetzt kommst du genau dort hin.

Die zweite Zeile liegt halt "zufällig" an Adresse 0b1000000, so dass man 
sagen kann dass bei zweiziligen LCDs Bit 7 direkt der Zeilennummer 
entspricht.

von Markus (Gast)


Lesenswert?

Vielen Dank für den Hinweis, jetzt kann ich alle Zeilen direkt 
ansprechen.

Zeile 1 = 0b10000000
Zeile 2 = 0b11000000
Zeile 3 = 0b10010000
Zeile 4 = 0b11010000

Ich habe jetzt aber leider ein anderes Problem; und zwar habe ich als 
Test in jede Zeile "Hallo" ausgegeben.
Jetzt ist es so, dass in der Zeile 3 und 4 das jeweilige Hallo um einen 
Dot zu weit links anfängt, sodaß z.B vom H der erste senkrechte Balken 
fehlt.
Zeile 1 und 2 wird richtig angezeigt.

Kann das mit einem Laufzeitproblem zu erklären sein?

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.