- Požadované komponenty:
- Grafický LCD:
- Zobrazenie obrázka na grafickom displeji LCD pomocou nástroja 8051:
- Vysvetlenie obvodu:
- Vysvetlenie programovania:
V každodennom živote vidíme mnoho druhov zariadení na zobrazovanie textu, obrázkov a grafiky. LCD sú jedným z najpopulárnejších zobrazovacích zariadení v elektronike a používajú sa väčšinou vo všetkých projektoch, ktoré zobrazujú určitý druh informácií. V elektronických projektoch sa používa veľa typov displejov LCD. V mnohých našich projektoch sme už použili displej 16X2 LCD a tiež sme použili TFT LCD s Arduino. Kliknutím na tento odkaz nájdete všetky naše projekty súvisiace s LCD 16X2, vrátane prepojenia s 8051, AVR, Arduino a mnohými ďalšími.
V tomto výučbe sa budeme venovať grafickému prepojeniu LCD s mikrokontrolérom 8051. V tomto projekte si ukážeme, ako zobraziť obrázok na grafickom LCD (GLCD).
Požadované komponenty:
- Grafický LCD
- Mikrokontrolér AT89c52 8051
- Regulátor napätia 7805
- 1000uf kondenzátor
- 10 uF kondenzátor
- 10K rezistor
- 10K POT
- Krištáľový oscilátor 12 MH
- Pripojovací drôt
- Chlebová doska
- Burg prúžky mužské
- Zdroj
- LED
- Rezistor 220 Ohm
- 1K rezistor
Grafický LCD:
Jednoduchý 16x2 LCD má 16 pinov, ale grafický LCD má 20 pinov. Popis špendlíka je uvedený nižšie podľa jeho údajového listu:
PIN č. | Názov špendlíka | Popis | Funkcia |
1 | VSS | Uzemnenie | 0 voltov |
2 | VDD | Zdroj | 5 voltov |
3 | V0 | Nastavenie kontrastu LCD | |
4 | RS | Príkaz / výber dátového registra | RS = 0: výber príkazu a RS = 1: výber údajov |
5 | R / W | Register na čítanie a zápis | R / W = 0: výber zápisu a R / W = 1: výber čítania |
6 | E | Povoliť signál | |
7 | DB0 | Pin vstupu / výstupu dát (DB0-DB7) | 8 bitov (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Vyberte čip | CS1 = 1, signál pre výber čipu pre IC1 |
16 | CS2 | Vyberte čip | CS2 = 1, signál pre výber čipu pre IC2 |
17 | RST | Resetovať | Resetujte GLCD |
18 | VEE | Záporné napätie pre ovládač LCD | |
19 | A | Zadné svetlo LED | 5 voltov |
20 | K | Zadné svetlo LED | Uzemnenie |
Zobrazenie obrázka na grafickom displeji LCD pomocou nástroja 8051:
Aby sme mohli zobraziť obrázok na grafickom LCD displeji, najskôr musíme tento obrázok previesť do montážneho kódu, aby mu mikrokontrolér 8051 porozumel a prečítal ho. Musíme teda postupovať podľa nasledujúcich krokov na prevod obrázka do HEX kódu:
Krok 1: Najskôr si musíme stiahnuť aplikáciu, ktorá prevádza obrázky (formát BMP) do montážneho kódu. Stiahnite si teda aplikáciu na konverziu obrázkov BMP2ASM z tohto odkazu, kliknite pravým tlačidlom myši na odkaz a potom kliknite na príkaz Uložiť odkaz ako…
Krok 2: Potom vyberte obrázok, ktorý chcete zobraziť na grafickom displeji LCD, a pomocou ľubovoľnej aplikácie ako MS Paint, Photoshop atď. Ho preveďte do formátu BMP (ak už nie je vo formáte BMP). Alebo môžete nájsť veľa webových stránok online. pre prevod formátu obrázka. Máme nižšie obrázok BMP s veľkosťou 128 x 64:
Krok 3: Teraz extrahujte súbor BMP2ASM.zip, ktorý sme si stiahli v kroku 1, otvorte v ňom súbor Bmp2asm.exe a vyberte obrázok BMP.
Krok 4: Teraz stlačte „Konvertovať“ v okne aplikácie BMP2ASM.
Krok 5: Potom skopírujte vygenerovaný kód a vložte ho do programu 8051 v Keil uVision. Urobte nejaké zmeny a kompilujte kód.
Váš kód je teraz pripravený na nahranie do mikrokontroléra 8051.
Vysvetlenie obvodu:
Pripojenie obvodov pre rozhranie Graphical LCD to 8051 Microcontroller je jednoduché a takmer rovnaké ako pripojenie 16x2 LCD k 8051. Ale 16x2 LCD má 16 pinov a GLCD má 20 pinov.
Na nastavenie kontrastu pre GLCD sa používa 10K hrniec. Ovládacie piny GLCD RS, R / W a E sú priamo spojené s pinmi 89C52 číslo P1.0, P1.1 a P1.2. Kolíky pre výber čipu CS1 a CS2 na LCD sú pripojené k pinom P1.3, respektíve P1.4. Dátové piny DB0-DB7 sú priamo pripojené na PORT P2. Regulátor napätia 7805 sa používa na bežné napájanie 5 voltov. V ukážkovom videu som použil napájací zdroj Arduino.
Vysvetlenie programovania:
Najskôr zahrnieme do programu požadované hlavičkové súbory a definujeme bity pre kontrolné a dátové piny GLCD.
#include
Potom sme vytvorili funkciu oneskorenia.
void delay (int itime) {int i, j; pre (i = 0; i
Na zapnutie displeja sa používa funkcia void lcd_disp_on () .
Funkcia void setCursorY (int y) sa vytvorí pre nastavenie stĺpca v GLCD a funkcia void setCursorX (int x) sa vytvorí pre nastavenie stránky na GLCD. Kompletný súbor s kódom je uvedený v nasledujúcej časti venovanej kódu.
Po nastavení stĺpcov a stránok sme napísali funkciu na zasielanie príkazov a údajov do GLCD.
void lcdprint (char dat, int size) {unsigned int i; pre (i = 0; i
Vo funkcii void main () sme vyčistili GLCD a potom nastavili stĺpce a stránky. Potom pošlite údaje na LCD pomocou funkcie void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; while (1) {lcdclear (); pre (y = 0; y <8; y ++) {pre (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (obrázok, x); }}…………………..
Tok kódu:
- Najprv, keď zapneme systém, program vymaže GLCD a zapne displej.
- Potom nastavte kurzor na stĺpec, odkiaľ chceme zapisovať údaje.
- Potom nastavte kurzor na stránku, odkiaľ chceme zapisovať údaje.
- Teraz program posiela dáta na vybrané miesto jeden po druhom až do 128X8-krát. Pretože GLCD má 8 strán a 128 stĺpcov.