- Componentes requeridos:
- LCD gráfica:
- Mostrar una imagen en una pantalla LCD gráfica con 8051:
- Explicación del circuito:
- Explicación de programación:
En nuestra vida diaria, vemos muchos tipos de dispositivos para mostrar texto, imágenes y gráficos. Las pantallas LCD son uno de los dispositivos de visualización más populares en electrónica y se utilizan principalmente en todos los proyectos que muestran algún tipo de información. Hay muchos tipos de pantallas LCD que se utilizan en proyectos electrónicos. Ya hemos usado 16X2 LCD en muchos de nuestros proyectos y también usamos TFT LCD con Arduino. Puede encontrar todos nuestros proyectos relacionados con LCD 16X2 siguiendo este enlace, incluida la interfaz con 8051, AVR, Arduino y muchos más.
En este tutorial vamos a hacer una interfaz gráfica LCD con el microcontrolador 8051. En este proyecto, mostraremos cómo mostrar una imagen en una pantalla LCD gráfica (GLCD).
Componentes requeridos:
- LCD gráfica
- Microcontrolador AT89c52 8051
- Regulador de voltaje 7805
- Condensador 1000uf
- Condensador de 10 uF
- Resistencia de 10K
- BOTE 10K
- Oscilador de cristal 12 MH
- Cable de conexión
- Tabla de pan
- Burg tiras macho
- Fuente de alimentación
- LED
- Resistencia de 220 ohmios
- Resistencia de 1K
LCD gráfica:
Un LCD simple de 16x2 tiene 16 pines, pero el LCD gráfico tiene 20 pines. La descripción del pin se proporciona a continuación según su hoja de datos:
Pin No. | Nombre de PIN | Descripción | Función |
1 | VSS | Suelo | 0 voltios |
2 | VDD | Fuente de alimentación | 5 voltios |
3 | V0 | Ajuste de contraste LCD | |
4 | RS | Selección de registro de comando / datos | RS = 0: Selección de comando y RS = 1: Selección de datos |
5 | R / W | Registro de lectura / escritura | R / W = 0: escribir selección y R / W = 1: leer selección |
6 | mi | Habilitar señal | |
7 | DB0 | Pin de entrada / salida de datos (DB0-DB7) | 8 bits (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Selección de chip | CS1 = 1, señal de selección de chip para IC1 |
dieciséis | CS2 | Selección de chip | CS2 = 1, señal de selección de chip para IC2 |
17 | RST | Reiniciar | Restablecer GLCD |
18 | VEE | Voltaje negativo para el controlador LCD | |
19 | UN | LED de luz de fondo | 5 voltios |
20 | K | LED de luz de fondo | Suelo |
Mostrar una imagen en una pantalla LCD gráfica con 8051:
Para mostrar una imagen en una pantalla LCD gráfica, primero debemos convertir esa imagen en código de ensamblaje, de modo que el microcontrolador 8051 pueda entenderla y leerla. Por lo tanto, debemos seguir los pasos a continuación para convertir una imagen en código HEX:
Paso 1: Primero necesitamos descargar una aplicación que convierta la imagen (formato BMP) en código ensamblador. Así que descargue la aplicación de conversión de imágenes BMP2ASM desde este enlace, simplemente haga clic derecho en el enlace y luego haga clic en Guardar enlace como…
Paso 2: Luego, seleccione la imagen que desea mostrar en la LCD gráfica y conviértala en BMP (si aún no está en formato BMP) usando cualquier aplicación como MS Paint, Photoshop, etc. O puede encontrar muchos sitios web en línea para la conversión de formato de imagen. Tenemos a continuación la imagen BMP, con un tamaño de 128x64:
Paso 3: Ahora extraiga el archivo BMP2ASM.zip, que hemos descargado en el Paso 1 y abra Bmp2asm.exe dentro de él, y seleccione la imagen BMP.
Paso 4: Ahora presione "Convertir" en la ventana de la aplicación BMP2ASM.
Paso 5: Luego copie el código generado y péguelo en el programa 8051 en Keil uVision. Realice algunos cambios y compile el código.
Ahora su código está listo para cargar en el microcontrolador 8051.
Explicación del circuito:
Las conexiones del circuito, para interconectar LCD gráfico con el microcontrolador 8051, son fáciles y casi lo mismo que conectar un LCD de 16x2 a un 8051. Pero el LCD de 16x2 tiene 16 pines y el GLCD de 20 pines.
Se usa una olla de 10K para establecer el contraste para GLCD. Pines de control de GLCD RS, R / W y E están conectados directamente a 89C52 número pin P1.0, P1.1 y P1.2. Los pines de selección de chip CS1 y CS2 de la pantalla LCD están conectados al pin P1.3 y P1.4 respectivamente. Los pines de datos DB0-DB7 están conectados directamente al PUERTO P2. Se utiliza un regulador de voltaje 7805 para el suministro regular de 5 voltios. En el video de demostración, he usado la fuente de alimentación Arduino.
Explicación de programación:
En primer lugar, incluimos los archivos de encabezado requeridos en el programa y definimos bits para los pines de control y datos de GLCD.
#incluir
Después de eso, hemos creado una función de retardo.
demora nula (int itime) {int i, j; para (i = 0; i
La función void lcd_disp_on () se utiliza para encender la pantalla.
La función void setCursorY (int y) se crea para configurar la columna en GLCD y la función void setCursorX (int x) se crea para configurar la página en GLCD. El archivo de código completo se proporciona en la sección de código a continuación.
Después de configurar Columna y Página, hemos escrito una función para enviar comandos y datos a GLCD.
void lcdprint (char dat, int size) {unsigned int i; para (i = 0; i
En la función void main () , borramos GLCD y luego configuramos Columna y Página. Después, envíe los datos a la pantalla LCD utilizando la función void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; while (1) {lcdclear (); para (y = 0; y <8; y ++) {para (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (imagen, x); }}…………………..
Flujo de código:
- Primero, cuando encendemos el sistema, el programa borra el GLCD y enciende la pantalla.
- Luego coloque el cursor en Columna, desde donde queremos escribir los Datos.
- Luego coloque el cursor en la página, desde donde queremos escribir los datos.
- Ahora el programa envía datos a la ubicación seleccionada uno por uno hasta 128X8 veces. Porque un GLCD tiene 8 páginas y 128 columnas.