- Nødvendige komponenter:
- Grafisk LCD:
- Viser et bilde på grafisk LCD med 8051:
- Kretsforklaring:
- Programmeringsforklaring:
I vårt daglige liv ser vi mange typer enheter for visning av tekst, bilder og grafikk. LCD-skjermer er en av de mest populære skjermapparatene i elektronikk og brukes i stort sett alle prosjekter som viser noen form for informasjon. Det er mange typer LCD-skjermer som brukes i elektroniske prosjekter. Vi har allerede brukt 16X2 LCD i mange av våre prosjekter og har også brukt TFT LCD med Arduino. Du kan finne alt vårt 16X2 LCD-relaterte prosjekt ved å følge denne lenken, inkludert grensesnitt med 8051, AVR, Arduino og mange flere.
I denne opplæringen skal vi gjøre Grafisk LCD-grensesnitt med 8051 mikrokontroller. I dette prosjektet vil vi vise hvordan du viser et bilde på grafisk LCD (GLCD).
Nødvendige komponenter:
- Grafisk LCD
- AT89c52 8051 Microcontroller
- 7805 spenningsregulator
- 1000uf kondensator
- 10 uF kondensator
- 10K motstand
- 10K POTTE
- Krystalloscillator 12 MH
- Koblingsledning
- Brødtavle
- Burg strips hann
- Strømforsyning
- LED
- 220 Ohm motstand
- 1K motstand
Grafisk LCD:
En enkel 16x2 LCD har 16 pins, men Grafisk LCD har 20 pin. Pinbeskrivelse er gitt nedenfor i henhold til databladet:
Pin nr. | Pin-navn | Beskrivelse | Funksjon |
1 | VSS | Bakke | 0 Volt |
2 | VDD | Strømforsyning | 5 volt |
3 | V0 | LCD-kontrastjustering | |
4 | RS | Kommando / data Registervalg | RS = 0: Kommandovalg og RS = 1: Datavalg |
5 | R / W | Les / skriv register | R / W = 0: Skrivevalg og R / W = 1: Les utvalg |
6 | E | Aktiver signal | |
7 | DB0 | Datainput / output pin (DB0-DB7) | 8 bit (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
1. 3 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Chip Select | CS1 = 1, Chip Select Signal for IC1 |
16 | CS2 | Chip Select | CS2 = 1, Chip Select Signal for IC2 |
17 | RST | Nullstille | Tilbakestill GLCD |
18 | VEE | Negativ spenning for LCD-driver | |
19 | EN | Baklys LED | 5 volt |
20 | K | Baklys LED | Bakke |
Viser et bilde på grafisk LCD med 8051:
For å vise et bilde på grafisk LCD, må vi først konvertere dette bildet til monteringskode, slik at 8051 mikrokontroller kan forstå og lese det. Så vi må følge trinnene nedenfor for å konvertere bilde til HEX-kode:
Trinn 1: Først må vi laste ned et program som konverterer Image (BMP-format) til Assembly Code. Så last ned BMP2ASM Image Conversion Application fra denne lenken, bare høyreklikk på lenken og klikk deretter Lagre lenke som…
Trinn 2: Velg deretter bildet du vil vise på den grafiske LCD-skjermen, og konverter det til BMP, (hvis det ikke allerede er i BMP-format) ved hjelp av et hvilket som helst program som MS Paint, Photoshop osv. Eller du kan finne mange nettsteder på nettet for konvertering av bildeformat. Vi har bildet under BMP, med størrelse 128x64:
Trinn 3: Trekk nå ut BMP2ASM.zip-filen, som vi har lastet ned i trinn 1, og åpne Bmp2asm.exe i den, og velg BMP-bildet.
Trinn 4: Trykk nå "Konverter" i BMP2ASM-applikasjonsvinduet.
Trinn 5: Kopier deretter den genererte koden og lim inn i programmet 8051 i Keil uVision. Gjør noen endringer og kompiler koden.
Nå er koden din klar til å lastes opp i 8051 Microcontroller.
Kretsforklaring:
Kretsforbindelser, for grensesnitt grafisk LCD til 8051 mikrokontroller, er enkelt og nesten det samme som å koble 16x2 LCD til 8051. Men 16x2 LCD har 16 pinner og GLCD har 20 pinner.
En 10K-pott brukes til å stille kontrast for GLCD. Kontrollpinner på GLCD RS, R / W og E er direkte koblet til 89C52 pin nummer P1.0, P1.1 og P1.2. Chip select pins CS1 og CS2 på LCD er koblet til henholdsvis pin P1.3 og P1.4. Datapinner DB0-DB7 er direkte koblet til PORT P2. En 7805 spenningsregulator brukes til vanlig 5 volt forsyning. I demonstrasjonsvideo har jeg brukt Arduino strømforsyning.
Programmeringsforklaring:
Først og fremst inkluderer vi nødvendige headerfiler i programmet og definerer biter for Control and Data Pins of GLCD.
#inkludere
Etter det har vi opprettet en forsinkelsesfunksjon.
ugyldig forsinkelse (int itime) {int i, j; for (i = 0; i
Funksjon void lcd_disp_on () brukes til å slå på skjermen.
Funksjon void setCursorY (int y) opprettes for innstilling av kolonnen i GLCD og Funksjon void setCursorX (int x) opprettes for innstilling av siden på GLCD. Komplett kodefil er gitt under kodeseksjonen.
Etter å ha satt Kolonne og Side, har vi skrevet en funksjon for å sende kommando og data til GLCD.
ugyldig lcdprint (char dat, int størrelse) {usignert int i; for (i = 0; i
I ugyldig hoved () -funksjon har vi ryddet GLCD og deretter satt Kolonne og Side. Etter det, send data til LCD ved å bruke void lcdprint (char dat, int size) -funksjonen.
ugyldig hoved () {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 (bilde, x); }}…………………..
Flow of Code:
- Først når vi slår på systemet, tømmer programmet GLCD og slår på skjermen.
- Sett deretter markøren til Kolonne, hvorfra vi vil skrive dataene.
- Sett deretter markøren til Side, hvorfra vi vil skrive dataene.
- Nå sender programmet data til det valgte stedet en og en til 128X8 ganger. Fordi en GLCD har 8 sider og 128 kolonner.