- Nødvendige komponenter:
- Grafisk LCD:
- Viser et billede på grafisk LCD ved hjælp af 8051:
- Forklaring af kredsløb:
- Programmeringsforklaring:
I vores daglige liv ser vi mange typer enheder til visning af tekst, billeder og grafik. LCD-skærme er en af de mest populære displayenheder i elektronik og bruges hovedsagelig i alle de projekter, der viser en slags information. Der er mange typer LCD-skærme, der bruges i elektroniske projekter. Vi har allerede brugt 16X2 LCD i mange af vores projekter og har også brugt TFT LCD med Arduino. Du kan finde alle vores 16X2 LCD-relaterede projekter ved at følge dette link, herunder grænseflade til 8051, AVR, Arduino og mange flere.
I denne vejledning skal vi lave Grafisk LCD-interface med 8051 mikrokontroller. I dette projekt vil vi vise, hvordan man viser et billede på grafisk LCD (GLCD).
Nødvendige komponenter:
- Grafisk LCD
- AT89c52 8051 Microcontroller
- 7805 spændingsregulator
- 1000uf kondensator
- 10 uF kondensator
- 10K modstand
- 10K POTTE
- Krystaloscillator 12 MH
- Forbindelsesledning
- Brødbræt
- Burg strimler han
- Strømforsyning
- LED
- 220 Ohm modstand
- 1K modstand
Grafisk LCD:
En simpel 16x2 LCD har 16 ben, men Grafisk LCD har 20 ben. Pinbeskrivelse er angivet nedenfor i henhold til databladet:
Pin nr. | Pin-navn | Beskrivelse | Fungere |
1 | VSS | Jord | 0 Volt |
2 | VDD | Strømforsyning | 5 volt |
3 | V0 | LCD kontrastjustering | |
4 | RS | Valg af kommando / data Register | RS = 0: Kommandovalg og RS = 1: Datavalg |
5 | R / W | Læs / skriv register | R / W = 0: Skriv markering og R / W = 1: Læs markering |
6 | E | Aktivér signal | |
7 | DB0 | Data input / output pin (DB0-DB7) | 8 bit (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Chip Select | CS1 = 1, Chip Select Signal til IC1 |
16 | CS2 | Chip Select | CS2 = 1, Chip Select Signal til IC2 |
17 | RST | Nulstil | Nulstil GLCD |
18 | VEE | Negativ spænding til LCD-driver | |
19 | EN | Baglys LED | 5 volt |
20 | K | Baglys LED | Jord |
Viser et billede på grafisk LCD ved hjælp af 8051:
For at vise et billede på grafisk LCD skal vi først konvertere dette billede til samlingskode, så 8051 Microcontroller kan forstå og læse det. Så vi er nødt til at følge nedenstående trin for at konvertere billede til HEX-kode:
Trin 1: Først skal vi downloade et program, der konverterer billede (BMP-format) til samlingskode. Så download BMP2ASM Image Conversion Application fra dette link, bare højreklik på linket og klik derefter på Gem link som…
Trin 2: Vælg derefter det billede, du vil have vist på det grafiske LCD-display, og konverter det til BMP (hvis det ikke allerede er i BMP-format) ved hjælp af et hvilket som helst program som MS Paint, Photoshop osv. Eller du kan finde mange online-websteder til konvertering af billedformat. Vi har nedenunder BMP-billede med størrelse 128x64:
Trin 3: Uddrag nu filen BMP2ASM.zip, som vi har downloadet i trin 1, og åbn Bmp2asm.exe i den, og vælg BMP-billedet.
Trin 4: Tryk nu på "Konverter" i BMP2ASM-applikationsvinduet.
Trin 5: Kopier derefter den genererede kode og indsæt i programmet 8051 i Keil uVision. Foretag nogle ændringer og kompiler koden.
Nu er din kode klar til upload i 8051 Microcontroller.
Forklaring af kredsløb:
Kredsløbstilslutninger, til grænseflade mellem grafisk LCD og 8051 mikrokontroller, er let og næsten det samme som at forbinde 16x2 LCD til 8051. Men 16x2 LCD har 16 ben og GLCD har 20 ben.
En 10K pot bruges til at indstille kontrast til GLCD. Kontrolstifter på GLCD RS, R / W og E er direkte forbundet til 89C52 pin nummer P1.0, P1.1 og P1.2. Chipvalgstifter CS1 og CS2 på LCD er tilsluttet henholdsvis pin P1.3 og P1.4. Datapinde DB0-DB7 er direkte forbundet med PORT P2. En 7805 spændingsregulator bruges til regelmæssig 5 volt forsyning. I demonstrationsvideo har jeg brugt Arduino strømforsyning.
Programmeringsforklaring:
Først og fremmest inkluderer vi påkrævede headerfiler i programmet og definerer bits til kontrol- og datapinde i GLCD.
#omfatte
Efter det har vi oprettet en forsinkelsesfunktion.
ugyldig forsinkelse (int itime) {int i, j; for (i = 0; i
Funktionen void lcd_disp_on () bruges til at tænde displayet.
Funktion ugyldig setCursorY (int y) oprettes til indstilling af kolonnen i GLCD og Funktion ugyldig setCursorX (int x) oprettes til indstilling af siden på GLCD. Komplet kodefil findes i nedenstående kodeafsnit.
Efter indstilling af Kolonne og Side har vi skrevet en funktion til at sende kommando og data til GLCD.
ugyldigt lcdprint (char dat, int størrelse) {usigneret int i; for (i = 0; i
I ugyldig hovedfunktion () har vi ryddet GLCD og derefter indstillet Kolonne og Side. Efter det skal du sende data til LCD ved hjælp af ugyldigt lcdprint (char dat, int størrelse) funktion.
ugyldig main () {int x, y; P3 = 0xff; mens (1) {lcdclear (); for (y = 0; y <8; y ++) {for (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (billede, x); }}…………………..
Flow of Code:
- Først når vi tænder for systemet, rydder programmet GLCD og tænder for skærmen.
- Indstil derefter markøren til Kolonne, hvorfra vi vil skrive dataene.
- Indstil derefter markøren til Side, hvorfra vi vil skrive dataene.
- Nu sender programmet data til den valgte placering en efter en indtil 128X8 gange. Fordi en GLCD har 8 sider og 128 kolonner.