www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Cursorpositionierung bei 16x4 Display


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.