Utilizar el visualizador LCD

Utilizar el visualizador LCD

Este ejemplo muestra cómo utilizar un visualizador LCD alfanumérico. Las librerías de funciones simplifican este programa, lo que significa que al final el esfuerzo para crear el software vale la pena.
Un mensaje escrito en dos líneas aparece en el visualizador:
mikroElektronika
LCD example
Dos segundos más tarde, el mensaje en la segunda línea cambia, y se visualiza el voltaje presente en la entrada del convertidor A/D (el pin RA2). Por ejemplo:
mikroElektronika
voltage:3.141V
En un dispositivo real se puede visualizar temperatura actual o algún otro valor medido en vez de voltaje.
EJEMPLO 10
Para que este ejemplo funcione apropiadamente, es necesario marcar las siguientes librerías en la ventana Library Manager antes de compilar el programa:
  • ADC
  • LCD
/*Cabecera*****************************************************/

// Conexiones del módulo LCD
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// Final de las conexiones del módulo LCD

// Declarar variables
unsigned char ch; 
unsigned int adc_rd; 
char *text; 
long tlong; 

void main() {
  INTCON = 0;                    // Todas las interrupciones deshabilitadas
  ANSEL = 0x04;                  // Pin RA2 se configura como una entrada analógica
  TRISA = 0x04;
  ANSELH = 0;                    // Los demás pines se configuran como digitales
  
  Lcd_Init();                    // Inicialización del visualizador LCD
  Lcd_Cmd(_LCD_CURSOR_OFF);      // Comando LCD (apagar el cursor)
  Lcd_Cmd(_LCD_CLEAR);           // Comando LCD (borrar el LCD)
  
  text = "mikroElektronika";     // Definir el primer mensaje
  Lcd_Out(1,1,text);             // Escribir el primer mensaje en la primera línea
  
  text = "LCD example";          // Definir el segundo mensaje
  Lcd_Out(2,1,text);             // Definir el primer mensaje
  
  ADCON1 = 0x82;                 // Voltaje de referencia para la conversión A/D es VCC
  TRISA = 0xFF;                  // Todos los pines del puerto PORTA se configuran como entradas
  Delay_ms(2000);
  
  text = "voltage:";             // Definir el tercer mensaje
  
  while (1) {
    adc_rd = ADC_Read(2);        // Conversión A/D. Pin RA2 es una entrada.
    Lcd_Out(2,1,text);           // Escribir el resultado en la segunda línea
    tlong = (long)adc_rd * 5000; // Convertir el resultado en milivoltios    
    tlong = tlong / 1023;        // 0..1023 -> 0-5000mV
    ch = tlong / 1000;           // Extraer voltios (miles de milivoltios)
                              
    // del resultado             
    Lcd_Chr(2,9,48+ch);          // Escribir resultado en formato ASCII
    Lcd_Chr_CP('.');             
    ch = (tlong / 100) % 10;     // Extraer centenas de milivoltios
    Lcd_Chr_CP(48+ch);           // Escribir resultado en formato ASCII
    ch = (tlong / 10) % 10;      // Extraer decenas de milivoltios
    Lcd_Chr_CP(48+ch);           // Escribir resultado en formato ASCII
    ch = tlong % 10;             // Extraer unidades de milivoltios
    Lcd_Chr_CP(48+ch);           // Escribir resultado en formato ASCII
    Lcd_Chr_CP('V');
    Delay_ms(1);
  }
}

No response to “Utilizar el visualizador LCD”