16×2 LCD este numit astfel deoarece are 16 coloane și 2 rânduri. Există o mulțime de combinații disponibile, cum ar fi: 8×1, 8×2, 10×2, 16×1, etc. Dar cea mai utilizată este cea cu 16*2 LCD, de aceea o folosim aici.
Toate afișajele LCD menționate mai sus vor avea 16 pini, iar abordarea de programare este, de asemenea, aceeași și, prin urmare, alegerea rămâne la latitudinea dumneavoastră. Mai jos este pinout și descrierea pinilor modulului LCD 16×2:
Nr. de serie |
Nr. de pin. |
Numele pinului |
Tipul pinului |
Descrierea pinului |
Conectarea pinului |
|
Pin 1 |
Pământ |
Pini sursă |
Este un pin de masă al LCD-ului |
Conectat la masa MCU/sursă de alimentare |
||
Pin 2 |
VCC |
Pin de sursă |
Acesta este pinul de tensiune de alimentare al LCD |
Conectat la sursa de alimentare a pinul de alimentare al sursei de alimentare |
||
Pin 3 |
V0/VEE |
Pin de control |
Reglează contrastul ecranului LCD. |
Conectat la un POT variabil care poate avea ca sursă 0-.5V |
||
Pin 4 |
Selectare registru |
Pin de control |
Autentifică între Registrul de comenzi/date |
Conectat la un pin MCU și primește fie 0, fie 1. 0 -> Mod comandă 1-> Modul de date |
||
Pin 5 |
Lectura/Scriere |
Control. Pin |
Comută LCD-ul între operațiile de citire/scriere |
Conectat la un pin MCU și primește fie 0, fie 1. 0 -> Operațiune de scriere 1-> Operațiune de citire |
||
Pin 6 |
Activare |
Pin de control |
trebuie să fie menținut la nivel înalt pentru a efectua operațiunea de citire/scriere |
Conectat la MCU și menținut întotdeauna la nivel înalt. |
||
Pini 7-14 |
Biți de date (0-7) |
Pini de date/comandă |
Pini utilizați pentru a trimite comenzi sau date către LCD. |
În modul 4 fire Doar 4 pini (0-3) sunt conectați la MCU În modul 8 fire Toți cei 8 pini (0-7) sunt conectați la MCU |
||
Pin 15 |
LED pozitiv |
Pin LED |
Operare normală a LED-ului pentru a ilumina LCD-ul |
Conectat la +5V |
||
Pin 16 |
LED Negativ |
Pin LED Negativ |
Pin |
Operațiune normală de tip LED pentru a ilumina LCD-ul conectat la GND. |
Conectat la masă |
Este în regulă dacă nu înțelegeți funcția tuturor pinilor, vă voi explica în detaliu mai jos. Acum, să ne întoarcem înapoi la LCD-ul nostru:
Ok, ce sunt aceste două chestii asemănătoare unor cercuri negre de pe spatele LCD-ului nostru?
Aceste cercuri negre constau dintr-un circuit integrat de interfață și componentele sale asociate pentru a ne ajuta să folosim acest LCD cu MCU. Deoarece LCD-ul nostru este un LCD cu matrice de puncte de 16*2 și deci va avea (16*2=32) 32 de caractere în total și fiecare caracter va fi alcătuit din 5*8 puncte de pixeli. Un singur caracter cu toți pixelii activați este prezentat în imaginea de mai jos.
Acum știm că fiecare caracter are (5*8=40) 40 de pixeli și pentru 32 de caractere vom avea (32*40) 1280 de pixeli. Mai mult, LCD-ul ar trebui, de asemenea, să fie instruit cu privire la poziția pixelilor.
Va fi o sarcină agitată să se ocupe de toate cu ajutorul MCU, de aceea se folosește un circuit integrat de interfață ca HD44780, care este montat chiar pe modulul LCD. Funcția acestui circuit integrat este de a primi comenzi și date de la MCU și de a le procesa pentru a afișa informații semnificative pe ecranul nostru LCD.
Să discutăm despre diferitele tipuri de moduri și opțiuni disponibile în LCD-ul nostru, care trebuie să fie controlate de pinii noștri de control.
Modul LCD pe 4 și 8 biți:
LCD-ul poate funcționa în două moduri diferite, și anume modul pe 4 biți și modul pe 8 biți. În modul pe 4 biți trimitem datele picătură cu picătură, mai întâi picătura de sus și apoi picătura de jos. Pentru cei care nu știu ce este un nibble: un nibble este un grup de patru biți, astfel încât cei patru biți inferiori (D0-D3) ai unui octet formează nibble-ul inferior, în timp ce cei patru biți superiori (D4-D7) ai unui octet formează nibble-ul superior. Acest lucru ne permite să trimitem date pe 8 biți.
În timp ce în modul pe 8 biți putem trimite datele pe 8 biți direct dintr-o singură lovitură, deoarece folosim toate cele 8 linii de date.
Acum probabil că ați ghicit, da, modul pe 8 biți este mai rapid și mai impecabil decât modul pe 4 biți. Dar dezavantajul major este că are nevoie de 8 linii de date conectate la microcontroler. Acest lucru ne va face să rămânem fără pini de I/O pe MCU-ul nostru, astfel încât modul pe 4 biți este utilizat pe scară largă. Nu sunt utilizați pini de control pentru a seta aceste moduri. Este doar modul de programare care se schimbă.
Modul de citire și scriere a LCD-ului:
După cum am spus, LCD-ul în sine este format dintr-un circuit integrat de interfață. MCU poate fie să citească, fie să scrie pe acest IC de interfață. De cele mai multe ori vom scrie doar pe IC, deoarece citirea îl va face mai complex și astfel de scenarii sunt foarte rare. Informații cum ar fi poziția cursorului, întreruperile de finalizare a stării etc. pot fi citite dacă este necesar, dar nu intră în scopul acestui tutorial.
Interfața IC prezentă în majoritatea LCD-urilor este HD44780U, pentru a programa LCD-ul nostru ar trebui să aflăm fișa tehnică completă a IC-ului. Fișa de date este prezentată aici.
Comandele LCD:
Există câteva instrucțiuni de comenzi prestabilite în LCD, pe care trebuie să le trimitem la LCD prin intermediul unui microcontroler. Unele instrucțiuni de comandă importante sunt date mai jos:
Cod hexagonal |
Comandă către registrul de instrucțiuni LCD |
0F |
LCD ON, cursor ON |
Curățați ecranul de afișare |
|
Întoarceți Acasă |
|
Decreșteți cursorul (deplasați cursorul spre stânga) |
|
Cursor de descreștere (deplasarea cursorului spre dreapta) |
|
Schimbare afișaj dreapta |
|
Shift display left |
|
0E |
Display ON, cursorul clipește |
Forțați cursorul la începutul primei linii |
|
C0 |
Forțați cursorul la începutul celei de-a doua linii |
2 linii și matrice 5×7 |
|
Cursor linia 1 poziția 3 |
|
3C |
Activați a doua linie |
Afișaj OFF, cursor OFF |
|
C1 |
Saltați la a doua linie, poziția 1 |
OC |
Afișare ON, cursor OFF |
C1 |
Saltă la a doua linie, poziția 1 |
C2 |
Saltă la a doua linie, poziția 2 |
.