Prikazne jedinice su najvažniji izlazni uređaji u ugrađenim projektima i elektroničkim proizvodima. LCD 16x2 jedna je od najčešće korištenih zaslona. LCD 16x2 znači da postoje dva retka u kojima se po retku može prikazati 16 znakova, a svaki znak zauzima 5X7 matričnog prostora na LCD-u. U ovom uputstvu spojit ćemo LCD modul 16X2 na mikrokontroler 8051 (AT89S52). Povezivanje LCD-a s mikrokontrolerom 8051 moglo bi izgledati prilično složeno za početnike, ali nakon razumijevanja koncepta izgledalo bi vrlo jednostavno i lako. Iako vam možda treba vremena jer trebate razumjeti i povezati 16 pinova LCD-a na mikrokontroler. Dakle, prvo da shvatimo 16 pinova LCD modula.
Možemo ga podijeliti u pet kategorija, Power Pins, kontrastni pin, Control Pins, Data pins i Backlight pins.
|
Kategorija |
Pin NO. |
Naziv pribadače |
Funkcija |
|
Igle za napajanje |
1 |
VSS |
Priključak za uzemljenje, povezan s uzemljenjem |
|
2 |
VDD ili Vcc |
Napon Pin + 5V |
|
|
Pin za kontrast |
3 |
V0 ili VEE |
Postavka kontrasta, spojena na Vcc temeljnim promjenjivim otpornikom. |
|
Kontrolne igle |
4 |
RS |
Registriraj Odaberite pin, RS = 0 naredbeni način, RS = 1 Način podataka |
|
5 |
RW |
Čitanje / pisanje pin, RW = 0 Način pisanja, RW = 1 Način čitanja |
|
|
6 |
E |
Omogući, visoki do niski puls treba omogućiti LCD |
|
|
Pribadače za podatke |
7-14 |
D0-D7 |
Pribadače, pohranjuje podatke za prikaz na LCD-u ili naredbe |
|
Igle s pozadinskim osvjetljenjem |
15 |
LED + ili A |
Za napajanje pozadinskog osvjetljenja + 5V |
|
16 |
LED- ili K |
Pozadinsko osvjetljenje uzemljenja |
Sve su igle jasno razumljive po imenu i funkcijama, osim kontrolnih, pa su objašnjene u nastavku:
RS: RS je pribadača za odabir registra. Moramo ga postaviti na 1 ako šaljemo neke podatke za prikaz na LCD-u. A postavit ćemo na 0 ako šaljemo neku naredbu naredbe poput čišćenja zaslona (hex kod 01).
RW: Ovo je igla za čitanje / pisanje, postavit ćemo je na 0, ako ćemo neke podatke zapisivati na LCD. I postavite ga na 1, ako čitamo s LCD modula. Općenito je ovo postavljeno na 0, jer ne moramo čitati podatke s LCD-a. Treba samo nekoliko puta pročitati samo jednu uputu "Get LCD status".
E: Ovaj pin služi za omogućavanje modula kada mu se daje impuls od visokog do niskog. Treba dati puls od 450 ns. Taj prijelaz s VISOKOG na NIZKO čini modul Omogućenim.
Na LCD-u postoje neke unaprijed zadane upute za naredbe, koje smo koristili u našem donjem programu za pripremu LCD-a (u funkciji lcd_init ()). U nastavku su date neke važne naredbe:
|
Hex kod |
Naredba za LCD upisni registar |
|
0F |
LCD UKLJUČEN, pokazivač UKLJUČEN |
|
01 |
Jasan zaslon |
|
02 |
Povratak kući |
|
04 |
Kursor za smanjenje (pomicanje kursora ulijevo) |
|
06 |
Povećavanje kursora (pomicanje kursora udesno) |
|
05 |
Pomaknite zaslon udesno |
|
07 |
Pomaknite prikaz ulijevo |
|
0E |
Zaslon UKLJUČEN, pokazivač treperi |
|
80 |
Prisiljavanje kursora na početak prvog retka |
|
C0 |
Prisiljavanje kursora na početak drugog retka |
|
38 |
2 retka i 5 × 7 matrica |
|
83 |
Pozicija kursora 1, položaj 3 |
|
3C |
Aktivirajte drugi redak |
|
08 |
Zaslon ISKLJUČEN, pokazivač ISKLJUČEN |
|
C1 |
Skok na drugu liniju, položaj 1 |
|
OC |
Zaslon UKLJUČEN, pokazivač ISKLJUČEN |
|
C1 |
Skok na drugu liniju, položaj 1 |
|
C2 |
Skok na drugu liniju, položaj 2 |
Kružni dijagram i objašnjenje

Shema kruga za LCD povezivanje s mikrokontrolerom 8051 prikazana je na gornjoj slici. Ako osnovno razumijete 8051, tada morate znati o EA (PIN 31), XTAL1 i XTAL2, RST pinu (PIN 9), Vcc i Mround Pinu od 8051 mikrokontrolera. Koristio sam ove igle u gornjem krugu. Ako o tome nemate pojma, preporučujem vam da pročitate ovaj članak LED povezivanje s mikrokontrolerom 8051 prije nego što prođete kroz LCD povezivanje.
Dakle, osim ovih gornjih pinova, povezali smo i podatkovne pinove (D0-D7) LCD-a s mikrokontrolerom priključka 2 (P2_0 - P2_7). I upravljajte pinovima RS, RW i E na pin 12,13,14 (pin 2,3,4 na priključku 3) mikrokontrolera.
PIN 2 (VDD) i PIN 15 (opskrba pozadinskim osvjetljenjem) LCD-a spojeni su na napon (5v), a PIN 1 (VSS) i PIN 16 (pozadinsko osvjetljenje) povezani su s masom.
Pin 3 (V0) spojen je na napon (Vcc) preko promjenjivog otpora od 10 k za podešavanje kontrasta LCD-a. Srednja noga promjenjivog otpora spojena je na PIN 3, a druge dvije noge povezane su na napon i masu.
Objašnjenje koda
Pokušao sam objasniti kôd komentarima (u samom kodu).
Kao što sam ranije objasnio o naredbenom načinu i načinu podataka, možete vidjeti da smo tijekom slanja naredbe (funkcija lcd_cmd) postavili RS = 0, RW = 0, a puls E daje se VISOKOM DO NISKOM tako da iznosi 1, a zatim 0 Također pri slanju podataka (funkcija lcd_data) na LCD, postavili smo RS = 1, RW = 0, a puls VISOKI NA NISKO daje se E čineći ga 1 prema 0. Stvorena je funkcija msdelay () koja stvara kašnjenje u milisekundama i koji se često naziva u programu, naziva se tako da LCD modul može imati dovoljno vremena za izvršavanje interne operacije i naredbi.
Za ispis niza stvorena je petlja while koja svaki put poziva funkciju lcd_data da bi ispisala znak do zadnjeg znaka (null terminator- '\ 0').
Upotrijebili smo funkciju lcd_init () da pripremimo LCD zaslon pomoću unaprijed postavljenih uputa za naredbe (objašnjene gore).
