- Szükséges alkatrészek:
- Grafikus LCD:
- Kép megjelenítése grafikus LCD-n a 8051 használatával:
- Áramkör magyarázat:
- Programozási magyarázat:
Mindennapi életünkben sokféle eszközt látunk a szöveg, képek és grafikák megjelenítésére. Az LCD-k az elektronika egyik legnépszerűbb kijelzőeszköze, és többnyire minden olyan projektben használják, amelyek valamilyen információt jelenítenek meg. Az elektronikus projektekben sokféle LCD-t használnak. Számos projektünkben már használtunk 16X2 LCD-t, és TFT LCD-t is használtunk az Arduino-val. Megtalálhatja az összes 16X2 LCD-vel kapcsolatos projektünket, ha ezt a linket követi, beleértve a 8051, AVR, Arduino és még sok más interfészt.
Ebben az oktatóanyagban grafikus LCD interfészt fogunk végezni a 8051 mikrovezérlővel. Ebben a projektben megmutatjuk, hogyan lehet képet megjeleníteni grafikus LCD-n (GLCD).
Szükséges alkatrészek:
- Grafikus LCD
- AT89c52 8051 mikrovezérlő
- 7805 feszültségszabályozó
- 1000uf kondenzátor
- 10 uF kondenzátor
- 10K ellenállás
- 10K POT
- Kristály oszcillátor 12 MH
- Csatlakozó vezeték
- Kenyérlap
- Burg csíkok hím
- Tápegység
- VEZETTE
- 220 Ohm ellenállás
- 1K ellenállás
Grafikus LCD:
Egy egyszerű 16x2-es LCD-kijelző 16 tűvel rendelkezik, de a grafikus LCD-kijelző 20 tűvel rendelkezik. A pin leírása alább található az adatlapján:
PIN-kód | PIN neve | Leírás | Funkció |
1 | VSS | Talaj | 0 Volt |
2 | VDD | Tápegység | 5 Volt |
3 | V0 | LCD kontraszt beállítása | |
4 | RS | Parancs / adat Regisztráció kiválasztása | RS = 0: Parancs kiválasztása és RS = 1: Adat kiválasztása |
5. | R / W | Olvasás / írás regisztráció | R / W = 0: Kiválasztás írása és R / W = 1: Választás olvasása |
6. | E | Jel engedélyezése | |
7 | DB0 | Adatbemeneti / kimeneti tű (DB0-DB7) | 8 bites (DB0-DB7) |
8. | DB1 | ||
9. | DB2 | ||
10. | DB3 | ||
11. | DB4 | ||
12. | DB5 | ||
13. | DB6 | ||
14 | DB7 | ||
15 | CS1 | Chip Select | CS1 = 1, Chip Select Signal for IC1 |
16. | CS2 | Chip Select | CS2 = 1, Chip Select Signal az IC2-hez |
17. | RST | Visszaállítás | GLCD visszaállítása |
18. | VEE | Negatív feszültség az LCD meghajtó számára | |
19. | A | Háttérvilágítás LED | 5 Volt |
20 | K | Háttérvilágítás LED | Talaj |
Kép megjelenítése grafikus LCD-n a 8051 használatával:
Ahhoz, hogy egy képet grafikus LCD-n jelenítsen meg, először át kell alakítanunk a képet összeszerelési kódgá, hogy a 8051 mikrovezérlő megértse és elolvassa. Tehát meg kell követnünk az alábbi lépéseket a kép HEX kódgá alakításához:
1. lépés: Először le kell töltenünk egy alkalmazást, amely átalakítja az Image (BMP formátum) összeszerelési kódot. Tehát töltse le a BMP2ASM képkonvertáló alkalmazást erről a linkről, kattintson jobb gombbal a linkre, majd kattintson a Hivatkozás mentése másként gombra.
2. lépés: Ezután válassza ki azt a képet, amelyet meg szeretne jeleníteni a grafikus LCD-n, és konvertálja BMP formátumba (ha még nem BMP formátumú) bármilyen alkalmazással, például MS Paint, Photoshop stb. Vagy sok online webhelyet találhat képformátum-átalakításhoz. A BMP-kép alatt van, 128x64 méretű:
3. lépés: Most nyerje ki az 1. lépésben letöltött BMP2ASM.zip fájlt, és nyissa meg benne a Bmp2asm.exe fájlt, majd válassza ki a BMP képet.
4. lépés: Most nyomja meg a „Konvertálás” gombot a BMP2ASM alkalmazásablakban.
5. lépés: Ezután másolja a létrehozott kódot, és illessze be a 8051 programba a Keil uVision alkalmazásban. Végezzen néhány módosítást és fordítsa le a kódot.
Most már készen áll a kód feltöltésére a 8051 mikrokontrollerbe.
Áramkör magyarázat:
Az áramköri kapcsolatok a grafikus LCD és a 8051 mikrovezérlő közötti összeköttetésekhez egyszerűek és szinte ugyanolyanok, mint a 16x2 LCD-t a 8051-hez csatlakoztatni. De a 16x2 LCD 16 tűs, a GLCD pedig 20 tűs.
10K-os edényt használunk a GLCD kontrasztjának beállításához. A GLCD RS, R / W és E vezérlőcsapjai közvetlenül kapcsolódnak a P1.0, P1.1 és P1.2 89C52 csapokhoz. Az LCD CS1 és CS2 chipkiválasztó csapjai a P1.3 és a P1.4 érintkezőkhöz vannak csatlakoztatva. A DB0-DB7 adatcsapok közvetlenül csatlakoznak a P2 PORT-hoz. A 7805 feszültségszabályozót szokásos 5 voltos tápellátáshoz használják. A bemutató videóban Arduino tápegységet használtam.
Programozási magyarázat:
Először is belefoglaljuk a szükséges fejlécfájlokat a programba, és meghatározzuk a biteket a GLCD vezérlő és adat csapjai számára.
#include
Utána létrehoztunk egy késleltetési funkciót.
void delay (int itime) {int i, j; mert (i = 0; i
A void lcd_disp_on () funkció a kijelző bekapcsolásához használható.
Funkció void setCursorY (int y) jön létre az oszlop beállításához a GLCD-ben, és a Function void setCursorX (int x) létrehozása az oldal beállításához a GLCD-n. A teljes kódfájl az alábbi Kód szakaszban található.
Az Oszlop és az oldal beállítása után írtunk egy funkciót a parancsok és adatok GLCD-re történő elküldéséhez.
void lcdprint (char dat, int size) {unsigned int i; mert (i = 0; i
A void main () függvényben kitisztítottuk a GLCD-t, majd beállítottuk az Oszlop és az Oldal beállítást. Ezt követően küldje el az adatokat az LCD-re a void lcdprint (char dat, int size) funkció használatával.
void main () {int x, y; P3 = 0xff; míg (1) {lcdclear (); mert (y = 0; y <8; y ++) {for (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (kép, x); }}…………………..
Kódfolyam:
- Először, amikor bekapcsoljuk a rendszert, a program törli az GLCD-t és bekapcsolja a kijelzőt.
- Ezután állítsa a kurzort Oszlopra, ahonnan meg akarjuk írni az adatokat.
- Ezután állítsa a kurzort Oldalra, ahonnan az Adatokat akarjuk írni.
- Most a program egyenként elküldi az adatokat a kiválasztott helyre 128x8-ig. Mivel egy GLCD-nek 8 oldala és 128 oszlopa van.