16×2 LCD wird so genannt, weil; es hat 16 Spalten und 2 Zeilen. Es gibt viele Kombinationen wie 8×1, 8×2, 10×2, 16×1, usw. Aber die am häufigsten verwendete ist die 16*2 LCD, daher verwenden wir sie hier.
Alle oben genannten LCD-Displays haben 16 Pins und der Programmieransatz ist auch derselbe und daher ist die Wahl Ihnen überlassen. Unten ist die Pinbelegung und Pinbeschreibung des 16×2 LCD Moduls:
Sr. Nr. |
Pin Nr. |
Pin Name |
Pin Typ |
Pin Beschreibung |
Pin Anschluss |
Pin 1 |
Masse |
Quellen-Pin |
Dies ist ein Masse-Pin des LCD |
Verbunden mit der Masse der MCU/Stromquelle |
|
Pin 2 |
VCC |
Source Pin |
Dies ist der Versorgungsspannungs-Pin von LCD |
Verbunden mit dem |
|
Pin 3 |
V0/VEE |
Steuerpin |
Stellt den Kontrast des LCD ein. |
Angeschlossen an einen variablen POT, der 0-5V |
|
Pin 4 |
Register Select |
Control Pin |
Schaltet zwischen Command/Data Register um |
Verbunden mit einem MCU Pin und erhält entweder 0 oder 1. 0 -> Befehlsmodus 1-> Datenmodus |
|
Pin 5 |
Lesen/Schreiben |
Steuerung Pin |
Schaltet das LCD zwischen Lese- und Schreibbetrieb um |
Wird mit einem MCU-Pin verbunden und erhält entweder 0 oder 1. 0 -> Schreibvorgang 1-> Lesevorgang |
|
Pin 6 |
Enable |
Steuerungspin |
Muss high gehalten werden, um Lese-/Schreibvorgang auszuführen |
Verbunden mit MCU und immer high gehalten. |
|
Pin 7-14 |
Datenbits (0-7) |
Daten-/Befehls-Pin |
Pins zum Senden von Befehlen oder Daten an das LCD. |
Im 4-Draht Modus Nur 4 Pins (0-3) sind mit der MCU verbunden Im 8-Draht Modus Alle 8 Pins (0-7) sind mit der MCU verbunden |
|
Pin 15 |
LED-Positiv |
LED-Pin |
Normaler LED-Betrieb zum Beleuchten des LCD |
Angeschlossen an +5V |
|
Pin 16 |
LED Negativ |
LED Pin |
Normaler LED-ähnlicher Betrieb zum Beleuchten des mit GND verbundenen LCD. |
Verbunden mit Masse |
Es ist in Ordnung, wenn du die Funktion aller Pins nicht verstehst, ich werde sie weiter unten im Detail erklären. Wenden wir uns nun wieder unserem LCD zu:
Okay, was sind diese zwei schwarzen Kreise auf der Rückseite unseres LCD?
Diese schwarzen Kreise bestehen aus einem Schnittstellen-IC und den dazugehörigen Komponenten, die uns helfen, dieses LCD mit der MCU zu verwenden. Da unser LCD ein 16*2 Dot-Matrix-LCD ist, wird es insgesamt (16*2=32) 32 Zeichen haben und jedes Zeichen wird aus 5*8 Pixelpunkten bestehen. Ein einzelnes Zeichen mit allen aktivierten Pixeln ist in der folgenden Abbildung zu sehen.
Wir wissen also, dass jedes Zeichen (5*8=40) 40 Pixel hat und für 32 Zeichen haben wir (32*40) 1280 Pixel. Außerdem sollte das LCD auch über die Position der Pixel informiert werden.
Es wird eine hektische Aufgabe sein, alles mit Hilfe der MCU zu handhaben, daher wird ein Schnittstellen-IC wie HD44780 verwendet, das auf dem LCD-Modul selbst montiert ist. Die Funktion dieses ICs ist es, die Befehle und Daten von der MCU zu erhalten und sie zu verarbeiten, um aussagekräftige Informationen auf unserem LCD-Bildschirm anzuzeigen.
Lassen Sie uns die verschiedenen Arten von Modi und Optionen besprechen, die in unserem LCD verfügbar sind und von unseren Steuerpins gesteuert werden müssen.
4-Bit- und 8-Bit-Modus des LCD:
Das LCD kann in zwei verschiedenen Modi arbeiten, nämlich im 4-Bit-Modus und im 8-Bit-Modus. Im 4-Bit-Modus senden wir die Daten Nibble für Nibble, zuerst das obere Nibble und dann das untere Nibble. Für diejenigen, die nicht wissen, was ein Nibble ist: ein Nibble ist eine Gruppe von vier Bits, so dass die unteren vier Bits (D0-D3) eines Bytes das untere Nibble bilden, während die oberen vier Bits (D4-D7) eines Bytes das obere Nibble bilden. Dies ermöglicht es uns, 8-Bit-Daten zu senden.
Während wir im 8-Bit-Modus die 8-Bit-Daten direkt in einem Zug senden können, da wir alle 8 Datenleitungen verwenden.
Nun müssen Sie es erraten haben, ja, der 8-Bit-Modus ist schneller und fehlerfrei als der 4-Bit-Modus. Aber der größte Nachteil ist, dass 8 Datenleitungen mit dem Mikrocontroller verbunden werden müssen. Das führt dazu, dass uns die E/A-Pins unserer MCU ausgehen, weshalb der 4-Bit-Modus weit verbreitet ist. Zum Einstellen dieser Modi werden keine Steuerpins verwendet. Es ist nur die Art der Programmierung, die sich ändert.
Lese- und Schreibmodus des LCD:
Wie gesagt, besteht das LCD selbst aus einem Interface IC. Die MCU kann diesen Schnittstellen-IC entweder lesen oder beschreiben. In den meisten Fällen werden wir nur auf den IC schreiben, da Lesen die Sache komplexer macht und solche Szenarien sehr selten sind. Informationen wie die Position des Cursors, Statusabschlüsse, Interrupts usw. können bei Bedarf ausgelesen werden, aber das ist nicht Gegenstand dieses Tutorials.
Der Schnittstellen-IC, der in den meisten LCDs vorhanden ist, ist HD44780U, und um unser LCD zu programmieren, sollten wir das komplette Datenblatt des ICs kennen. Das Datenblatt finden Sie hier.
LCD-Befehle:
Es gibt einige voreingestellte Befehlsanweisungen im LCD, die wir durch einen Mikrocontroller an das LCD senden müssen. Einige wichtige Befehlsanweisungen sind unten angegeben:
Hex Code |
Befehl an LCD Instruction Register |
0F |
LCD ON, Cursor EIN |
Bildschirm löschen |
|
Zurück Home |
|
Cursor verkleinern (Cursor nach links verschieben) |
|
Cursor inkrementieren (Cursor nach rechts verschieben) |
|
Anzeige nach rechts verschieben |
|
Anzeige nach links schieben |
|
0E |
Anzeige EIN, Cursor blinkt |
Cursor an den Anfang der ersten Zeile setzen |
|
C0 |
Cursor an den Anfang der zweiten Zeile setzen |
2 Zeilen und 5×7 Matrix |
|
Cursor Zeile 1 Position 3 |
|
3C |
Zweite Zeile aktivieren |
Anzeige AUS, Cursor AUS |
|
C1 |
Zur zweiten Zeile springen, Position 1 |
OC |
Anzeige EIN, Cursor AUS |
C1 |
Sprung zur zweiten Zeile, Position 1 |
C2 |
Sprung zur zweiten Zeile, Position 2 |