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.
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.
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
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).
Schau doch mal auf Seite 7 in die Tabelle "DISPLAY DATA RAM ADDRESS MAP"
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?
Hm, ich versteh nicht wo das Problem ist. 1100 0111 wäre das 8. Zeichen in Zeile zwei.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.