Mikrocontroller – Ein Leitfaden für Anfänger – Einführung und Ansteuerung eines LCD (Liquid Crystal Display)

Mikrocontroller - Eine Einführung für Anfänger - Einführung und Anbindung eines LCD (Liquid Crystal Display)

Der Mikrocontroller ist ein wunderbares Stück Ingenieurskunst und kann viele Dinge tun (mit Hilfe einer großartigen Programmierung), aber er ist immer noch eine undurchsichtige Black Box. Wenn Sie möchten, dass er Informationen teilt oder Ihnen zeigt, was er zu tun versucht, müssen Sie ein Ausgabegerät anschließen (interfacing). Ein Ausgabegerät ist etwas, das Ihnen eine Möglichkeit bietet, Informationen vom Mikrocontroller anzuzeigen. Das heißt, das Ausgabegerät ermöglicht es dem Mikrocontroller, Informationen an das "Gerät" auszugeben. Wir haben bereits mit einem anderen Ausgabegerät gearbeitet, der LED (Light Emitting Diode), die Licht abgibt, wenn man sie entsprechend programmiert. Wir werden uns eingehend mit der Anbindung und Programmierung des LCD (Liquid Crystal Display) befassen.

Das LCD ist ein wesentlich informativeres Ausgabegerät als eine einzelne LED. Das LCD ist ein Display, das problemlos Zeichen auf seinem Bildschirm anzeigen kann. LCDs variieren in Größe, Preis und Konfiguration, von ein paar Zeilen bis hin zu großen Displays. Einige sind sogar sehr spezifisch für eine einzelne Anwendung konzipiert und haben nur die Fähigkeit, festgelegte Grafiken anzuzeigen. Wir werden ein LCD verwenden, das die Fähigkeit hat, vier (4) Zeilen mit Zeichen anzuzeigen, die eine Zeilenlänge von 20 Zeichen haben. Dies ist völlig ausreichend, um eine ganze Menge Informationen anzuzeigen. Ein weiteres beliebtes LCD hat 2 Zeilen und 16 Zeichen pro Zeile.

In diesem Video-Tutorial werden wir uns ansehen, wie das LCD Informationen und Steuerungen empfängt, und welche Anforderungen erfüllt sein müssen, um sicherzustellen, dass die Informationen in der Weise an das LCD gesendet werden, dass es sie entsprechend aufnehmen kann. Was bedeutet das also alles?

Zunächst haben wir eine Geschwindigkeitsdiskrepanz zwischen dem LCD und dem Mikrocontroller. Der Mikrocontroller ist viel schneller als das LCD, daher muss das Programm des Mikrocontrollers dies vollständig berücksichtigen und die Zeit kompensieren, in der das LCD mit den Dingen beschäftigt ist, die Sie ihm zuvor mitgeteilt haben. Glücklicherweise kann das LCD uns diesen Busy-Status mitteilen. Daher werden wir eine Funktion erstellen, die wartet, bis das LCD nicht mehr beschäftigt ist. Damit das LCD Informationen vom Mikrocontroller akzeptiert oder Informationen an den Mikrocontroller zurückgibt, müssen wir seinen Enable-Pin ein- und ausschalten, während die Informationen zur Aufnahme durch das LCD vorhanden sind.

So ist es wahrscheinlich ein guter Zeitpunkt, über die Pins am LCD zu sprechen. Die grundlegendsten Pins sind die Stromversorgungs-Pins, damit das Display überhaupt funktionieren kann. Es gibt einen VDD-Pin für 5 Volt und einen VSS-Pin für Masse. Es gibt einen V0-Pin zur Einstellung des LCD-Kontrasts. Einige LCDs haben sogar eine LED-Hintergrundbeleuchtung und sind im Allgemeinen die letzten beiden Pins.

Genau wie der Mikrocontroller hat das LCD eine Reihe von 8 Pins, die als sein Port dienen. Die Pins, die als sein Port dienen, sind D0, D1, D2, D3, D4, D5, D6 und D7. Diese Pins werden im Allgemeinen verwendet, um Informationen in das LCD zu leiten, können aber auch so eingestellt werden, dass sie Informationen zurück an den Mikrocontroller leiten. Ich weiß, Sie denken wahrscheinlich: "Aber Patrick (das bin ich) hat mir gesagt, dass dies ein Ausgabegerät ist?!?". Nun, sicher, das ist es, aber von Zeit zu Zeit muss es Sie über seinen Zustand informieren (ob es beschäftigt ist oder nicht). Zwei Arten von Informationen können über diese Pins übertragen werden: Daten, die auf dem LCD-Bildschirm angezeigt werden sollen, oder Steuerinformationen, die verwendet werden, um Dinge wie das Löschen des Bildschirms, die Steuerung der Cursorposition, das Ein- oder Ausschalten des Displays usw. zu tun. Diese Daten-Pins sind mit den Pins des gewünschten Ports am Mikrocontroller verbunden. Wenn Sie beispielsweise möchten, dass das LCD mit PORTB verbunden ist, würde D0 mit Pin0 von Port B verbunden, und: D1-PortB Pin1, D2-PortB Pin2, D3-PortB Pin3, D4-PortB Pin4, D5-PortB Pin5, D6-PortB Pin6 und D7-PortB Pin7. Auf diese Weise gibt es eine Pin-zu-Pin-Konsistenz, und wenn Sie ein Zeichen in Form einer Hexadezimalzahl übergeben, empfängt das LCD es auf die richtige Weise. Wenn nicht, gibt es unerwartete Ergebnisse, es sei denn, Sie verwenden eine einzigartige Form der Byte-Struktur, aber lassen Sie sich davon nicht abhalten.

