Seit dem Wochenende habe ich ein 20x4 LC-Display (LCD 204b LED von Reichelt) an meinen AVR angeschlossen :) Über dieses ist es jetzt erstmal möglich, Daten aus dem Controller ohne den Umweg über den PC (unverfälscht) auszugeben.
Um das Display zu testen habe ich mir erstmal ein paar Routinen geschrieben, die das Display initialisieren und einen String darauf ausgeben. Dieses Programm hänge ich mal an den Beitrag an, damit ihr einen kleinen Eindruck kriegt ;) Aber Achtung: Es fängt im Moment noch keinerlei (Bediener-)Fehler ab! D.h. ein zu langer String oder eine falsche Position auf dem Display können eine unvorhergesehene Reaktion nach sich ziehen.... oder es funktioniert einfach. Ich habe das noch nicht ausprobiert ;) Mit Zahlen und Buchstaben funktioniert es bisher auf jeden Fall... Sonderzeichen habe ich noch nicht getestet.
Ich habe es auch geschafft, meinen Schaltplan mal halbwegs ordentlich umzusetzen, so dass der Sourcecode auch direkt etwas mehr Sinn ergibt ;)
An einigen Stellen kann an der Verschaltung bestimmt noch gefeilt werden, aber für's erste funktioniert es so schonmal.
Ein paar Probleme bzw. Unklarheiten, die bei mir aufgetreten sind:
- das E(nable)-Bit: Dieses Bit muss gesetzt werden, damit der Controller des LCD die anliegenden Daten übernimmt. Solange das Bit High ist, darf sich der Zustand der anderen Bits nicht ändern, sonst gibt es Probleme ;) Damit dieses Bit immer einen definierten Zustand hat, habe ich es über einen parallelen 10k Ohm Widerstand auf Masse gelegt.
- die Versorungsspannung des Displays: Achtet darauf, dass die Versorgungsspannung groß und stabil genug ist. Ich hatte anfangs das Problem, dass ich statt 5 nur 3V anliegen hatte. Das Display lief damit zwar auch, aber nicht lange. Es erschien kurz der Text und danach verschwand er aber auch sofort wieder (da das Display einen Reset ausführte).