- Būtini komponentai:
- Grafinis LCD ekranas:
- Vaizdo rodymas grafiniame LCD ekrane naudojant 8051:
- Grandinės paaiškinimas:
- Programavimo paaiškinimas:
Kasdieniniame gyvenime matome daugybę teksto, vaizdų ir grafikos atvaizdavimo įrenginių. Skystųjų kristalų ekranai yra vienas iš populiariausių elektronikos prietaisų, naudojamas daugiausia visuose projektuose, kuriuose rodoma tam tikra informacija. Elektroniniuose projektuose naudojami daugybė skystųjų kristalų ekranų tipų. Daugelyje savo projektų jau naudojome 16X2 skystųjų kristalų ekraną ir TFT skystųjų kristalų ekraną su „Arduino“. Visą mūsų su 16X2 LCD susijusį projektą rasite spustelėję šią nuorodą, įskaitant sąsają su 8051, AVR, „Arduino“ ir daugeliu kitų.
Šioje pamokoje mes atliksime grafinį LCD sąsają su 8051 mikrovaldikliu. Šiame projekte mes parodysime, kaip atvaizduoti vaizdą grafiniame LCD (GLCD).
Būtini komponentai:
- Grafinis LCD ekranas
- AT89c52 8051 mikrovaldiklis
- 7805 įtampos reguliatorius
- 1000uf kondensatorius
- 10 uF kondensatorius
- 10K rezistorius
- 10K POT
- Kristalinis osciliatorius 12 MH
- Jungiamasis laidas
- Bandomoji Lenta
- Burg juostelės patinas
- Maitinimo šaltinis
- LED
- 220 omų rezistorius
- 1K rezistorius
Grafinis LCD ekranas:
Paprastame 16x2 LCD ekrane yra 16 kontaktų, bet grafiniame LCD yra 20 kontaktų. Kaiščių aprašymas pateiktas toliau, kaip nurodyta jo duomenų lape:
Smeigtukas Nr. | PIN vardas | apibūdinimas | Funkcija |
1 | VSS | Žemė | 0 voltų |
2 | VDD | Maitinimas | 5 voltai |
3 | V0 | LCD kontrasto reguliavimas | |
4 | RS | Komandos / duomenų registro pasirinkimas | RS = 0: komandų pasirinkimas ir RS = 1: duomenų pasirinkimas |
5 | R / W | Skaitymo / rašymo registras | R / W = 0: rašyti pasirinkimą ir R / W = 1: skaityti pasirinkimą |
6 | E | Įgalinti signalą | |
7 | DB0 | Duomenų įvesties / išvesties kaištis (DB0-DB7) | 8 bitai (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Chip Select | CS1 = 1, IC1 lusto pasirinkimo signalas |
16 | CS2 | Chip Select | CS2 = 1, IC2 lusto pasirinkimo signalas |
17 | RST | Atstatyti | Iš naujo nustatyti GLCD |
18 | VEE | Neigiama LCD tvarkyklės įtampa | |
19 | A | Galinio apšvietimo šviesos diodas | 5 voltai |
20 | K. | Galinio apšvietimo šviesos diodas | Žemė |
Vaizdo rodymas grafiniame LCD ekrane naudojant 8051:
Norėdami parodyti vaizdą grafiniame LCD, pirmiausia turime konvertuoti tą vaizdą į surinkimo kodą, kad 8051 mikrovaldiklis galėtų jį suprasti ir perskaityti. Taigi, norėdami konvertuoti vaizdą į HEX kodą, turime atlikti šiuos veiksmus:
1 žingsnis: Pirmiausia turime atsisiųsti programą, kuri konvertuoja vaizdą (BMP formatas) į surinkimo kodą. Taigi atsisiųskite BMP2ASM vaizdo konvertavimo programą iš šios nuorodos, tiesiog dešiniuoju pelės mygtuku spustelėkite nuorodą ir spustelėkite Išsaugoti nuorodą kaip…
2 žingsnis: Tada pasirinkite vaizdą, kurį norite rodyti grafiniame skystųjų kristalų ekrane, ir konvertuokite jį į BMP (jei jis jau nėra BMP formatu) naudodami bet kurią programą, pvz., „MS Paint“, „Photoshop“ ir kt. Arba galite rasti daug internetinių svetainių atvaizdo formato konvertavimui. Turime žemiau BMP atvaizdą, kurio dydis yra 128x64:
3 žingsnis: Dabar ištraukite failą BMP2ASM.zip, kurį atsisiuntėme atlikdami 1 veiksmą, ir atidarykite jame „Bmp2asm.exe“ ir pasirinkite BMP vaizdą.
4 žingsnis: Dabar BMP2ASM programos lange paspauskite „Konvertuoti“.
5 žingsnis: Tada nukopijuokite sugeneruotą kodą ir įklijuokite į „8051“ programą „Keil uVision“. Atlikite keletą pakeitimų ir sudarykite kodą.
Dabar jūsų kodas yra paruoštas įkelti į 8051 mikrovaldiklį.
Grandinės paaiškinimas:
Grandinių jungtys, skirtos susieti grafinį skystųjų kristalų ekraną su 8051 mikrovaldikliu, yra paprastos ir beveik tokios pačios, kaip jungiant 16x2 skystųjų kristalų ekraną su 8051. Tačiau 16x2 skystųjų kristalų ekranas turi 16 kontaktų, o GLCD - 20 kontaktų.
Norint nustatyti GLCD kontrastą, naudojamas 10K puodas. GLCD RS, R / W ir E valdymo kaiščiai yra tiesiogiai prijungti prie 89C52 kaiščių P1.0, P1.1 ir P1.2. Skystųjų kristalų lustai CS1 ir CS2 yra atitinkamai prijungti prie kaiščių P1.3 ir P1.4. Duomenų kaiščiai DB0-DB7 yra tiesiogiai prijungti prie PORT P2. Reguliariam 5 voltų tiekimui naudojamas įtampos reguliatorius 7805. Demonstraciniame vaizdo įraše naudojau „Arduino“ maitinimo šaltinį.
Programavimo paaiškinimas:
Visų pirma, į programą įtraukiame reikiamus antraštės failus ir apibrėžiame GLCD valdymo ir duomenų kaiščių bitus.
# įtraukti
Po jo sukūrėme uždelsimo funkciją.
void delay (int itime) {int i, j; už (i = 0; i
Funkcija void lcd_disp_on () naudojama įjungti ekraną.
Funkcija void setCursorY (int y) yra sukurta norint nustatyti stulpelį GLCD, o funkcija void setCursorX (int x) sukurta norint nustatyti puslapį GLCD. Visas kodo failas pateiktas žemiau Kodo skyriuje.
Nustačius stulpelį ir puslapį, mes parašėme funkciją komandoms ir duomenims siųsti į GLCD.
void lcdprint (char dat, int size) {nepasirašytas int i; už (i = 0; i
Be void main () funkcija, mes išvalytas GLCD ir tada nustatyti kolona ir puslapio. Po to siųskite duomenis į LCD, naudodamiesi void lcdprint (char dat, int size) funkcija.
void main () {int x, y; P3 = 0xff; o (1) {lcdclear (); už (y = 0; y <8; y ++) {už (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (vaizdas, x); }}…………………..
Kodo srautas:
- Pirmiausia, kai įjungiame sistemą, programa išvalo GLCD ir įjungia ekraną.
- Tada nustatykite žymeklį į stulpelį, iš kurio norime įrašyti duomenis.
- Tada nustatykite žymeklį į Puslapis, iš kurio norime įrašyti duomenis.
- Dabar programa siunčia duomenis į pasirinktą vietą po vieną iki 128X8 kartų. Kadangi GLCD turi 8 puslapius ir 128 stulpelius.