Interfacing 16x2 LCD mit 8051-Mikrocontroller

LCD-Display ist ein unvermeidlicher Teil in nahezu allen eingebetteten Projekte und dieser Artikel ist über einen 16 × 2 LCD mit 8051-Mikrocontroller Schnittstelle. Viele Leute finden es schwer, LCD-Modul mit der 8051-Schnittstelle, aber die Tatsache ist, dass, wenn Sie lernen es seine richtig, eine sehr leichte Aufgabe und es zu wissen Sie können leicht eingebettete Projekte entwerfen wie Digitalvoltmeter / Amperemeter, digitale Uhr, Home-Automation-Displays , Statusanzeige Anzeige, digitale Codeschlösser. Digitaltacho / Tacho. Anzeige für Musikplayer usw. usw. gründlich durch diesen Artikel gehen Sie in der Lage machen jeden Text angezeigt werden (einschließlich der erweiterten Zeichen) auf einem beliebigen Teil des Bildschirms 16 × 2-Display. Um die Anbindung zu verstehen, müssen Sie zuerst die LCD-Modul 16 × 2 kennen.

16 × 2 LCD-Modul.

16 × 2 LCD-Modul ist ein sehr verbreiteter Typ von LCD-Modul, das in 8051-basierten Embedded Projekten verwendet wird. Es besteht aus 16 Zeilen und 2 Spalten von 5 × 7 oder 5 × 8-LCD Punktmatrizen. Das Modul wurde spricht hier ist die Nummer JHD162A geben, die ein sehr beliebtes ist. Es ist in einem 16-Pin-Gehäuse mit Gegenlicht, Kontrasteinstellung Funktion und jede Punktmatrix zur Verfügung hat 5 × 8-Punktauflösung. Die Pin-Nummern, der Name und die entsprechenden Funktionen sind in der Tabelle unten dargestellt.

Dieser Stift muss mit der Masse verbunden werden

Positive Versorgungsspannung Pin (5 V DC)

VEE Stift zum Einstellen des Kontrasts der LCD-Anzeige gedacht ist, und der Kontrast kann an diesem Stift durch Variieren der Spannung eingestellt werden. Dies wird durch Verbinden eines Endes eines Topfes auf den Vcc (5 V), andere Ende mit dem Boden und den Anschluss des Mittelanschluss (Wischer) von der POT zum VEE Stift erfolgen. Siehe den Schaltplan für ein besseres Verständnis.

Die JHD162A hat zwei in Registern nämlich Datenregister und Befehlsregister aufgebaut. Datenregister die Daten für die Platzierung angezeigt werden. und das Befehlsregister die Befehle zu platzieren. Der 16 × 2 LCD-Modul verfügt über eine Reihe von Befehlen einen bestimmten Job mit der Anzeige zu tun jeder gemeint. Wir werden später im Detail über die Befehle diskutieren. Hohe Logik an der RS ​​Pin das Datenregister und Low-Logik an der RS ​​Pin wählen wird das Befehlsregister wählen. Wenn wir machen die hohen RS Stift und die eine Daten im 8-Bit-Datenleitung (DB0 bis DB7) gesetzt. die LCD-Modul wird es als Daten erkennen angezeigt werden. Wenn wir RS Pin niedrig machen und Daten auf der Datenleitung setzt, wird das Modul es als Befehl erkennen.

R / W-Stift ist für die Auswahl zwischen Lese- gemeint und Modi schreiben. High-Pegel an diesem Pin ermöglicht Lesemodus und Low-Pegel an diesem Pin Schreibmodus ermöglicht.

E-Pin ist das Modul zu ermöglichen. Ein hoch bis niedrig-Übergang an diesem Stift wird um das Modul zu aktivieren.

DB0 bis DB7 sind die Datenpins. Die Daten werden angezeigt, und die Befehlsanweisungen werden auf diesen Stiften angeordnet.

LED + ist die Anode der LED-Hintergrundbeleuchtung und dieser Stift muss auf Vcc durch einen geeigneten Reihe eines Strombegrenzungswiderstand verbunden sein. LED- ist die Kathode der Rücklicht-LED und dieser Stift muss geerdet sein.

16 × 2 LCD-Modul Befehle.

16 × 2 LCD-Modul weist einen Satz von voreingestellten Befehlsanweisungen. Jeder Befehl wird das Modul machen, eine bestimmte Aufgabe zu tun. Die am häufigsten verwendeten Befehle und ihre Funktion sind in der Tabelle unten angegeben.

