- Vereiste componenten:
- Grafische LCD:
- Een afbeelding weergeven op een grafisch LCD-scherm met 8051:
- Circuit uitleg:
- Programmering Toelichting:
In ons dagelijks leven zien we veel soorten apparaten voor het weergeven van tekst, afbeeldingen en grafische afbeeldingen. LCD's zijn een van de meest populaire weergaveapparaten in de elektronica en worden in vrijwel alle projecten gebruikt die informatie weergeven. Er zijn veel soorten LCD's die worden gebruikt in elektronische projecten. We hebben al in veel van onze projecten 16X2 LCD gebruikt en ook TFT LCD met Arduino. U kunt al onze 16X2 LCD-gerelateerde projecten vinden door deze link te volgen, inclusief interfacing met 8051, AVR, Arduino en nog veel meer.
In deze tutorial gaan we grafische LCD-interface maken met 8051-microcontroller. In dit project laten we zien hoe u een afbeelding op een grafisch LCD-scherm (GLCD) kunt weergeven.
Vereiste componenten:
- Grafische LCD
- AT89c52 8051 Microcontroller
- 7805 spanningsregelaar
- 1000uf condensator
- 10 uF condensator
- 10K weerstand
- 10K POT
- Kristaloscillator 12 MH
- Verbindingsdraad
- Broodplank
- Burg strips mannelijk
- Stroomvoorziening
- LED
- 220 Ohm weerstand
- 1K weerstand
Grafische LCD:
Een eenvoudig 16x2 LCD-scherm heeft 16 pinnen, maar een grafisch LCD-scherm heeft 20 pinnen. De pinbeschrijving wordt hieronder gegeven volgens het gegevensblad:
Pin nr. | Pin Naam | Omschrijving | Functie |
1 | VSS | Grond | 0 Volt |
2 | VDD | Stroomvoorziening | 5 Volt |
3 | V0 | LCD-contrastaanpassing | |
4 | RS | Commando / data Register selectie | RS = 0: opdrachtselectie en RS = 1: gegevensselectie |
5 | R / W | Lees- / schrijfregister | R / W = 0: Selectie schrijven en R / W = 1: Selectie lezen |
6 | E. | Schakel Signaal in | |
7 | DB0 | Gegevensinvoer / -uitvoerpen (DB0-DB7) | 8 bits (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Chip selecteren | CS1 = 1, Chip Select-signaal voor IC1 |
16 | CS2 | Chip selecteren | CS2 = 1, Chip Select-signaal voor IC2 |
17 | RST | Reset | Reset GLCD |
18 | VEE | Negatieve spanning voor LCD-stuurprogramma | |
19 | EEN | Achtergrondverlichting LED | 5 Volt |
20 | K | Achtergrondverlichting LED | Grond |
Een afbeelding weergeven op een grafisch LCD-scherm met 8051:
Om een afbeelding op een grafisch LCD-scherm weer te geven, moeten we die afbeelding eerst converteren naar assemblagecode, zodat 8051 Microcontroller deze kan begrijpen en lezen. We moeten dus de onderstaande stappen volgen voor het converteren van afbeeldingen naar HEX-code:
Stap 1: Eerst moeten we een applicatie downloaden die Image (BMP-formaat) omzet in Assembly Code. Dus download de BMP2ASM Image Conversion Application via deze link, klik met de rechtermuisknop op de link en klik vervolgens op Link opslaan als…
Stap 2: Selecteer vervolgens de afbeelding die u op het grafische LCD- scherm wilt weergeven en converteer deze naar BMP (als deze nog niet in BMP-indeling is) met een toepassing zoals MS Paint, Photoshop enz. Of u kunt veel online websites vinden voor conversie van beeldformaat. We hebben onderstaande BMP-afbeelding, met formaat 128x64:
Stap 3: Pak nu het BMP2ASM.zip-bestand uit, dat we in stap 1 hebben gedownload en open Bmp2asm.exe erin, en selecteer de BMP-afbeelding.
Stap 4: Druk nu op "Converteren" in het BMP2ASM-toepassingsvenster.
Stap 5: Kopieer vervolgens de gegenereerde code en plak deze in het programma van 8051 in Keil uVision. Breng enkele wijzigingen aan en compileer de code.
Nu is uw code klaar om te uploaden in 8051 Microcontroller.
Circuit uitleg:
Circuitaansluitingen, voor Interfacing Graphical LCD naar 8051 Microcontroller, is eenvoudig en bijna hetzelfde als het aansluiten van 16x2 LCD op 8051. Maar 16x2 LCD heeft 16 pins en GLCD heeft 20 pins.
Een 10K-pot wordt gebruikt voor het ingestelde contrast voor GLCD. Bedieningspennen van GLCD RS, R / W en E zijn rechtstreeks verbonden met 89C52- pincode P1.0, P1.1 en P1.2. Chipkeuzepinnen CS1 en CS2 van LCD zijn respectievelijk verbonden met pin P1.3 en P1.4. Datapinnen DB0-DB7 zijn rechtstreeks verbonden met PORT P2. Een 7805 Spanningsregelaar wordt gebruikt voor reguliere 5 volt voeding. In demonstratievideo heb ik een Arduino-voeding gebruikt.
Programmering Toelichting:
Allereerst nemen we vereiste headerbestanden op in het programma en definiëren we bits voor besturings- en datapins van GLCD.
# omvatten
Daarna hebben we een vertragingsfunctie gemaakt.
ongeldige vertraging (int itime) {int i, j; voor (i = 0; i
Functie void lcd_disp_on () wordt gebruikt voor het inschakelen van het beeldscherm.
Function void setCursorY (int y) wordt gemaakt om de kolom in GLCD in te stellen en Function void setCursorX (int x) wordt gemaakt om de pagina op de GLCD in te stellen. Het volledige codebestand wordt gegeven in het onderstaande codegedeelte.
Na het instellen van Kolom en Pagina, hebben we een functie geschreven voor het verzenden van commando's en gegevens naar GLCD.
void lcdprint (char dat, int size) {unsigned int i; voor (i = 0; i
In de void main () functie hebben we GLCD gewist en vervolgens Kolom en Pagina ingesteld. Stuur daarna gegevens naar het LCD-scherm met behulp van de functie void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; while (1) {lcdclear (); voor (y = 0; y <8; y ++) {voor (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (afbeelding, x); }}…………………..
Code stroom:
- Als we het systeem eerst opstarten, wist het programma de GLCD en schakelt het scherm in.
- Stel vervolgens de cursor in op Kolom, van waaruit we de gegevens willen schrijven.
- Stel vervolgens de cursor in op Pagina, van waaruit we de gegevens willen schrijven.
- Nu zendt het programma gegevens één voor één naar de geselecteerde locatie tot 128x8 keer. Omdat een GLCD 8 pagina's en 128 kolommen heeft.