- Components necessaris:
- LCD gràfic:
- Mostrant una imatge a la pantalla gràfica amb 8051:
- Explicació del circuit:
- Explicació de la programació:
A la nostra vida diària, veiem molts tipus de dispositius per mostrar text, imatges i gràfics. Els LCD són un dels dispositius de visualització més populars d’electrònica i s’utilitzen principalment en tots els projectes que mostren algun tipus d’informació. Hi ha molts tipus de pantalles LCD que s’utilitzen en projectes electrònics. Ja hem utilitzat LCD 16X2 en molts dels nostres projectes i també hem utilitzat LCD TFT amb Arduino. Podeu trobar tot el nostre projecte relacionat amb LCD 16X2 seguint aquest enllaç, inclosa la interfície amb 8051, AVR, Arduino i molts més.
En aquest tutorial farem interfícies LCD gràfiques amb el microcontrolador 8051. En aquest projecte, mostrarem com mostrar una imatge en un LCD gràfic (GLCD).
Components necessaris:
- LCD gràfic
- Microcontrolador AT89c52 8051
- Regulador de tensió 7805
- Condensador de 1000uf
- Condensador de 10 uF
- Resistència de 10K
- 10K POT
- Oscil·lador de vidre 12 MH
- Cable de connexió
- Taula de pa
- Tires de Burg mascle
- Font d'alimentació
- LED
- Resistència de 220 Ohm
- 1K resistència
LCD gràfic:

Un LCD simple de 16x2 té 16 pins, però el LCD gràfic té 20 pins. A continuació es mostra la descripció dels pins segons el seu full de dades:
| Pin núm. | Nom del pin | Descripció | Funció |
| 1 | VSS | Terra | 0 volts |
| 2 | VDD | Font d'alimentació | 5 volts |
| 3 | V0 | Ajust de contrast LCD | |
| 4 | RS | Selecció del registre d’ordres / dades | RS = 0: Selecció d'ordres i RS = 1: Selecció de dades |
| 5 | R / N | Registre de lectura / escriptura | R / W = 0: escriure selecció i R / W = 1: llegir selecció |
| 6 | E | Activa el senyal | |
| 7 | DB0 | Pin d'entrada / sortida de dades (DB0-DB7) | 8 bits (DB0-DB7) |
| 8 | DB1 | ||
| 9 | DB2 | ||
| 10 | DB3 | ||
| 11 | DB4 | ||
| 12 | DB5 | ||
| 13 | DB6 | ||
| 14 | DB7 | ||
| 15 | CS1 | Selecció de xip | CS1 = 1, senyal de selecció de xip per IC1 |
| 16 | CS2 | Selecció de xip | CS2 = 1, senyal de selecció de xip per IC2 |
| 17 | RST | Restableix | Restableix GLCD |
| 18 | VEE | Voltatge negatiu per al controlador LCD | |
| 19 | A | Llum de fons LED | 5 volts |
| 20 | K | Llum de fons LED | Terra |
Mostrant una imatge a la pantalla gràfica amb 8051:
Per mostrar una imatge en pantalla LCD gràfica, primer hem de convertir aquesta imatge en codi de muntatge, de manera que el microcontrolador 8051 pugui entendre-la i llegir-la. Per tant, hem de seguir els passos següents per convertir la imatge en codi HEX:
Primer pas: primer hem de descarregar una aplicació que converteixi la imatge (format BMP) en codi de muntatge. Per tant, descarregueu l’ aplicació de conversió d’imatges BMP2ASM des d’aquest enllaç. Feu clic amb el botó dret a l’enllaç i feu clic a Desa l’enllaç com…
Pas 2: a continuació, seleccioneu la imatge que vulgueu mostrar a la pantalla gràfica i converteix-la a BMP (si encara no està en format BMP) mitjançant qualsevol aplicació com MS Paint, Photoshop, etc. O podeu trobar molts llocs web en línia per a la conversió de format d'imatge. Tenim a continuació una imatge BMP, amb una mida de 128x64:

Pas 3: ara extreu el fitxer BMP2ASM.zip, que hem descarregat al pas 1 i obriu Bmp2asm.exe al seu interior i seleccioneu la imatge BMP.


Pas 4: Premeu "Converteix" a la finestra de l'aplicació BMP2ASM.

Pas 5: A continuació, copieu el codi generat i enganxeu-lo al programa de 8051 a Keil uVision. Feu alguns canvis i compileu el codi.

Ara el vostre codi està a punt per carregar-se al microcontrolador 8051.
Explicació del circuit:

Les connexions de circuits, per a la interfície gràfica LCD amb microcontrolador 8051, són fàcils i gairebé iguals que la connexió de 16x2 LCD a 8051. Però el LCD 16x2 té 16 pins i el GLCD té 20 pins.
S'utilitza una olla de 10 K per establir el contrast de GLCD. Els pins de control de GLCD RS, R / W i E estan connectats directament al número de pin 89C52 P1.0, P1.1 i P1.2. Els pins de selecció de xips CS1 i CS2 de la pantalla LCD estan connectats als pins P1.3 i P1.4 respectivament. Els pins de dades DB0-DB7 es connecten directament a PORT P2. S'utilitza un regulador de voltatge 7805 per a un subministrament normal de 5 volts. Al vídeo de demostració, he utilitzat la font d'alimentació Arduino.
Explicació de la programació:
En primer lloc, incloem els fitxers de capçalera necessaris al programa i definim bits per a Control i Pin de dades de GLCD.
#incloure
Després d'això, hem creat una funció de retard.
void delay (int itime) {int i, j; per a (i = 0; i
La funció void lcd_disp_on () s'utilitza per activar la pantalla.
Function void setCursorY (int y) es crea per configurar la columna a GLCD i Function void setCursorX (int x) es crea per configurar la pàgina al GLCD. El fitxer de codi complet es proporciona a la secció de codi següent.
Després de configurar Columna i Pàgina, hem escrit una funció per enviar comandes i dades a GLCD.
void lcdprint (char dat, int size) {unsigned int i; per a (i = 0; i
A la funció void main () , hem esborrat GLCD i, a continuació, hem definit Columna i Pàgina. Després, envieu les dades a la pantalla LCD mitjançant la funció void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; while (1) {lcdclear (); for (y = 0; y <8; y ++) {for (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); impressió lcd (imatge, x); }}…………………..
Flux de codi:
- Primer quan engegem el sistema, el programa esborra el GLCD i encén la pantalla.
- A continuació, configureu el cursor a Columna, des d’on volem escriure les dades.
- A continuació, configureu el cursor a Pàgina, des d'on volem escriure les dades.
- Ara el programa envia les dades a la ubicació seleccionada un per un fins a 128X8 vegades. Com que un GLCD té 8 pàgines i 128 columnes.
