Ansteuern eines HD44780 mit zwei Leitungen

Der folgende Aufbau löste das Problem 2003 diskret, inzwischen wäre stattdessen eine Lösung durch einen weiteren Mikrocontroller zu empfehlen.

Das Problem

Ein HD44780 Display benötigt mindestens 6 Datenports zu einem Mikrocontroller. Nicht immer sind jedoch ausreichend viele IO Pins frei.

Die Lösung

Einfach die Daten seriell mit einem Mikrocontroller ausgeben und danach mittels zwei CMOS 4015 die Daten wieder für den parallelen Eingang des LC-Displays umwandeln. Mit der folgenden Schaltung funktioniert dies:
Die Schaltung benötigt einen externen Takt (Dauertakt)- Schaltung siehe weitere Schaltungen. Die Taktgeschwindigkeit sollte so gewählt sein, dass das Display innerhalb von 2 Takten die Daten an den Eingängen übernehmen kann. Aus dem Display können mit dieser Schaltung leider keine Daten gelesen werden, dies gilt auch für das Busy Flag. Daher ist der R/W Eingang grundsätzlich auf Masse gelegt. Vor dem Senden des nächstem Befehls muss mindestens genügend Zeit für 8 Takte und genügend Zeit für das Abarbeiten des Display Befehls vergangen sein. Die LED blinkt jedes mal kurz auf, sobald ein Befehl vollständig übertragen wurde. (Zur Kontrolle und eventuelle Fehlersuche nützlich.)

Funktionsweise der Schaltung

Die Schaltung ist so ausgelegt, dass das Display im 8Bit Modus betrieben werden kann.
Ein senden eines Befehls funktioniert wie folgt:
  1. Es muss eine 1 an den Dateneingang angelegt werden.
  2. Es wird ein Puls an den Takt Eingang gegeben. Damit wird die 1 in das erste Register übernommen.
  3. Die nächsten 2 Bits sind beliebig. Es reichen also 2 weitere Pulse am Takt Eingang.
  4. Nun beginnt der eigentliche Display Befehl. An den Dateneingang muss der Wert für den RS Eingang des Displays gelegt werden. Dann wieder ein Puls an den Takt Eingang.
  5. An dem Dateneingang muss der Wert für den Display Eingang DB7 angelegt werden. Wieder Puls auf den Takteingang.
  6. An Dateneingang Wert für DB6 und dann ein Puls auf Takt.
  7. Punkt 6 wiederholen mit DB5, DB4, DB3, DB2, DB1 und zuletzt DB0.
  8. Mindestens 8 Takte des Dauertakts warten bis der nächste Befehl, beginnend mit Punkt 1, gesendet werden kann.
Nach dem Senden des letzten Bits (DB0), wird nach 2 Takten an dem Dauertakt Eingang der Display Eingang E auf 0 gezogen und so zum Bearbeiten des Befehls gebracht. Nach einem weiteren Takt wird die LED eingeschaltet und nach noch einem Takt die Eingänge RS, DB0 - DB7 auf 0 gesetzt(Reset der beiden Schieberegister).

Hinweise

Die Funktionsweise eines solchen LC-Displays und die der Schieberegister (CMOS 4015) kann in Suchmaschinen gefunden werden. Die Stromversorgung beträgt 5 Volt, sie wurde in der oben zeigten Schaltung nicht eingezeichnet. Die beiden ICs und das Display müssen natürlich mit ihr versorgt werden. Inzwischen wurde die Schaltung wieder auseinander genommen, da das LC-Display jetzt für das IR LCD Projekt verwendet wird.