LCD-Frage

Apr 01, 2010 7 Replies

Hallo ng



Ich habe hier ein LC-Display mit der Bezeichnung "HMC16223". 2x16 Zeichen, unbeleuchtet - einfach Standard.



Nun kann ich das LCD per =B5C (R8C/13 von Renesas) zwar ansteuern (via ASCII-Code) also alle bekannten Zeichen darstellen. Leider kein vern=FCnfiges Datenblatt zur Verf=FCgung. Es ist ein 2x16 Zeichen Punktmatrix-Display. Pro Zeichen sind (glaube ich) 5x9 Punke gegeben.



Meine Frage w=E4re nun, wie kann ich per ASCII-Code ALLE Punkte eines Zeichens ansteueren ? Also alle verf=FCgbaren Punkte eines (bzw. jeden) Zeichens?



M=F6chte eine Art "Progressbar" in der zweiten Zeile realisieren und m=F6chte dazu die 16 (5x9) Zeichen ansteuern. Display ist "HDD44780"- kopatibel.



Weis jemand wie man das per ASCII macht - bzw. einen ASCII-Code f=FCe ALLE Punkte ?


lg, Heinz


Hallo Heinz,

Am 01.04.2010 20:56, schrieb Heinz Pripal:

Diese Controller haben auch benutzerdefinierbare Zeichen. Du uploadest nach der Initialisierung die gewünschten Bitmuster ins RAM des Displays. Es ist auch möglich, im laufenden Betrieb diese Zuordnung zu ändern. Das Datenblatt zum HD44780 weiß mehr.

Haken: Es ist nur begrenzt Platz...nur 8 solche Zeichen gibts WIMRE.

HTH Wolfgang

From-address is Spam trap Use: wolfgang (dot) mahringer (at) sbg (dot) at

Tja, so genau kenn ich mich in dieser Umgebung auch nicht aus.

Habe zZ. eben ein herk=F6mmliches Zeichen benutzt, und zwar das "Pipe" "|" (Ascii 124). Das geht bisweilen auch - sch=F6n w=E4re eben, wenn das ganze Punktmatrix f=FCr die "Progressbar" verwendet werden k=F6nnte - sprich ein anderer Ascii-Code eingesetzt werden k=F6nnte!

lg, Heinz

ASCII 255 ist (in den =FCblichen Code-Tabellen) ein "Vollblock", den k=F6nntest Du gut verwenden. Wenn Du eine feinere Aufl=F6sung ben=F6tigst, kannst Du Dir die User- defined Characters mit 1er bis 4er Spalten vorbereiten und dann das ganze entsprechend anreihen. Die max. acht selbstdefinierten Zeichen kannst Du auf dem Display dann so oft anzeigen wie Du sie brauchst. Die Vorgehensweise gibt Dir z.B. das Datenblatt des HD44780 an.

Dann besorg dir einfach irgendein Datenblatt. Die Dinger sind doch gerade sehr kompatible.

Schick einfach mal alle ASCII Zeichen hin. Ich meine da waere eins drunter das alle Pixel einschaltet. Ansonsten bleibt dir immer noch ein benutzerdefiniertes Zeichen zu generieren. Noch klueger waere es natuerlich wenn du dir fuenf Zeichen generierst weil dein Balken dann eine feinere Aufloesung haben koennte.

Olaf

Geht aber nur maximal als 5x8. 5x9 geht damit nicht

Hier mal ein Codeschnipsel in C:

void LCD_printcharx(char b) // ein Zeichen zum Display schicken zb: '*' { char c; c = b & 0xF0; LCD_PORT = c; SetBit(LCD_PORT,LCD_rs); // dataregister adressieren SetBit(LCD_PORT,LCD_enable); // Daten schreiben, Impuls an enable ClrBit(LCD_PORT,LCD_enable); b=b

@ Ingo

Jep ! :-)

Das war es, was ich gesucht habe !

5x8 Punkte =3D Vollblock -> ASCII 255

Vielen Dank !

lg, Heinz

Da man bei einem Progressbar immer nur ein spezielles Zeichen braucht, könnte man mit dem On the fly Überladen auch noch genauer abstufen, also innerhalb der 5 Spalten immer die letzte Spalte Pixelweise auffüllen. Ist aber eher sportlich als notwendig.

Marcel

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required