- Vaaditut komponentit:
- Graafinen LCD:
- Kuvan näyttäminen graafisella nestekidenäytöllä 8051: llä:
- Piirin selitys:
- Ohjelmoinnin selitys:
Jokapäiväisessä elämässämme näemme monenlaisia laitteita tekstin, kuvien ja grafiikan näyttämiseen. LCD-näytöt ovat yksi elektroniikan suosituimmista näyttölaitteista, ja niitä käytetään useimmissa projekteissa, joissa näytetään jonkinlaista tietoa. Elektronisissa projekteissa käytetään monenlaisia nestekidenäyttöjä. Olemme jo käyttäneet 16X2 LCD: tä monissa projekteissamme ja myös TFT LCD: tä Arduinon kanssa. Löydät kaikki 16X2 LCD -projektimme seuraamalla tätä linkkiä, mukaan lukien liitännät 8051: n, AVR: n, Arduinon ja monien muiden kanssa.
Tässä opetusohjelmassa aiomme tehdä graafisen LCD-liitännän 8051-mikrokontrolleriin. Tässä projektissa näytämme, kuinka kuva näytetään graafisella LCD-näytöllä (GLCD).
Vaaditut komponentit:
- Graafinen LCD-näyttö
- AT89c52 8051 -mikro-ohjain
- 7805-jännitesäädin
- 1000uf kondensaattori
- 10 uF kondensaattori
- 10K vastus
- 10K POT
- Kideoskillaattori 12 MH
- Liitäntäjohto
- Leipälauta
- Burg nauhat uros
- Virtalähde
- LED
- 220 ohmin vastus
- 1K vastus
Graafinen LCD:
Yksinkertaisessa 16x2 LCD -näytössä on 16 nastaa, mutta graafisessa LCD-näytössä on 20 nastaa. Tappikuvaus on annettu alla olevassa lomakkeessa:
PIN-numero | PIN-nimi | Kuvaus | Toiminto |
1 | VSS | Maa | 0 volttia |
2 | VDD | Virtalähde | 5 V |
3 | V0 | LCD-näytön kontrastin säätö | |
4 | RS | Komennon / datan rekisterin valinta | RS = 0: Komennon valinta ja RS = 1: Tietojen valinta |
5 | R / W | Lue / kirjoita -rekisteri | R / W = 0: Kirjoita valinta ja R / W = 1: Lue valinta |
6 | E | Ota signaali käyttöön | |
7 | DB0 | Tiedon syöttö / lähtö tappi (DB0-DB7) | 8-bittinen (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Sirun valinta | CS1 = 1, sirunvalintasignaali IC1: lle |
16 | CS2 | Sirun valinta | CS2 = 1, sirunvalintasignaali IC2: lle |
17 | RST | Nollaa | Nollaa GLCD |
18 | VEE | Negatiivinen jännite LCD-ohjaimelle | |
19 | A | Taustavalon LED | 5 V |
20 | K | Taustavalon LED | Maa |
Kuvan näyttäminen graafisella nestekidenäytöllä 8051: llä:
Jos haluat näyttää kuvan graafisella LCD-näytöllä, meidän on ensin muunnettava kuva kokoonpanokoodiksi, jotta 8051-mikrokontrolleri voi ymmärtää ja lukea sen. Joten meidän on noudatettava alla olevia vaiheita kuvan muuntamiseksi HEX-koodiksi:
Vaihe 1: Ensin on ladattava sovellus, joka muuntaa Image (BMP-muoto) kokoonpanokoodiksi. Joten lataa BMP2ASM Image Conversion -sovellus tältä linkiltä, napsauta linkkiä hiiren kakkospainikkeella ja napsauta sitten Tallenna linkki nimellä…
Vaihe 2: Valitse sitten kuva, jonka haluat näyttää graafisella LCD-näytöllä, ja muunna se BMP: ksi (jos se ei ole jo BMP-muodossa) millä tahansa sovelluksella, kuten MS Paint, Photoshop jne. Tai voit löytää monia verkkosivustoja kuvamuodon muuntamiseen. BMP-kuvan alapuolella on koko 128x64:
Vaihe 3: Pura nyt vaiheessa 1 lataamasi BMP2ASM.zip-tiedosto ja avaa siinä Bmp2asm.exe ja valitse BMP-kuva.
Vaihe 4: Paina nyt ”Muunna” BMP2ASM-sovellusikkunassa.
Vaihe 5: Kopioi sitten luotu koodi ja liitä se 8051-ohjelmaan Keil uVisionissa. Tee joitain muutoksia ja koota koodi.
Nyt koodisi on valmis lataamaan 8051-mikrokontrolleriin.
Piirin selitys:
Piiriliitännät graafisen LCD-näytön ja 8051-mikrokontrollerin välillä ovat helppoja ja melkein samanlaisia kuin 16x2 LCD: n liittäminen 8051: een. Mutta 16x2 LCD: ssä on 16 nastaa ja GLCD: ssä 20 nastaa.
10K-pottia käytetään asetettuun kontrastiin GLCD: lle. GLCD RS: n, R / W: n ja E: n ohjaintapit on kytketty suoraan 89C52- nastanumeroihin P1.0, P1.1 ja P1.2. LCD-sirun valintanastat CS1 ja CS2 on kytketty vastaavasti nastoihin P1.3 ja P1.4. Datanastat DB0-DB7 kytketään suoraan PORT P2: een. 7805-jännitesäädintä käytetään säännölliseen 5 voltin syöttöön. Esittelyvideossa olen käyttänyt Arduino-virtalähdettä.
Ohjelmoinnin selitys:
Ensinnäkin sisällytämme vaaditut otsikkotiedostot ohjelmaan ja määritämme bitit GLCD: n ohjaus- ja datanastoille.
#sisältää
Sen jälkeen olemme luoneet viivetoiminnon.
void delay (int itime) {int i, j; (i = 0; i
Toimintoa void lcd_disp_on () käytetään näytön käynnistämiseen.
Funktio void setCursorY (int y) luodaan sarakkeen asettamiseksi GLCD: ssä ja Function void setCursorX (int x) luodaan sivun asettamiseksi GLCD: lle. Täydellinen kooditiedosto on alla olevassa Koodi-osiossa.
Sarakkeen ja sivun asettamisen jälkeen olemme kirjoittaneet toiminnon komentojen ja tietojen lähettämiseksi GLCD: lle.
void lcdprint (char dat, int-koko) {unsigned int i; (i = 0; i
In void main () -toiminto, olemme selvitetty GLCD ja aseta pylväs ja Page. Lähetä sen jälkeen tiedot LCD- näyttöön käyttämällä void lcdprint (char dat, int size) -toimintoa.
void main () {int x, y; P3 = 0xff; kun taas (1) {lcdclear (); for (y = 0; y <8; y ++) {varten (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (kuva, x); }}…………………..
Koodin kulku:
- Ensin, kun käynnistämme järjestelmän, ohjelma tyhjentää GLCD: n ja kytkee näytön päälle.
- Aseta sitten kohdistin Sarake-kohtaan, josta haluamme kirjoittaa tiedot.
- Aseta sitten kohdistin Sivulle, josta haluamme kirjoittaa tiedot.
- Nyt ohjelma lähettää tietoja valittuun paikkaan yksitellen 128X8 kertaa. Koska GLCD: llä on 8 sivua ja 128 saraketta.