- Potrebne komponente:
- Grafični LCD:
- Prikaz slike na grafičnem LCD-ju s pomočjo 8051:
- Pojasnilo vezja:
- Pojasnilo programiranja:
V vsakdanjem življenju vidimo veliko vrst naprav za prikaz besedila, slik in grafike. LCD-zasloni so ena najbolj priljubljenih prikazovalnih naprav v elektroniki in se uporabljajo v večini vseh projektov, ki prikazujejo neke vrste informacije. V elektronskih projektih se uporablja veliko vrst LCD-jev. V številnih projektih smo že uporabljali LCD 16X2, uporabljali pa smo tudi TFT LCD z Arduinom. Po tej povezavi lahko najdete vse naše projekte, povezane z LCD 16X2, vključno s povezovanjem z 8051, AVR, Arduino in mnogimi drugimi.
V tej vadnici bomo izvedli grafični vmesnik LCD z mikrokrmilnikom 8051. V tem projektu bomo pokazali, kako prikazati sliko na grafičnem LCD (GLCD).
Potrebne komponente:
- Grafični LCD
- AT89c52 8051 Mikrokrmilnik
- 7805 regulator napetosti
- 1000uf kondenzator
- 10 uF kondenzator
- 10K upor
- 10K LONČEK
- Kristalni oscilator 12 MH
- Priključna žica
- Odbor za kruh
- Burg trakovi moški
- Napajanje
- LED
- 220 Ohm upor
- 1K upor
Grafični LCD:
Preprost 16x2 LCD ima 16 nožic, grafični LCD pa 20 pin. Opis pin je podan spodaj, kot je opisano v obrazcu:
Pin št. | Pripnite ime | Opis | Funkcija |
1. | VSS | Tla | 0 voltov |
2. | VDD | Napajanje | 5 voltov |
3. | V0 | Prilagoditev kontrasta LCD | |
4. | RS | Izbira registra ukazov / podatkov | RS = 0: Izbira ukaza in RS = 1: Izbira podatkov |
5. | R / W | Branje / pisanje registra | R / W = 0: Napiši izbor in R / W = 1: Preberi izbor |
6. | E | Omogoči signal | |
7. | DB0 | Zatič za vnos / izhod podatkov (DB0-DB7) | 8-bitna (DB0-DB7) |
8. | DB1 | ||
9. | DB2 | ||
10. | DB3 | ||
11. | DB4 | ||
12. | DB5 | ||
13. | DB6 | ||
14. | DB7 | ||
15. | CS1 | Chip Select | CS1 = 1, signal za izbiro čipa za IC1 |
16. | CS2 | Chip Select | CS2 = 1, signal za izbiro čipa za IC2 |
17. | RST | Ponastaviti | Ponastavite GLCD |
18. | VEE | Negativna napetost za gonilnik LCD | |
19. | A | LED za zadnjo luč | 5 voltov |
20. | K | LED za zadnjo luč | Tla |
Prikaz slike na grafičnem LCD-ju s pomočjo 8051:
Za prikaz slike na grafičnem LCD-ju moramo najprej to sliko pretvoriti v montažno kodo, tako da jo lahko mikrokrmilnik 8051 razume in prebere. Zato moramo slediti spodnjim korakom za pretvorbo slike v šestnajstiško kodo:
1. korak: Najprej moramo prenesti aplikacijo, ki pretvori sliko (format BMP) v montažno kodo. Torej s te povezave prenesite aplikacijo za pretvorbo slik BMP2ASM, samo z desno miškino tipko kliknite povezavo in nato kliknite Shrani povezavo kot…
2. korak: Nato izberite sliko, ki jo želite prikazati na grafičnem LCD-ju, in jo pretvorite v BMP (če že ni v obliki BMP) s katero koli aplikacijo, kot je MS Paint, Photoshop itd. Ali pa najdete veliko spletnih strani za pretvorbo formata slike. Spodaj imamo sliko BMP, velikosti 128x64:
3. korak: Zdaj izvlecite datoteko BMP2ASM.zip, ki smo jo prenesli v 1. koraku, v njej odprite Bmp2asm.exe in izberite sliko BMP.
4. korak: Zdaj v oknu aplikacije BMP2ASM pritisnite »Pretvori«.
5. korak: Nato kopirajte ustvarjeno kodo in prilepite v program 8051 v Keil uVision. Naredite nekaj sprememb in prevedite kodo.
Zdaj je vaša koda pripravljena za nalaganje v mikrokrmilnik 8051.
Pojasnilo vezja:
Vezje vezi za povezovanje grafičnega LCD-ja z mikrokrmilnikom 8051 je enostavno in skoraj enako kot povezovanje 16x2 LCD-ja z 8051. Toda 16x2 LCD ima 16 nožic, GLCD pa 20-polni.
Za nastavitev kontrasta za GLCD je uporabljen lonec 10K. Krmilni zatiči GLCD RS, R / W in E so neposredno povezani s številkami pinov 89C52 P1.0, P1.1 in P1.2. Zatiča za izbiro čipa CS1 in CS2 LCD sta priključena na zatiča P1.3 oziroma P1.4. Podatkovni zatiči DB0-DB7 so neposredno povezani v PORT P2. Za običajno 5-voltno napajanje se uporablja napetostni regulator 7805. V predstavitvenem videu sem uporabil napajalnik Arduino.
Pojasnilo programiranja:
Najprej v program vključimo zahtevane datoteke z glavo in določimo bite za nadzorne in podatkovne zatiče GLCD.
#include
Po njem smo ustvarili funkcijo zakasnitve.
zamuda praznine (int itime) {int i, j; za (i = 0; i
Funkcija void lcd_disp_on () se uporablja za vklop zaslona.
Funkcija void setCursorY (int y) je ustvarjena za nastavitev stolpca v GLCD in funkcija void setCursorX (int x) je ustvarjena za nastavitev strani na GLCD. Popolna datoteka kode je podana v spodnjem razdelku kode.
Po nastavitvi stolpca in strani smo napisali funkcijo za pošiljanje ukazov in podatkov v GLCD.
void lcdprint (char dat, int size) {unsigned int i; za (i = 0; i
V void main () funkciji smo počistili GLCD in nato nastavili stolpec in stran. Po tem pošljite podatke na LCD s pomočjo funkcije voc 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 (slika, x); }}…………………..
Tok kode:
- Ko najprej vklopimo sistem, program počisti GLCD in vklopi zaslon.
- Nato nastavite kurzor na Stolpec, od koder želimo zapisati podatke.
- Nato nastavite kurzor na Page, od koder želimo zapisati podatke.
- Zdaj program podatke pošlje na izbrano lokacijo enega za drugim do 128X8 krat. Ker ima GLCD 8 strani in 128 stolpcev.