A kijelző egységek a beágyazott projektek és az elektronikai termékek legfontosabb kimeneti eszközei. A 16x2 LCD az egyik leggyakrabban használt kijelző egység. A 16x2 LCD azt jelenti, hogy két sor van, amelyekben soronként 16 karakter jeleníthető meg, és mindegyik karakter 5X7 mátrix helyet foglal el az LCD-n. Ebben az oktatóanyagban 16X2 LCD modult fogunk csatlakoztatni a 8051 mikrovezérlőhöz (AT89S52). Az LCD és a 8051 mikrovezérlő összekapcsolása meglehetősen összetettnek tűnhet a kezdők számára, de a koncepció megértése után nagyon egyszerűnek és könnyűnek tűnik. Bár időbe telhet, mert meg kell értenie és csatlakoztatnia kell az LCD 16 érintkezőjét a mikrovezérlőhöz. Tehát először értsük meg az LCD modul 16 érintkezőjét.
Öt kategóriába oszthatjuk: Tápcsapok, Kontrasztcsap, Vezérlőtüskék, Adatcsapok és Háttérvilágítás csapok.
Kategória |
PIN NO. |
PIN neve |
Funkció |
Power Pins |
1 |
VSS |
Földelőcsap, csatlakozik a Földhöz |
2 |
VDD vagy Vcc |
Feszültségcsap + 5V |
|
Kontraszt tű |
3 |
V0 vagy VEE |
Kontraszt beállítása, Vcc-hez csatlakoztatva, változó ellenállással. |
Control Pins |
4 |
RS |
Regisztráció Select Pin, RS = 0 Parancs mód, RS = 1 Adat mód |
5. |
RW |
Olvasási / írási tű, RW = 0 írási mód, RW = 1 Olvasási mód |
|
6. |
E |
Engedélyezés, nagy vagy alacsony impulzus szükséges az LCD engedélyezéséhez |
|
Data Pins |
7-14 |
D0-D7 |
Adatcsapok, tárolja az LCD-n megjelenítendő adatokat vagy a parancs utasításait |
Háttérvilágítási csapok |
15 |
LED + vagy A |
A háttérvilágítás + 5V bekapcsolására |
16. |
LED vagy K |
Háttérvilágítás földje |
Az összes érintkező egyértelműen érthető a nevük és a funkcióik alapján, a vezérlő csapok kivételével, ezért az alábbiakban ismertetjük őket:
RS: RS a regisztráció választó csap. 1-re kell állítanunk, ha az LCD-n megjelenítendő adatokat küldünk. És 0-ra állítjuk, ha valamilyen parancs utasítást küldünk, például a képernyő törlését (hexakód 01).
RW: Ez az olvasási / írási tű, 0-ra állítjuk, ha néhány adatot írunk az LCD-re. És állítsa 1-re, ha az LCD modulról olvasunk. Általában ez 0-ra van állítva, mert nem kell adatokat olvasnunk az LCD-ről. Csak egy „LCD-állapot beolvasása” utasítást kell elolvasni néhányszor.
E: Ezt a csapot a modul engedélyezésére használják, ha magas vagy alacsony impulzus adódik neki. 450 ns impulzust kell adni. A HIGH-ról a LOW-ra való áttérés miatt a modul ENABLE.
Van néhány előre beállított parancs utasítás az LCD-n, ezeket az alábbi programunkban használtuk fel az LCD előkészítéséhez (lcd_init () funkcióban). Néhány fontos utasítás a következőkben található:
Hex kód |
Parancs az LCD utasításregiszterhez |
0F |
LCD BE, kurzor BE |
01 |
Tiszta kijelző |
02 |
Hazatérni |
04 |
Kurzor csökkentése (kurzor balra tolása) |
06 |
Kurzor növelése (kurzor jobbra tolása) |
05 |
Shift kijelző jobbra |
07 |
Shift kijelző balra |
0E |
Kijelző BE, a kurzor villog |
80 |
A kurzor kényszerítése az első sor elejére |
C0 |
A kurzor kényszerítése a második sor elejére |
38 |
2 sor és 5 × 7 mátrix |
83. |
1. kurzor vonal 3. pozíciója |
3C |
Aktiválja a második sort |
08 |
Kijelző KI, kurzor KI |
C1 |
Ugrás a második vonalra, 1. pozíció |
OC |
Kijelző BE, kurzor KI |
C1 |
Ugrás a második vonalra, 1. pozíció |
C2 |
Ugrás a második vonalra, 2. pozíció |
Áramkör diagram és magyarázat
A 8051 mikrovezérlővel való összeköttetés LCD kapcsolási rajzát a fenti ábra mutatja. Ha alaposan ismeri a 8051-et, akkor tudnia kell az EA-ról (PIN 31), az XTAL1 és XTAL2-ről, az RST-tűről (PIN 9), a Vcc-ről és a 8051 mikrovezérlő Ground Pin-jéről. Ezeket a csapokat a fenti áramkörben használtam. Ha nincs ötlete erről, akkor azt javaslom, hogy olvassa el ezt a cikket: LED interfész a 8051 mikrovezérlővel, mielőtt átmenne az LCD interfészen.
Tehát a fenti csapok mellett csatlakoztattuk az LCD adatcsapjait (D0-D7) a 2-es port (P2_0 - P2_7) mikrovezérlőhöz. És vezérelje az RS, RW és E csapokat a mikrovezérlő 12,13,14 érintkezőjéhez (a 3. port 2,3,4 tűje).
Az LCD 2-es PIN-kódja (VDD) és a PIN-kód 15 (háttérvilágítás-ellátás) a feszültséghez (5v), az 1-es PIN-kód (VSS) és a PIN 16 (háttérvilágítás földje) pedig a földhöz van csatlakoztatva.
A 3. érintkező (V0) egy 10k-os változtatható ellenálláson keresztül csatlakozik a feszültséghez (Vcc) az LCD kontrasztjának beállításához. A változtatható ellenállás középső lába a 3-as PIN-hez, a másik két láb pedig a feszültségellátáshoz és a földeléshez van csatlakoztatva.
Kód Magyarázat
Megpróbáltam kommentárokkal (magában a kódban) megmagyarázni a kódot.
Amint azt a parancs módról és az adat módról korábban kifejtettem, láthatja, hogy a parancs küldése közben (lcd_cmd függvény) RS = 0, RW = 0 értéket állítottunk be, és egy HIGH - LOW impulzust adunk E-nek, ha 1, majd 0 Az adatok (lcd_data függvény) LCD-re történő küldésénél RS = 1, RW = 0 értéket állítottunk be, és az E-nek HIGH-tól LOW-ig terjedő impulzust adunk 1-től 0-ig. és gyakran hívják a programban, akkor hívják, hogy az LCD modulnak elegendő ideje legyen a belső műveletek és parancsok végrehajtására.
Létrehoztak egy darab ciklust a karaktersorozat kinyomtatásához, amely minden alkalommal meghívja az lcd_data függvényt egy karakter kinyomtatására az utolsó karakterig (null terminátor- '\ 0').
Az lcd_init () függvénnyel az LCD-t az előre beállított utasítások használatával (a fentiekben kifejtve) készen álljuk.