- Potrebne komponente:
- Grafički LCD:
- Prikazivanje slike na grafičkom LCD-u pomoću 8051:
- Objašnjenje sklopa:
- Objašnjenje programiranja:
U našem svakodnevnom životu vidimo mnoge vrste uređaja za prikazivanje teksta, slika i grafika. LCD su jedan od najpopularnijih uređaja za prikaz u elektronici i koriste se uglavnom u svim projektima koji prikazuju neke vrste informacija. Mnogo je vrsta LCD-a koji se koriste u elektroničkim projektima. Već smo koristili LCD 16X2 u mnogim našim projektima, a koristili smo i TFT LCD s Arduinom. Sve naše projekte povezane s LCD-om 16X2 možete pronaći slijedeći ovu vezu, uključujući povezivanje s 8051, AVR, Arduino i mnogim drugima.
U ovom uputstvu radit ćemo grafičko povezivanje LCD-a s mikrokontrolerom 8051. U ovom ćemo projektu pokazati kako prikazati sliku na grafičkom LCD-u (GLCD).
Potrebne komponente:
- Grafički LCD
- AT89c52 8051 Mikrokontroler
- 7805 regulator napona
- Kondenzator od 1000uf
- Kondenzator od 10 uF
- Otpornik 10K
- 10K LONAC
- Kristalni oscilator 12 MH
- Spojna žica
- Daska za kruh
- Burg trake muški
- Napajanje
- LED
- Otpornik od 220 Ohma
- 1K otpornik
Grafički LCD:

Jednostavni LCD 16x2 ima 16 pinova, ali grafički LCD ima 20 pinova. Opis pribadače dat je u nastavku prema podacima s podacima:
| Pin br. | Naziv pribadače | Opis | Funkcija |
| 1 | VSS | Prizemlje | 0 volti |
| 2 | VDD | Napajanje | 5 volti |
| 3 | V0 | LCD podešavanje kontrasta | |
| 4 | RS | Izbor registra naredbi / podataka | RS = 0: Odabir naredbe i RS = 1: Izbor podataka |
| 5 | R / W | Registracija za čitanje / pisanje | R / W = 0: Napiši odabir i R / W = 1: Pročitaj odabir |
| 6 | E | Omogući signal | |
| 7 | DB0 | Priključak za ulaz / izlaz podataka (DB0-DB7) | 8-bitni (DB0-DB7) |
| 8 | DB1 | ||
| 9 | DB2 | ||
| 10 | DB3 | ||
| 11 | DB4 | ||
| 12 | DB5 | ||
| 13 | DB6 | ||
| 14 | DB7 | ||
| 15 | CS1 | Odabir čipa | CS1 = 1, signal za odabir čipa za IC1 |
| 16 | CS2 | Odabir čipa | CS2 = 1, signal za odabir čipa za IC2 |
| 17 | RST | Resetirati | Resetirajte GLCD |
| 18 | VEE | Negativni napon za LCD upravljački program | |
| 19 | A | LED za pozadinsko svjetlo | 5 volti |
| 20 | K | LED za pozadinsko svjetlo | Prizemlje |
Prikazivanje slike na grafičkom LCD-u pomoću 8051:
Da bismo prikazali sliku na grafičkom LCD-u, prvo je moramo pretvoriti u sklopni kod, tako da je mikrokontroler 8051 može razumjeti i pročitati. Stoga moramo slijediti korake u nastavku za pretvaranje slike u HEX kod:
Korak 1: Prvo moramo preuzeti aplikaciju koja pretvara sliku (BMP format) u sklopni kod. Dakle, preuzmite aplikaciju za pretvorbu slika BMP2ASM s ove poveznice, samo kliknite desnu tipku miša na vezu, a zatim kliknite Spremi vezu kao…
Korak 2: Zatim odaberite sliku koju želite prikazati na grafičkom LCD-u i pretvorite je u BMP (ako već nije u BMP formatu) pomoću bilo koje aplikacije poput MS Paint, Photoshop itd. Ili možete pronaći mnoštvo mrežnih web stranica za pretvorbu formata slike. Imamo ispod BMP slike, veličine 128x64:

Korak 3: Sada izvucite datoteku BMP2ASM.zip, koju smo preuzeli u koraku 1, i otvorite Bmp2asm.exe u njoj te odaberite BMP sliku.


Korak 4: Sada pritisnite "Pretvori" u prozoru aplikacije BMP2ASM.

Korak 5: Zatim kopirajte generirani kôd i zalijepite u program 8051 u Keil uVision. Napravite neke promjene i kompajlirajte kod.

Sada je vaš kod spreman za prijenos u mikrokontroler 8051.
Objašnjenje sklopa:

Kružne veze, za povezivanje grafičkog LCD-a s mikrokontrolerom 8051, jednostavne su i gotovo iste poput povezivanja 16x2 LCD-a s 8051. Ali 16x2 LCD ima 16 pinova, a GLCD ima 20 pinova.
Za podešavanje kontrasta za GLCD koristi se posuda od 10.000 kilograma. Upravljačke igle GLCD RS, R / W i E izravno su povezane s 89C52 pin brojevima P1.0, P1.1 i P1.2. Pribadače za odabir čipa CS1 i CS2 LCD-a spojene su na pinove P1.3 i P1.4. Priključci za podatke DB0-DB7 izravno su povezani na PORT P2. Za redovito napajanje od 5 volta koristi se regulator napona 7805. U demonstracijskom videu koristio sam Arduino napajanje.
Objašnjenje programiranja:
Prije svega, u program uključujemo potrebne datoteke zaglavlja i definiramo bitove za kontrolne i podatkovne igle GLCD-a.
#include
Nakon nje stvorili smo funkciju odgode.
odgoda praznine (int itime) {int i, j; za (i = 0; i
Za uključivanje zaslona koristi se funkcija void lcd_disp_on () .
Funkcija void setCursorY (int y) kreira se za postavljanje stupca u GLCD, a funkcija void setCursorX (int x) kreira se za postavljanje stranice na GLCD. Kompletna datoteka koda data je u nastavku odjeljka koda.
Nakon postavljanja stupca i stranice, napisali smo funkciju za slanje naredbi i podataka na GLCD.
void lcdprint (char dat, int veličina) {unsigned int i; za (i = 0; i
U void main () funkciji obrisali smo GLCD, a zatim postavili stupac i stranicu. Nakon toga pošaljite podatke na LCD pomoću funkcije void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; while (1) {lcdclear (); za (y = 0; y <8; y ++) {za (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (slika, x); }}…………………..
Tijek koda:
- Prvo kada uključimo sustav, program briše GLCD i uključuje zaslon.
- Zatim postavite pokazivač na Stupac, odakle želimo upisati podatke.
- Zatim postavite kursor na Page, odakle želimo upisati podatke.
- Sada program šalje podatke na odabrano mjesto jedan po jedan do 128X8 puta. Budući da GLCD ima 8 stranica i 128 stupaca.