Es gibt andere Pins am LCD, die dem LCD helfen, Informationen zu akzeptieren, und dem LCD mitteilen, ein Zeichen oder eine Steuerung zu empfangen, oder die Lese- oder Schreibfunktion (Eingabe oder Ausgabe) der Pins steuern. Nur zur Klarstellung, das Lesen/Schreiben ist mikrocontrollerzentriert: Der LCD-"Lesemodus" ist der Prozess der Übergabe von Informationen vom LCD an den Mikrocontroller (Mikrocontroller-Port als Eingang eingestellt oder lesen oder zuhören).; der LCD-"Schreibmodus" ist die Übergabe von Informationen vom Mikrocontroller an das LCD (Mikrocontroller auf Ausgabe oder Schreiben eingestellt).

Der Pin am LCD, der für den Lese- und Schreibzustand verantwortlich ist, ist mit R/W beschriftet. Der Pin am LCD, der dafür verantwortlich ist, ob die gesendeten Informationen ein Zeichen oder eine Steuerung sind, ist der RS-Pin (Register Select). Und der Pin, der dem LCD hilft, Informationen zu akzeptieren, wird EN-Pin (Enable) genannt.

Es gibt drei grundlegende Dinge, die Sie mit einem LCD für die ordnungsgemäße Funktion tun möchten (fortgeschrittenere Funktionen können mit diesen drei grundlegenden Routinen ausgeführt werden): (1) sicherstellen, dass das LCD nicht beschäftigt ist; (2) den Cursor oder die Anzeigefunktion des LCD steuern; und (3) ein Zeichen an das LCD schreiben, damit es angezeigt wird. Jede dieser Aufgaben erfordert einen eigenen Prozess:

(1) Überprüfen, ob das LCD beschäftigt ist (Wenn Sie versuchen, ein Zeichen auf dem LCD anzuzeigen, während das LCD beschäftigt ist, ignoriert das LCD das Zeichen einfach und es wird nicht angezeigt).

  • Wir setzen den Port so, dass er Daten auf dem Mikrocontroller empfängt (Datenrichtung als Eingang).
  • Wir versetzen das LCD in den Lesemodus (RW an).
  • Wir versetzen das LCD in den Befehlsmodus (RS aus).
  • Und der Port enthält jetzt auf magische Weise die Daten vom LCD (D7-Pin ist AN, wenn das LCD beschäftigt ist, und AUS, wenn das LCD nicht beschäftigt ist).

(2) Einen Befehl an das LCD senden

  • Wir überprüfen, ob das LCD beschäftigt ist (Führen Sie die Schritte unter #1 oben aus).
  • Wir setzen die Portrichtung als Ausgang, damit wir Informationen an das LCD senden können.
  • Wir schalten RW aus, damit wir schreiben können.
  • Wir schalten RS für den Befehlsmodus aus.
  • Wir aktivieren die Datenleitungen mit dem gewünschten Befehl (indem wir den Port einfach gleich einer Zahl setzen, die mit einem bestimmten Befehl verbunden ist).
  • Wir schalten Enable ein und dann wieder aus.
  • Das LCD führt den Befehl auf magische Weise aus.

(3) Ein Zeichen an das LCD senden: Dies ist dasselbe wie das Senden eines Befehls, außer dass RS aktiviert ist und der Port dem Zeichen entspricht, das dem ASCII-Code entspricht.

Wir schalten also wirklich nur Pins ein und aus, genau wie wir es mit den LEDs aus den vergangenen Tutorials getan haben. So einfach ist das. Der einzige Haken ist, dass sie in der richtigen Reihenfolge erfolgen müssen.

Zurück zum Blog

Hinterlasse einen Kommentar

Bitte beachte, dass Kommentare vor der Veröffentlichung freigegeben werden müssen.