- Komponenter som krävs:
- Grafisk LCD:
- Visar en bild på grafisk LCD med 8051:
- Kretsförklaring:
- Programmeringsförklaring:
I vårt dagliga liv ser vi många typer av enheter för att visa text, bilder och grafik. LCD-skärmar är en av de mest populära bildskärmsenheterna i elektronik och används i mest alla projekt som visar någon form av information. Det finns många typer av LCD-skärmar som används i elektroniska projekt. Vi har redan använt 16X2 LCD i många av våra projekt och även använt TFT LCD med Arduino. Du hittar alla våra 16X2 LCD-relaterade projekt genom att följa denna länk, inklusive gränssnitt med 8051, AVR, Arduino och många fler.
I denna handledning ska vi göra Grafisk LCD-gränssnitt med 8051 mikrokontroller. I detta projekt kommer vi att visa hur man visar en bild på grafisk LCD (GLCD).
Komponenter som krävs:
- Grafisk LCD
- AT89c52 8051 Microcontroller
- 7805 spänningsregulator
- 1000uf kondensator
- 10 uF kondensator
- 10K motstånd
- 10K POT
- Crystal Oscillator 12 MH
- Anslutningskabel
- Brödbräda
- Burg remsor hane
- Strömförsörjning
- LED
- 220 Ohm motstånd
- 1K motstånd
Grafisk LCD:
En enkel 16x2 LCD har 16 stift men grafisk LCD har 20 stift. Pinbeskrivning ges nedan enligt databladet:
Stift nr. | Pin-namn | Beskrivning | Fungera |
1 | VSS | Jord | 0 volt |
2 | VDD | Strömförsörjning | 5 volt |
3 | V0 | LCD-kontrastjustering | |
4 | RS | Kommando / data Registrera val | RS = 0: Kommandoval och RS = 1: Dataval |
5 | R / W | Läs / skriv register | R / W = 0: Skrivval och R / W = 1: Läsval |
6 | E | Aktivera signal | |
7 | DB0 | Datainmatnings- / utgångsstift (DB0-DB7) | 8 bitar (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 för IC1 |
16 | CS2 | Chip Select | CS2 = 1, Chip Select Signal för IC2 |
17 | RST | Återställa | Återställ GLCD |
18 | VEE | Negativ spänning för LCD-drivrutin | |
19 | A | Bakgrundsbelysning LED | 5 volt |
20 | K | Bakgrundsbelysning LED | Jord |
Visar en bild på grafisk LCD med 8051:
För att visa en bild på grafisk LCD måste vi först konvertera bilden till församlingskod så att 8051 Microcontroller kan förstå och läsa den. Så vi måste följa stegen nedan för att konvertera bild till HEX-kod:
Steg 1: Först måste vi ladda ner en applikation som konverterar bild (BMP-format) till församlingskod. Så ladda ner BMP2ASM Image Conversion Application från den här länken, bara högerklicka på länken och klicka sedan på Spara länk som…
Steg 2: Välj sedan den bild som du vill visa på den grafiska LCD-skärmen och konvertera den till BMP, (om den inte redan är i BMP-format) med valfri applikation som MS Paint, Photoshop etc. Eller så kan du hitta många onlinewebbplatser för konvertering av bildformat. Vi har nedan BMP-bild, med storlek 128x64:
Steg 3: Extrahera nu BMP2ASM.zip-filen, som vi har laddat ner i steg 1 och öppna Bmp2asm.exe inom den och välj BMP-bilden.
Steg 4: Tryck nu på "Konvertera" i BMP2ASM-applikationsfönstret.
Steg 5: Kopiera sedan den genererade koden och klistra in i programmet 8051 i Keil uVision. Gör några ändringar och kompilera koden.
Nu är din kod redo att laddas upp i 8051 Microcontroller.
Kretsförklaring:
Kretsanslutningar, för gränssnitt grafisk LCD till 8051 mikrokontroller, är enkla och nästan samma som att ansluta 16x2 LCD till 8051. Men 16x2 LCD har 16 stift och GLCD har 20 stift.
En 10K-kruka används för att ställa in kontrast för GLCD. Kontrollstift av GLCD RS, R / W och E är direkt anslutna till 89C52 stiftnummer P1.0, P1.1 och P1.2. Chip select pins CS1 och CS2 på LCD är anslutna till pin P1.3 respektive P1.4. Datapinnar DB0-DB7 ansluts direkt till PORT P2. En 7805 spänningsregulator används för regelbunden 5 volt försörjning. I demonstrationsvideo har jag använt Arduino-strömförsörjning.
Programmeringsförklaring:
Först och främst inkluderar vi nödvändiga rubrikfiler i programmet och definierar bitar för kontroll- och datapinnen i GLCD.
#omfatta
Efter det har vi skapat en fördröjningsfunktion.
ogiltig fördröjning (int itime) {int i, j; för (i = 0; i
Funktionen void lcd_disp_on () används för att slå på skärmen.
Function void setCursorY (int y) skapas för att ställa in kolumnen i GLCD och Function void setCursorX (int x) skapas för att ställa in sidan på GLCD. Komplett kodfil ges i nedanstående kodavsnitt.
Efter att ha ställt in Kolumn och sida har vi skrivit en funktion för att skicka kommando och data till GLCD.
ogiltigt lcdprint (char dat, int storlek) {unsigned int i; för (i = 0; i
I ogiltig huvudfunktion () har vi rensat GLCD och sedan ställt in Kolumn och Sida. Efter det, skicka data till LCD med hjälp av tomrum lcdprint (char dat, int storlek) funktion.
ogiltigt huvud () {int x, y; P3 = 0xff; medan (1) {lcdclear (); för (y = 0; y <8; y ++) {för (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (bild, x); }}…………………..
Flödet av kod:
- Först när vi startar systemet rensar programmet GLCD och slår på skärmen.
- Ställ sedan markören till Kolumn, varifrån vi vill skriva Data.
- Ställ sedan markören på sidan, varifrån vi vill skriva data.
- Nu skickar programmet data till den valda platsen en efter en till 128X8 gånger. Eftersom en GLCD har 8 sidor och 128 kolumner.