Display LCD «Texto, variables, simbolos», Pic C Compiler

En esta sección aprenderás a programar un display LCD 16×2 en un microcontrolador PIC. El objetivo es mostrar texto y números de variables en la pantalla.

Display LCD 16X2

Descripción de Pines

  1. VSS (Ground)
  2. VDD (+5V)
  3. VO (Contraste)
  4. RS (Selección de  Registro)
  5. RW (Lectura/Escritura)
  6. E (Habilitar)
  7. D0 – D7 (Datos)
  8. A (Positivo de led)
  9. K (Negativo de Led)

Circuito del sistema

En esta practica aprenderás a programar texto y variables en la pantalla LCD.

Para poder programar el Display lo primero es difinir la conexión de cada pin e incluir la librería del LCD para su correcto funcionamiento.

Los pines del display LCD se pueden colocar de la manera que más te convenga en los pines de entrada/salida digital del microcontrolador PIC, en el ejemplo del diagrama de conexión se coloca el display en los pines B0-B6.

#define LCD_RS_PIN PIN_B6
#define LCD_RW_PIN PIN_B5
#define LCD_ENABLE_PIN PIN_B4
#define LCD_DATA4 PIN_B3
#define LCD_DATA5 PIN_B2
#define LCD_DATA6 PIN_B1
#define LCD_DATA7 PIN_B0


#include <lcd.c>

El siguiente paso es colocar la función que ayudara a mostrar el texto en el display.

lcd_init ();

Finalmente se coloca el cogido para seleccionar la posición en la que deseas que comience a escribir el texto y el código para mostrarlo pantalla.  

lcd_gotoxy (fila,columna); //posición
printf(LCD_PUTC, "TEXTO");//texto a mostrar

Código completo (Texto)

El siguiente código permite mostrar un mensaje en el display.

#FUSES NOMCLR

#define LCD_RS_PIN PIN_B6
#define LCD_RW_PIN PIN_B5
#define LCD_ENABLE_PIN PIN_B4
#define LCD_DATA4 PIN_B3
#define LCD_DATA5 PIN_B2
#define LCD_DATA6 PIN_B1
#define LCD_DATA7 PIN_B0
#include <lcd.c> 

void main()
{
   lcd_init ();
   while(TRUE)
   {
      lcd_gotoxy (1,1); 
      printf(LCD_PUTC, "HOLA");
      lcd_gotoxy (1,2); 
      printf(LCD_PUTC, "MUNDO");
   }

}

Tipos de variables en LCD

  • c — cadena o carácter.
  • u –entero sin signo.
  • d –entero con signo.
  • Lu — entero largo sin signo.
  • Ld — entero largo con signo.
  • x — entero hexadecimal (minúsculas).
  • X — entero hexadecimal (mayúsculas).
  • Lx — entero largo hexadecimal (minúsculas).
  • LX — entero largo hexadecimal (mayúsculas).
  • f — flotante con decimal truncado.
  • g — flotante con decimal redondeado.
  • e — flotante en formato exponencial.
  • w — entero sin signo con lugar decimal insertado. Especifique dos números para n.
    El primero es un ancho de campo total. El segundo es el número deseado de decimal.

Para poder integrar un tipo de variable en la pantalla el código seria el siguiente.

Código completo (variables)

En el siguiente código se utiliza una variable de tipo entera y una variable de tipo flotante para mostrarla en pantalla.


#FUSES NOMCLR

#define LCD_RS_PIN      PIN_B6
#define LCD_RW_PIN      PIN_B5
#define LCD_ENABLE_PIN  PIN_B4
#define LCD_DATA4       PIN_B3
#define LCD_DATA5       PIN_B2
#define LCD_DATA6       PIN_B1
#define LCD_DATA7       PIN_B0

#include <lcd.c>

void main()
{
   lcd_init ();
   int uno=123;
   float dos=3.1416;
   while(TRUE)
   {
      lcd_gotoxy(1,1);
      printf(LCD_PUTC,"UNO %d",uno);
      lcd_gotoxy(1,2);
      printf(LCD_PUTC,"DOS %f",dos);
   }

}
Scroll al inicio