Oft werden mit Microcontrollern nur einfache LEDs gesteuert. Sie dienen zum Anzeigen der Zustände der einzelnen Ports. Benutzt man das Binärsystem so lassen sich damit sogar schon z. B. Messwerte als Binärzahlen ausgeben. Ein nächster Schritt ist oft der Anschluss einer 7-Segement-LED-Anzeige (s. z. B. den ELO-Beitrag „Digitalvoltmeter"). Damit lassen sich zumindest Zahlen im einfach lesbaren Dezimalformat darstellen.
Eine nochmals deutliche Verbesserung lässt sich durch Anschluss einer LCD-Punkt-Matrixanzeige erzielen. Mit einer derartigen Anzeige ist dann sogar die Ausgabe von Texten möglich.
Prinzipiell wäre die Ansteuerung einer solchen Anzeige natürlich mit erheblichem Aufwand verbunden, immerhin muss man dafür z. B. für eine 16-stellige Anzeige mit jeweils einer 5 x 8 Punktmatrix pro Zeichen schon 16 x 5 x 8 = 640 Punkte kontrollieren! Glücklicherweise hält sich der Hardware-Aufwand für die Ansteuerung einer solchen Anzeige aber in Grenzen. Mit dem Display-Treiber HD 44780 ist es möglich, die gesamte Anzeigeeinheit mit nur 6 Leitungen anzusteuern. Dieser Treiber hat sich praktisch als Standard durchgesetzt. Er wird daher in den meisten alphanumerischen LCD-Displays verwendet. Displays die diesen Treiberbaustein bereits integriert haben, weisen dann einen 16-poligen Anschluss auf, der wie folgt belegt ist:

Ein Beispiel für ein solches Display ist das Modell 161A von DisplayTech das z. B von der Fa. Reichelt vertrieben wird. In der einzeiligen Ausführung ist es für ca. € 5.- erhältlich. Da das Display über einen sogenannten 4-Bit-Modus angesteuert werden kann, kommt man mit nur 4 Datenleitungen und zwei Steuersignalen, insgesamt also mit den schon erwähnten 6 Verbindungen zum Microcontroller aus. Wenn man für den Controller einen ATmega8 einsetzt, so bleiben auch nach Abzug der Ports, die für die Display-Steuerung erforderlich sind noch immer ausreichend Ressourcen für weitere Anwendungen übrig.

Die Software zu Ansteuerung des Displays ist ebenfalls sehr einfach. Unter BASCOM existiert ein Befehlssatz, der die Kommunikation mit der Anzeige komfortabel unterstützt. Mit Befehlen wie „CONFIG LCD" kann das Display problemlos konfiguriert werden. Mit weiteren Befehlen ist dann ein einfaches Übertragen von Zeichen zum Display möglich. Aber auch in C ist die Ansteuerung nicht besonders aufwändig und entsprechende Support-Routinen sind auf vielen Internetseiten zu finden. Für erste Tests findet sich im Anhang ein Beispielprogramm in C sowie ein fertig compiliertes .hex-File [1] das einen kurzen Begrüßungstext anzeigt.Dieses kann beispielsweise mit PonyProg [2] in den Controller geschrieben werden. Allerdings ist der Code in "condensed style", d. h. maschinenoptimiert, und damit nicht sehr "didaktisch". Aber es soll ja auch noch Speicherplatz für andere Applikationen übrig bleiben, auf Dauer nur einen netten Text anzeigen ist ja auch nicht so spannend...
Die folgende Abbildung zeigt das Schaltbild für die Minimalausführung der Displaysteuerung mit dem ATMega8. Neben dem Display und dem Microcontroller selbst ist nur noch ein Poti erforderlich, mit dem der Kontrast der Anzeige eingestellt werden kann. Puristen könnten selbst dieses Poti noch durch zwei Einzelwiderstände ersetzen, wenn eine feste Kontrasteinstellung ausreichend ist.

Im Aufbaubild sind neben diesen absolut erforderlichen Bauelementen noch ein Ein-/Aussschalter und eine LED als Einschaltkontrolle zu sehen. Außerdem wurden einige Abblockkondensatoren hinzugefügt. Diese sind erforderlich, um Spannungsfluktuationen auszugleichen, wenn der Aufbau noch um weitere Bauelemente ergänzt werden soll. Der gestrichelt eingezeichnete 10 kΩ Widerstand dient zur Stabilisierung des Reset-Eingangs (Pull-Up). Er kann für Testzwecke entfallen, sollte jedoch im Normalbetrieb immer eingebaut werden.
Wie aus dem Aufbauphoto ersichtlich, verbleibt auf dem Breadboard noch genügend Freiraum für weitere Schaltungsideen.
Somit kann man die Basis-Anzeigeeinheit natürlich auch schnell zu praxistauglichen Anwendungen ergänzen.
Durch hinzufügen eines Schwingquarzes ließe sich z. B. eine komfortable Tischuhr mit Datumsanzeige realisieren:

Oder man ergänzt ein vorhandenes Netzgerät um eine Strom- und Spannungsanzeige. Die internen A/D-Wandler des ATMega ermöglichen dies ohne großen Hardware-Zusatzaufwand:

Auch ein präzises Digital-Zimmerthermometer ist realisierbar, z. B. in Verbindung mit einem NTC oder dem Temperatursensor LM75):

Oder man kombiniert sogar die Uhr mit dem Thermometer....
Anhang:
[1] Test-Datei: LCD_for_ELO.zip
[2] www.lancos.com/prog.html
[3] Für einen ersten Einstieg in das Thema ist das Lernpaket Microcontroller bestens geeignet
[4] Beispiel für die Ansteuerung eines LCD in Bascom