- Požadované komponenty:
- Grafický LCD:
- Zobrazení obrázku na grafickém displeji LCD pomocí 8051:
- Vysvětlení obvodu:
- Vysvětlení programování:
V našem každodenním životě vidíme mnoho typů zařízení pro zobrazování textu, obrázků a grafiky. Displeje LCD jsou jedním z nejoblíbenějších zobrazovacích zařízení v elektronice a používají se většinou ve všech projektech, které zobrazují určité informace. V elektronických projektech se používá mnoho typů LCD. V mnoha našich projektech jsme již použili 16X2 LCD a také jsme použili TFT LCD s Arduino. Po kliknutí na tento odkaz najdete všechny naše projekty týkající se LCD displejů 16X2, včetně propojení s 8051, AVR, Arduino a mnoha dalšími.
V tomto výukovém programu provedeme grafické LCD rozhraní s mikrokontrolérem 8051. V tomto projektu si ukážeme, jak zobrazit obrázek na grafickém LCD (GLCD).
Požadované komponenty:
- Grafický LCD
- Mikrokontrolér AT89c52 8051
- Regulátor napětí 7805
- 1000uf kondenzátor
- 10 uF kondenzátor
- 10K rezistor
- 10K POT
- Krystalový oscilátor 12 MH
- Připojovací vodič
- Chlebová deska
- Burg proužky muž
- Zdroj napájení
- VEDENÝ
- Rezistor 220 Ohm
- 1K rezistor
Grafický LCD:
Jednoduchý 16x2 LCD má 16 pinů, ale grafický LCD má 20 pinů. Popis špendlíku je uveden níže podle jeho datového listu:
PIN č. | Název PIN | Popis | Funkce |
1 | VSS | Přízemní | 0 voltů |
2 | VDD | Zdroj napájení | 5 voltů |
3 | V0 | Nastavení kontrastu LCD | |
4 | RS | Výběr příkazu / datového registru | RS = 0: Výběr příkazu a RS = 1: Výběr dat |
5 | R / W | Registrovat čtení / zápis | R / W = 0: Výběr zápisu a R / W = 1: Výběr čtení |
6 | E | Povolit signál | |
7 | DB0 | Pin vstupu / výstupu dat (DB0-DB7) | 8 bitů (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Výběr čipu | CS1 = 1, signál pro výběr čipu pro IC1 |
16 | CS2 | Výběr čipu | CS2 = 1, signál pro výběr čipu pro IC2 |
17 | RST | Resetovat | Resetujte GLCD |
18 | VEE | Záporné napětí pro ovladač LCD | |
19 | A | Podsvícení LED | 5 voltů |
20 | K. | Podsvícení LED | Přízemní |
Zobrazení obrázku na grafickém displeji LCD pomocí 8051:
Chcete-li zobrazit obrázek na grafickém displeji LCD, nejprve musíme tento obrázek převést na montážní kód, aby jej mikrokontrolér 8051 mohl pochopit a přečíst. Musíme tedy postupovat podle níže uvedených kroků pro převod obrázku do hexadecimálního kódu:
Krok 1: Nejprve si musíme stáhnout aplikaci, která převádí Image (formát BMP) na Assembly Code. Stáhněte si tedy aplikaci pro převod obrázků BMP2ASM z tohoto odkazu, stačí na něj kliknout pravým tlačítkem a poté kliknout na Uložit odkaz jako…
Krok 2: Poté vyberte obrázek, který chcete zobrazit na grafickém displeji LCD, a převeďte jej na BMP (pokud již není ve formátu BMP) pomocí jakékoli aplikace, jako je MS Paint, Photoshop atd. Nebo můžete najít mnoho online webových stránek pro převod formátu obrázku. Máme níže obrázek BMP o velikosti 128x64:
Krok 3: Nyní extrahujte soubor BMP2ASM.zip, který jsme si stáhli v kroku 1, otevřete v něm soubor Bmp2asm.exe a vyberte obrázek BMP.
Krok 4: Nyní stiskněte „Převést“ v okně aplikace BMP2ASM.
Krok 5: Poté zkopírujte vygenerovaný kód a vložte jej do programu 8051 v Keil uVision. Proveďte nějaké změny a zkompilujte kód.
Nyní je váš kód připraven k nahrání do mikrokontroléru 8051.
Vysvětlení obvodu:
Zapojení obvodů je pro propojení grafického LCD s mikrokontrolérem 8051 snadné a téměř stejné jako připojení 16x2 LCD k 8051. Ale 16x2 LCD má 16 pinů a GLCD má 20 pinů.
Pro nastavení kontrastu pro GLCD se používá 10K hrnec. Řídicí kolíky GLCD RS, R / W a E jsou přímo připojeny k pinům 89C52 číslo P1.0, P1.1 a P1.2. Piny pro výběr čipu CS1 a CS2 na LCD jsou připojeny k pinům P1.3 a P1.4. Datové piny DB0-DB7 jsou přímo připojeny na PORT P2. Regulátor napětí 7805 se používá pro pravidelné napájení 5 voltů. V ukázkovém videu jsem použil napájecí zdroj Arduino.
Vysvětlení programování:
Nejprve zahrneme do programu požadované hlavičkové soubory a definujeme bity pro kontrolní a datové piny GLCD.
#zahrnout
Poté jsme vytvořili funkci zpoždění.
void delay (int itime) {int i, j; pro (i = 0; i
Pro zapnutí displeje se používá funkce void lcd_disp_on () .
Funkce void setCursorY (int y) je vytvořena pro nastavení sloupce v GLCD a funkce void setCursorX (int x) je vytvořena pro nastavení stránky na GLCD. Kompletní soubor kódu je uveden v následující části věnované kódu.
Po nastavení Column and Page jsme napsali funkci pro odesílání příkazů a dat do GLCD.
void lcdprint (char dat, int size) {unsigned int i; pro (i = 0; i
Ve funkci void main () jsme vyčistili GLCD a poté nastavili Column and Page. Poté odešlete data na LCD pomocí funkce void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; while (1) {lcdclear (); for (y = 0; y <8; y ++) {for (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (obrázek, x); }}…………………..
Tok kódu:
- Nejprve, když zapneme systém, program vymaže GLCD a zapne displej.
- Poté nastavte kurzor na sloupec, odkud chceme zapsat Data.
- Pak nastavte kurzor na stránku, odkud chceme zapsat Data.
- Nyní program odesílá data na vybrané místo jeden po druhém až 128x8krát. Protože GLCD má 8 stránek a 128 sloupců.