- Nepieciešamās sastāvdaļas:
- Grafiskais LCD:
- Attēla parādīšana grafiskajā LCD, izmantojot 8051:
- Ķēdes skaidrojums:
- Programmēšanas skaidrojums:
Ikdienas dzīvē mēs redzam daudzu veidu ierīces teksta, attēlu un grafikas attēlošanai. LCD ir viena no populārākajām displeja ierīcēm elektronikā un tiek izmantota galvenokārt visos projektos, kuros tiek parādīta kāda veida informācija. Elektroniskajos projektos tiek izmantoti daudz veidu LCD. Mēs jau esam izmantojuši 16X2 LCD daudzos projektos, kā arī izmantojām TFT LCD ar Arduino. Visu mūsu ar 16X2 LCD saistīto projektu varat atrast, noklikšķinot uz šīs saites, ieskaitot saskarni ar 8051, AVR, Arduino un daudz ko citu.
Šajā apmācībā mēs veiksim grafisko LCD saskarni ar 8051 mikrokontrolleru. Šajā projektā mēs parādīsim, kā attēlu attēlot grafiskajā LCD (GLCD).
Nepieciešamās sastāvdaļas:
- Grafisks LCD
- AT89c52 8051 mikrokontrolleris
- 7805 sprieguma regulators
- 1000uf kondensators
- 10 uF kondensators
- 10K rezistors
- 10K POT
- Kristāla oscilators 12 MH
- Savienojošais vads
- Maizes dēlis
- Burg sloksnes vīriešu
- Enerģijas padeve
- LED
- 220 Ohm rezistors
- 1K rezistors
Grafiskais LCD:
Vienkāršam 16x2 LCD ir 16 tapas, bet Graphical LCD ir 20 kontakti. Piespraudes apraksts ir norādīts zemāk tā datu lapā:
PIN Nr. | Piespraudes nosaukums | Apraksts | Funkcija |
1 | VSS | Zeme | 0 volti |
2 | VDD | Enerģijas padeve | 5 volti |
3 | V0 | LCD kontrasta pielāgošana | |
4 | RS | Komandu / datu reģistra izvēle | RS = 0: komandu atlase un RS = 1: datu atlase |
5 | R / W | Lasīšanas / rakstīšanas reģistrs | R / W = 0: Rakstiet atlasi un R / W = 1: Lasiet atlasi |
6 | E | Iespējot signālu | |
7 | DB0 | Datu ievades / izvades tapa (DB0-DB7) | 8 biti (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Chip Select | CS1 = 1, mikroshēmas atlases signāls IC1 |
16 | CS2 | Chip Select | CS2 = 1, mikroshēmas atlases signāls IC2 |
17 | RST | Atiestatīt | Atiestatīt GLCD |
18 | VEE | Negatīvs spriegums LCD draiverim | |
19 | A | Aizmugures gaismas LED | 5 volti |
20 | K | Aizmugures gaismas LED | Zeme |
Attēla parādīšana grafiskajā LCD, izmantojot 8051:
Lai parādītu attēlu grafiskajā LCD, vispirms mums tas jāpārvērš montāžas kodā, lai 8051 mikrokontrolleris varētu to saprast un izlasīt. Tāpēc mums ir jāievēro šādi soļi, lai attēlu pārveidotu HEX kodā:
1. solis: Vispirms mums ir jālejupielādē lietojumprogramma, kas attēlu (BMP formātu) pārvērš montāžas kodā. Tātad lejupielādējiet BMP2ASM attēlu konvertēšanas lietojumprogrammu no šīs saites, vienkārši noklikšķiniet ar peles labo pogu uz saites un pēc tam noklikšķiniet uz Saglabāt saiti kā…
2. solis: Pēc tam atlasiet attēlu, kuru vēlaties parādīt grafiskajā LCD, un pārveidojiet to par BMP (ja tas vēl nav BMP formātā), izmantojot jebkuru lietojumprogrammu, piemēram, MS Paint, Photoshop utt. Vai arī jūs varat atrast daudzas tiešsaistes vietnes attēla formāta pārveidošanai. Mums ir zemāks par BMP attēlu ar izmēru 128x64:
3. solis: Tagad izvelciet failu BMP2ASM.zip, kuru esam lejupielādējuši 1. solī, un atveriet tajā Bmp2asm.exe un atlasiet BMP attēlu.
4. solis: Tagad BMP2ASM lietojumprogrammas logā nospiediet “Konvertēt”.
5. solis: Pēc tam nokopējiet izveidoto kodu un ielīmējiet 8051 programmā Keil uVision. Veiciet dažas izmaiņas un apkopojiet kodu.
Tagad jūsu kods ir gatavs augšupielādēšanai 8051 mikrokontrollerī.
Ķēdes skaidrojums:
Kontūru savienojumi grafiskā LCD saskarnei ar mikrokontrolleru 8051 ir viegli un gandrīz tādi paši kā 16x2 LCD savienošanai ar 8051. Bet 16x2 LCD ir 16 tapas un GLCD ir 20 kontakti.
GLK iestatītajam kontrastam tiek izmantots 10K katls. GLCD RS, R / W un E vadības tapas ir tieši savienotas ar 89C52 tapu numuriem P1.0, P1.1 un P1.2. LCD mikroshēmas atlases tapas CS1 un CS2 ir attiecīgi savienotas ar tapām P1.3 un P1.4. Datu tapas DB0-DB7 ir tieši savienotas PORT P2. Regulārai 5 voltu barošanai tiek izmantots sprieguma regulators 7805. Demonstrācijas video esmu izmantojis Arduino barošanas avotu.
Programmēšanas skaidrojums:
Pirmkārt, mēs programmā iekļaujam nepieciešamos galvenes failus un definējam bitus GLCD vadībai un datu tapām.
# iekļaut
Pēc tam mēs esam izveidojuši kavēšanās funkciju.
void delay (int itime) {int i, j; par (i = 0; i
Funkcija void lcd_disp_on () tiek izmantota displeja ieslēgšanai.
Funkcija void setCursorY (int y) tiek izveidota kolonnas iestatīšanai GLCD un Funkcija void setCursorX (int x) ir izveidota lapas iestatīšanai GLCD. Pilns koda fails ir norādīts sadaļā Kods.
Pēc kolonnas un lapas iestatīšanas mēs esam uzrakstījuši funkciju komandu un datu nosūtīšanai uz GLCD.
void lcdprint (char dat, int size) {neparakstīts int i; par (i = 0; i
Funkcijā void main () mēs esam notīrījuši GLCD un pēc tam iestatījuši kolonnu un lapu. Pēc tam nosūtiet datus uz LCD, izmantojot funkciju void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; kamēr (1) {lcdclear (); par (y = 0; y <8; y ++) {par (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (attēls, x); }}…………………..
Koda plūsma:
- Pirmkārt, kad mēs ieslēdzam sistēmu, programma notīra GLCD un ieslēdz displeju.
- Pēc tam iestatiet kursoru uz Kolonna, no kuras mēs vēlamies ierakstīt datus.
- Pēc tam iestatiet kursoru uz Lapa, no kurienes mēs vēlamies ierakstīt datus.
- Tagad programma pa vienam nosūta datus uz izvēlēto vietu līdz 128X8 Times. Jo GLCD ir 8 lapas un 128 kolonnas.