LCD-Initialisierung.

Die Schritte, die zur Initialisierung des LCD-Display getan werden muss, ist unten angegeben und diese Schritte sind für fast alle Anwendungen üblich.

  • Senden 38H an die 8-Bit-Datenleitung für die Initialisierung
  • Senden 0FH für die Herstellung von LCD-ON, Cursor auf und Cursor blinkt ON.
  • Senden 06H für Cursorposition erhöht wird.
  • Senden 01H für die Anzeige löschen und den Cursor zurück.

Senden von Daten an das LCD.

Die Schritte für die Daten an das LCD-Modul zu senden ist unten angegeben. Ich habe bereits gesagt, dass der LCD-Modul Stifte nämlich RS besitzt, R / W und E. Es ist der logische Zustand dieser Stifte, die das Modul bilden, um zu bestimmen, ob eine bestimmte Dateneingabe ein Befehl oder Daten angezeigt werden.

  • Stellen R / W niedrig.
  • Machen RS = 0, wenn Datenbyte ein Befehl und RS machen = 1, wenn die Daten-Byte eine Daten angezeigt werden soll.
  • Legen Sie Datenbyte auf dem Datenregister.
  • Pulse E von hoch zu niedrig.
  • Wiederholen Sie die obigen Schritte für weitere Daten zu senden.

Schaltplan.

Interfacing 16x2 LCD mit 8051-Mikrocontroller

Interfacing 16 × 2 LCD-Modul 8051

Das Schaltbild zeigt oben gegeben, wie ein Modul 16 × 2 LCD Schnittstelle mit AT89S1 Mikrocontroller. Der Kondensator C3, einen Widerstand R3 und Druckknopfschalter S1 bildet die Rücksetzschaltung. Keramik-Kondensatoren C1, C2 und Kristall X1 ist mit dem Taktschaltkreis zusammen, die die Systemtaktfrequenz erzeugt. P1.0 bis P1.7 Pins des Mikrocontrollers ist mit dem DB0 bis DB7-Pins des Moduls jeweils verbunden und durch diese Route führt die Daten an das LCD-Modul. P3.3, P3.4 und P3.5 an der E, R / W verbunden, RS Pins des Mikrocontrollers und durch diesen Weg der Steuersignale an den LCD-Modul transffered sind. Der Widerstand R1 begrenzt den Strom durch das Hintergrundlicht-LED und so tun, um die Rücklichtintensität. POT R2 zum Einstellen des Kontrasts der Anzeige verwendet wird. Programm für LCD-8051-Mikrocontroller Schnittstelle ist unten dargestellt.

Subroutine CMND setzt die Logik der RS, R / W, E Pins der LCD-Moduls, so dass das Modul die Eingangsdaten (gegeben DB7 DB0) erkennt, als ein Befehl.

Subroutine DISP stellt die Logik der RS, R / W, E-Pins des Moduls, so dass das Modul die Dateneingabe erkennt als Daten angezeigt werden.

Interfacing LCD-Modul 8051 in 4-Bit-Modus (unter Verwendung von nur 4 Pins eines Anschlusses)

Der Mikrocontroller wie 8051 hat nur eine begrenzte Anzahl von GPIO-Pins (GPIO - General Purpose Input Output). So komplexe Projekte entwerfen wir eine ausreichende Anzahl von I / O-Pins benötigen. Eine LCD-Modul kann mit einem Mikrocontroller entweder im 8-Bit-Modus angeschlossen werden (wie oben) oder in 4-Bit-Modus. 8-Bit-Modus ist die herkömmliche Betriebsart, die 8 Datenleitungen und RS verwendet, R / W, E Stifte für die Funktion. Jedoch 4-Bit-Modus verwendet nur 4 Datenleitungen zusammen mit den Steuerstiften. Dies wird speichert die Anzahl der GPIO-Pins für andere Zwecke benötigt wird.

  • Schnittstelle einen LCD-Display mit 8051 in 4-Bit-Modus
  • Verwenden, um einen einzelnen Port des Mikrocontrollers sowohl für Daten- und Steuerleitungen des LCD.

Interfacing 16x2 LCD mit 8051-Mikrocontroller

LCD-Modul 8051-4-Bit-Modus

