Exibindo caracteres ASCII em LCD de 16 × 2 caracteres usando o microcontrolador Microchip PIC16f877

Visualización de caracteres ASCII en una pantalla LCD de 16 × 2 caracteres mediante el microcontrolador Microchip PIC16f877

En este tutorial imprimiré/mostré caracteres ASCII en una pantalla LCD de 16×2 usando el microcontrolador pic16f877. La pantalla LCD está interconectada con el microcontrolador pic en modo de 8 bits. El código está escrito en lenguaje c. Se utiliza un compilador C de alta tecnología para compilar código y el código está escrito en Mp-lab ide. Conectar una pantalla LCD de 16 × 2 con un microcontrolador pic y mostrar caracteres en la pantalla LCD es muy fácil. Sólo la parte un poco compleja es cómo generar/mostrar caracteres ASCII en la pantalla LCD. Bueno, no necesitas generar caracteres ASCII, ya están presentes en el controlador Ram LCD 16×2 (HD44780), al igual que otros caracteres y números . Sólo necesita saber cómo invocar los caracteres ASCII para que se muestren en la pantalla LCD.

Requerimientos del proyecto

  • Microcontrolador Microchip Pic16f877.
  • LCD de 16×2 caracteres.
  • Cristal 20MHz
  • Fuente de energía
  • Diseño de placa de pruebas o PCB (placa de circuito impreso)
  • Potenciómetro/resistencia variable (para configurar el contraste de la pantalla LCD)
Si es nuevo en el campo de los microcontroladores y las pantallas LCD y no conoce la configuración de pines, el funcionamiento y la estructura interna de la pantalla LCD, siga los siguientes tutoriales. Le informarán sobre el funcionamiento de la pantalla LCD de 16×2. ¿Aprenderás a mostrar caracteres en la pantalla LCD? ¿Diferencia entre comandos y datos enviados a la pantalla LCD? También explicará cómo utilizar la pantalla LCD en modo de 4 y 8 bits.

Pinout y funcionamiento de LCD 16×2

¿Cómo mostrar datos en una pantalla LCD de 16×2?

¿Diferencia b/n LCD en modo de 4 bits y 8 bits?

El diagrama de circuito del proyecto se proporciona a continuación. El puerto B del microcontrolador Pic16f877 está conectado con pines de datos LCD de 16 × 2. Esto significa que el Puerto B se utiliza para enviar comandos y datos a una pantalla LCD de 16×2. Las señales de control de LCD (lectura/escritura, habilitación, selección de registro) se proporcionan mediante bits de puerto D individuales. Todas las demás conexiones son conexiones normales, que aplican +5 voltios al microcontrolador y la pantalla LCD. Puede ver el diagrama del circuito que se muestra a continuación. Rs (Selección de registro) está conectado al pin n.° 6 del puerto D. En (Habilitar) está conectado al pin n.° 7 del puerto D. El pin de lectura/escritura está conectado a tierra. La pantalla LCD siempre permanecerá en el estado de grabación mientras conectemos a tierra el pin R/W.

LCD 16x2 con interfaz de modo de 8 bits con microcontrolador pic

LCD de 16×2 con interfaz en modo de 8 bits con microcontrolador pic

Código de proyecto

Pasando a la parte del código, primero incluyo el archivo de encabezado htc.h. Si está utilizando un compilador de C de alta gama, incluya siempre esta biblioteca; esta biblioteca debe incluirse en cada proyecto que se compilará con el compilador de C de alta gama. Contiene directivas de compilación, etc. A continuación, se configura la frecuencia del oscilador, que es de 20 MHz. A continuación, se configuran los pines individuales del D-Port. Estos pines se utilizan para proporcionar señales de control a la pantalla LCD. La función de retraso se utiliza para generar algún retraso arbitrario cuando sea necesario. La función LCDCMD envía comandos a la pantalla LCD con señales de control. La función de visualización envía datos a la pantalla LCD con señales de control. La función lcdint inicializa nuestra pantalla LCD (modo de 8 bits, pantalla encendida, cursor apagado, etc.).

Instrucción importante

En la función principal, dos instrucciones invocan caracteres ascii. La instrucción i=j/10; donde j es un número entero (int) y i es un carácter (char). Ahora, cuando dividimos dos números enteros y guardamos el resultado en la variable carácter (char). El resultado se almacena en formato ascii. Dado que j es 0 y dividir 0 entre 10 da 0. Entonces i contiene 0, el valor ASCII es igual a cero.
El carácter ascii 0 está presente en la dirección 0x30. Para ir a la dirección 0x00, niegue 0x30 desde 0x30. La instrucción i=i-0x30; está haciendo el mismo trabajo. Primero, contiene 0x30, después de ejecutar i=i-0x30, contiene 0x00. Entonces estamos en la dirección inicial de los caracteres ASCII. Ahora aumente la dirección una por una y muestre el carácter ASCII asociado con esa dirección en la pantalla LCD.

Direcciones de caracteres ASCII HD44780

Direcciones de caracteres ASCII HD44780
Observación que los caracteres ascii del controlador HD44780 difieren de los caracteres ascii estándar. El controlador HD44780 contiene caracteres ASCII en el formato que se muestra en el lado derecho. Algunas direcciones también son nulas. Así que no se confunda cuando vea los siguientes caracteres en su pantalla LCD.
El total de dígitos en la memoria RAM de la pantalla LCD de 16×2 es 256. Así que decidí mostrarlos todos. Contiene caracteres ASCII, numéricos, alfabéticos y especiales (chinos). Algunas direcciones son nulas, por lo que no se mostrará nada en la pantalla LCD en esas direcciones.
Descargue los archivos del proyecto, código y simulación. El código está escrito en lenguaje c utilizando el software Mp-lab y un compilador c de alta gama. La simulación se realiza en Proteaus 8.0. Por favor danos tu opinión sobre el proyecto.
Código/archivos del proyecto
Volver al blog

Deja un comentario

Los comentarios deben ser aprobados antes de su publicación.