Como Incorporar una Pantalla LCD

En esta entrada aprenderemos a utilizar una pantalla LCD la mas común es la 2x16


Esta es la manera de conectar la LCD generalmente usaremos 4 lineas para los datos (D4-D7) los bits RS,RW , GND VDD y VEE pin al cual ira un potenciómetro para regular el contraste, ademas de los pines bk+ y bk- para el blackligth en las pantallas que traen iluminación LED de fondo.
  
 

 PROYECTO: Enviar un mensaje a una pantalla LCD conectada al puertoC de microcontrolador.

CCS dispone de una librería para trabajar con pantallas LCD llamada lcd.h la cual llamamos con la
 instrucción: #include <lcd.c>     

La abrimos como muestra la imagen y dentro encontramos los comandos necesarios para controlarla:

lcd_init()   Must be called before any other function.               
                                                                       
lcd_putc(c)  Will display c on the next position of the LCD.         
                 \a  Set cursor position to upper left                 
                 \f  Clear display, set cursor to upper left           
                 \n  Go to start of second line                        
                 \b  Move back one position                            
lcd_gotoxy(x,y) Set write position on LCD (upper left is 1,1)        
lcd_getc(x,y)   Returns character at position x,y on LCD                                                        
                                                          
CONFIGURACION                                                        
Nos dice que podemos controlarla de 2 maneras utilizando 
                
a.) acceso por puerto                                 
con este codigo le decimos que utilizaremos un completo.  
ejemplo:                                        
#define LCD_DATA_PORT getenv("SFR:PORTC")           
                                                                       
b.) acceso por pines
aquí podemos usar los pines de la manera que queramos.   
ejemplo:                                       
     #define LCD_ENABLE_PIN  PIN_C0                                    
     #define LCD_RS_PIN      PIN_C1                                    
     #define LCD_RW_PIN      PIN_C2                                    
     #define LCD_DATA4       PIN_C4                                    
     #define LCD_DATA5       PIN_C5                                    
     #define LCD_DATA6       PIN_C6                                    
     #define LCD_DATA7       PIN_C7                                    

El codigo queda como sigue:
#include &lt16F886.h&gt
#FUSES NOWDT                                 //No Watch Dog Timer
#use delay(crystal=20000000)                 //reloj de 20Mhz
#define LCD_DATA_PORT getenv("SFR:PORTC")    //indicamos lcd conectada a PuertoC
#include &ltlcd.c&gt                         //librería LCD viene con el compilador

void main()
{
   lcd_init();                 //inilicializar LCD
 
   while(TRUE)
   {
      lcd_gotoxy(1,1);                 //ir a la linea 1 posicion 1
      printf(lcd_putc,"LCD 16x2");     //mensaje en linea1
      delay_ms(50);                    //retardo de 50ms
      lcd_gotoxy(1,2);                 //ir a la linea 2 posicion 1
      printf(lcd_putc,"hacermirobot"); //mensaje linea 2
      delay_ms(50);                    //retardo de 50ms
   }
}

Montaje en PROTEUS



No hay comentarios:

Publicar un comentario