Wie in dem Schaltbild gezeigt, Port 0 des Controllers wird es zum Bilden einer Schnittstelle mit einem LCD-Modul verwendet wird. Im 4-Bit-Modus nur 4 Zeilen D4-D7, zusammen mit RS, R / W und E-Pins verwendet. Das spart uns 4 Pins unserer Steuerung, die wir für andere Zwecke eingesetzt werden könnten. Hier brauchen wir nur auf die LCD-Modul zu schreiben. So ist die R / W-Stift kann es sein, Boden, wie in dem schematischen Diagramm dargestellt. Auf diese Weise kann die Gesamtzahl der Stifte 6 in 4-Bit-Modus verringert wird, werden die Datenbytes in zwei vier Bits aufgeteilt und werden in Form einer nibble übertragen. Die Datenübertragung zu einem LCD wird durch Zuordnen von logischen Zuständen auf die Steuerstifte RS und E. Die Rücksetzschaltung, Oszillatorschaltung und die Stromversorgung benötigen, durchgeführt für das reibungslose Funktionieren der Schaltung zur Verfügung gestellt werden.

Programm - Schnittstelle LCD-Modul 8051-4-Bit-Modus

Wichtige Aspekte des Programms

Der Programmierteil in Assemblersprache ausgeführt wird, anstatt C. eingebettete Wie bereits erwähnt, die 8-Bit-Daten sind in zwei 4-Bit-Daten brechen und LCD senden. Ein Unterprogramm namens „TEILER“ wird im Programm zum Aufschneiden von 8-Bit-Daten in Nibbles verwendet. Es verwendet zwei Speicherstelle ‚U‘ und ‚L‘ für die oberen und unteren Nibbles zu speichern. Das Unterprogramm namens „MOVE“ wird verwendet, um die oberen und unteren Nibbles in die Datenstifte des LCD zu setzen, indem eine hohe auf niedrige Impuls am E-Pin des LCD-Moduls machen. Wenn wir einen Befehl senden müssen, „LCD_CMD“ verwendet wird. In diesem Unterprogramm wird der RS-Pin des LCD gelöscht, um die LCD zu benachrichtigen, dass das Byte an seinem Datenstift ein Befehl ist. Und Unterprogramm mit „LCD_DISP“ wird für das Senden von Daten verwendet. Hier wird der RS ​​Pin eingestellt, der den LCD mitteilen wird, dass das angekommen Byte ein zur Anzeige von Daten ist. Die notwendigen Befehle für die LCD-Initialisierung werden am Ende eines Teil des Programms festgelegt. Zusammen mit, dass der Text angezeigt werden soll, wird auch dort definiert mit einem Etikett „TEXT1“. „LINE1“ AND „LINE2“ Etiketten enthält die Befehle zur Auswahl des 1. und 2. Zeilen des LCD sind.

#einschließen
#include“delay1sec.h“
#define lcd_dat P1
sbit rs = P3 ^ 0;
sbit rw = P3 ^ 1;
sbit en = P3 ^ 2;

Leerer write_lcd (char);
Leerer cmd_lcd (char);
Leerer disp_lcd (char);
Leere init_lcd ();
Leerer str_lcd (char * s);
Leer int_lcd (unsigned int);
Leere float_lcd (float);

Leerer write_lcd (char dat)
lcd_dat = dat;
rw = 0;
en = 1; // zum Verriegeln ein Byte info
en = 0; // klar zum Verriegeln nächste Info
delay_ms (2);
>

Leerer cmd_lcd (char cmd)
rs = 0; // gesetzt cmd Register
write_lcd (cmd);
>

Leerer disp_lcd (char c)
rs = 1; // Satz Datenregister
write_lcd (c);
>
nichtig init_lcd ()
cmd_lcd (0x02); // gibt Cursor nach Hause
cmd_lcd (0x38); // 8-Bit-Betriebsmodus
cmd_lcd (0x0E); // auf cur Display aus
cmd_lcd (0x01); // clr DDRAM (Anzeigedaten-RAM)
cmd_lcd (0x06); // Cursor nach rechts verschieben angezeigt nach jedem Zeichen
cmd_lcd (0x80); // beginnt disp von Linie 1 po 0
>

Main()
unsigned char i;
init_lcd ();

cmd_lcd (0x80 + i);
str_lcd ( "Willkommen");
delay_ms (500);
cmd_lcd (0x01);
cmd_lcd (0x80);

In Verbindung stehende Artikel