Forum: Mikrocontroller und Digitale Elektronik LCD-Display 164A ansteuern


von Michael H. (Gast)


Lesenswert?

Hallo

Ich hab ein LCD-Display 164A, ich möchte das nun mit einem
Microcontroller (Atmel) ansteuern, wie ich die einzelnen Zeichen
übertrag weis ich aus dem Datenblatt, aber wie kann ich die Stelle
übertragen, an welche dass Zeichen soll? (Also die Display Data Ram
Adresse.)

HIer gibt es das Datenblatt:
http://www.displaytech.com.hk/pdf/char/164a%20series-v10.PDF

Wär toll wenn mir da einer weiterhelfen könnte.

von A.K. (Gast)


Lesenswert?

Seite 2, "SET DD RAM ADDRESS".

von A.K. (Gast)


Lesenswert?

Seite 5 natürlich.

von crazy horse (Gast)


Lesenswert?

es gibt einen Befehl "set DD RAM adress", dort schreibst du die
gewünschte Adresse rein. Sinnvoll ist meist auch, automatisches
incrementieren einzustellen, sonst musst du vor jeder Ausgabe die
Adresse ausgeben. Viel Frust erspart man sich auch, wenn man sich eine
Funktion schreibt, der man die gewünschte Displayadresse in
"menschlicher" Form übergibt. (lcd_gotoxy (1,9), setzt die Adresse
auf zweite Zeile, 10.Stelle. Damit spart man sich viel rumrechnerei und
die Anpassung an verschiedene Displaytypen ist auch recht einfach, z.T.
sind die recht abenteuerlich adressiert.

von Daniel Nöthen (Gast)


Lesenswert?

Hi,

wie auch dem Datenblatt zu entnehmen ist, musst du ihm folgende 8 Bit
als command(!) senden:
1(ddram adresse)
also für die erste Zeile wäre dies:
1000 0000
für Zeile zwei:
1100 0000
für Zeile drei:
1001 0000
für Zeile vier:
1101 0000

Hoffe ich hab mich jetzt nicht vertan :)

Gruß
Daniel

von Michael H. (Gast)


Lesenswert?

Ok, jetzt ist mir klar wie ich ihm mitteile in welche Zeile das Zeichen
kommt, jedoch muss ich ihm doch auch irgendiwe die zweite Stelle
(Zeichenplatz 1-16)der Display Data Ram Adresse mitteilen also 0 bis F.
(übrigens des mit der Funktion is ne gute idee thx).

von Daniel Nöthen (Gast)


Lesenswert?

Schau doch mal auf Seite 7 in die Tabelle "DISPLAY DATA RAM ADDRESS
MAP"

von Michael H. (Gast)


Lesenswert?

Ja, die Frage war anderst gemeint:
mal an einem Beispiel: ich möchte ein Zeichen an die Stelle 47 (Zeile 2
Zeichen 8) schreiben.
Aus dem Beitrag von 15.01.2005 20:46 weis ich dass ich im die Zeile so
mitteilen kann (4 - Zeile 2):
1100 0000
Wie kann ich ihm jetzt noch die 7 (also Zeichen 8) mitteilen?

von Daniel Nöthen (Gast)


Lesenswert?

Hm, ich versteh nicht wo das Problem ist.
1100 0111 wäre das 8. Zeichen in Zeile zwei.

von Michael H. (Gast)


Lesenswert?

Achso, jetzt weis ich wo mein Denkfehler ist, ich bin von der Tabelle
für die Characters ausgegangen und nicht von der normalen
Binär-Codierung, thx.

von Tobias J. (tobiasjohn) Benutzerseite


Lesenswert?

Der Beitrag ist zwar schon älter, aber für Diejenigen die hier noch nach 
suchen möchte ich hier meine Lösung für die oben vorgeschlagene 
"lcd_gotoxy" - Funktion vorstellen:
1
void lcd_goto(unsigned char x,unsigned char y) {
2
  LCD_RS = 0;
3
  unsigned char line[4] = {0x00,0x40,0x10,0x50};
4
  lcd_write(0x80+line[y]+x);
5
}

Gruß,
 Tobias

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.