Manejo de LCD 16x2
2 participantes
PICELECTRONICA :: Inicio :: Microcontroladores :: Microchip :: CCS
Página 1 de 1.
Manejo de LCD 16x2
Las LCD´s o Displays son dispositivos alfanumericos que a diferencia de los Displays de 7 segmentos son capaces de mostrar letras, numeros y caracteres especiales que los displays comunes no pueden, su alcances son extensos y son ampliamente utilizadas para todo tipo de aplicaciones en las que se requiera mostrar valores, datos o lecturas de cualquier tipo
Foto de una LCD tipica de 16x2 con backlight
Aqui el diagrama de Conexion:
Aqui el codigo:
Para conectarla no solo es el simple hecho de conectarla y ya, se necesita de una libreria q sea capaz de manejar nuestra LCD para eso utilizamos la libreria "flex_lcd.c" la cual es creacion del usuario REDPIC y que amablemente pone a su disposicion en su blog, esta tiene la cualidad de poder configurar los pines de conexion lo cual es perfecto para adaptarla a otro PIC
Esta es la parte del codigo que hay que cambiar para redefinir los pines del PIC a utilizar
#define LCD_RS PIN_B0
#define LCD_RW PIN_B1
#define LCD_E PIN_B2
#define LCD_DB4 PIN_B4
#define LCD_DB5 PIN_B5
#define LCD_DB6 PIN_B6
#define LCD_DB7 PIN_B7
El pin 3 que es CONTR es el CONTRASTE de nuestra LCD si bien se puede colocar un potenciometro yo opte por colocar un par de resistencias en modo de divisor de tension que cumplen la misma funcion y son de 10K(R1) y 470(R2), esto debe colocarse ya que si no se hiciera asi no se podria visualizar correctamente la LCD
lcd_init();--Esta funcion debe ser llamada antes del codigo ya q es la q inicia nuestra LCD
lcd_gotoxy(1,2);-- Determina las coordenadas en las que aparecera nuestro mensaje significa que sera mostrado en el primer renglon(1) de la segunda linea(2)
lcd_putc("PICELECTRONICA."); -- El mensaje que sera mostrado en nuestra LCD
Espero que haya sido entendible les dejo en descarga la simulacion y la libreria saludos
DESCARGA
Foto de una LCD tipica de 16x2 con backlight
Aqui el diagrama de Conexion:
Aqui el codigo:
- Código:
///////////////////////////////////////////////
//Practica
//Manejo del LCD
//PIC16F628
//Compilador CCS
//Somacruz
//2012
/////////////////////////////////////////////
#include <16f628a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#include "flex_lcd.c"
////////////////////////////////
//Programa Principal//
////////////////////////////////
void main(){while(true)
{
lcd_init();
lcd_gotoxy(3,1);
lcd_putc("Iniciando...");
lcd_gotoxy(1,2);
lcd_putc("Prueba LCD 16X2");
delay_ms(3000);//Retardo 3 segundos
lcd_init();
lcd_gotoxy(3,1);
lcd_putc("BIENVENIDOS");
lcd_gotoxy(7,2);
lcd_putc("A:");
delay_ms(3000);
lcd_init();
lcd_gotoxy(1,1);
lcd_putc("PICELECTRONICA.");
lcd_gotoxy(2,2);
lcd_putc("FOROACTIVO.MX");
delay_ms(3000);
lcd_init();
lcd_gotoxy(3,1);
lcd_putc("Gracias por");
lcd_gotoxy(3,2);
lcd_putc("Tu Visita");
delay_ms(3000);
}
}
Para conectarla no solo es el simple hecho de conectarla y ya, se necesita de una libreria q sea capaz de manejar nuestra LCD para eso utilizamos la libreria "flex_lcd.c" la cual es creacion del usuario REDPIC y que amablemente pone a su disposicion en su blog, esta tiene la cualidad de poder configurar los pines de conexion lo cual es perfecto para adaptarla a otro PIC
Esta es la parte del codigo que hay que cambiar para redefinir los pines del PIC a utilizar
#define LCD_RS PIN_B0
#define LCD_RW PIN_B1
#define LCD_E PIN_B2
#define LCD_DB4 PIN_B4
#define LCD_DB5 PIN_B5
#define LCD_DB6 PIN_B6
#define LCD_DB7 PIN_B7
El pin 3 que es CONTR es el CONTRASTE de nuestra LCD si bien se puede colocar un potenciometro yo opte por colocar un par de resistencias en modo de divisor de tension que cumplen la misma funcion y son de 10K(R1) y 470(R2), esto debe colocarse ya que si no se hiciera asi no se podria visualizar correctamente la LCD
lcd_init();--Esta funcion debe ser llamada antes del codigo ya q es la q inicia nuestra LCD
lcd_gotoxy(1,2);-- Determina las coordenadas en las que aparecera nuestro mensaje significa que sera mostrado en el primer renglon(1) de la segunda linea(2)
lcd_putc("PICELECTRONICA."); -- El mensaje que sera mostrado en nuestra LCD
Espero que haya sido entendible les dejo en descarga la simulacion y la libreria saludos
DESCARGA
MOSTRAR LETRA POR LETRA EN UN LCD 2x40
Buenas siguiendo con los ejemplos de Somacruz, aca les traigo un sencillo ejemplo de como mostrar letra por letra en un LCD, espero que sea de su agrado, esto se puede facilitar tmb para un LCD de 2x16.
SIMULACION Y LIBRERIA
- Código:
#INCLUDE <16F628a.h>
#fuses INTRC_IO,MCLR
#use delay(clock=4M)
//configuraciones de pines del lcd
#define LCD_DB4 PIN_B4
#define LCD_DB5 PIN_B5
#define LCD_DB6 PIN_B6
#define LCD_DB7 PIN_B7
#define LCD_RS PIN_B2
#define LCD_E PIN_B3
#include <lcd1.c> //libreria del lcd
const INT mensaje[64]={"http://picelectronica.foroactivo.mx"}; // el mensaje a mostrar
//http://picelectronica.foroactivo.mx
//SALUDOS FOREROS ^^ :) :D XD O.O
char letra; // para almacenar cada letra
int contador; //contador para mensaje[][]
void main(){
lcd_init(); //declaracion principal para el LCD
for(;;){ //bucle infinito
lcd_putc("\f"); //inicamos y borramos toda la pantalla del LCD
for(contador=0;contador<40;contador++){ //del 0 al 40, xq el lcd es de 2x40
letra=mensaje[contador]; //lee la posicion 0 de la variable mensaje
//en este caso seria la letra "h"
lcd_gotoxy(contador+1,1); //ubica ala posicion 1 de la primera linea
lcd_putc(letra); //muestra el valor de letra="h"
output_toggle(PIN_B0); //opcionales para B0 y B1
output_toggle(PIN_B1);
delay_ms(100); //retraso de 100ms
}
lcd_gotoxy(15,2); //ubica al curso en la posicion 15 de la segunda linea
lcd_putc("FREDDYQT"); //muestra el siguiente mensaje
delay_ms(2000); //retardo
}
}
SIMULACION Y LIBRERIA
FREDDYQT- Usario Nuevo
- Mensajes : 16
Fecha de inscripción : 20/04/2012
Edad : 30
Localización : Peru
DESPLAZAMIENTO DE LETRAS EN LCD 2x40
Otro ejemplo paraLCD, espero que sea de su agrado..
lcd2
- Código:
#INCLUDE <16F628a.h>
#fuses INTRC_IO,MCLR
#use delay(clock=4M)
//configuraciones de pines del lcd
#define LCD_DB4 PIN_B4
#define LCD_DB5 PIN_B5
#define LCD_DB6 PIN_B6
#define LCD_DB7 PIN_B7
#define LCD_RS PIN_B2
#define LCD_E PIN_B3
#include <lcd1.c> //libreria del lcd
const INT mensaje[64]={"http://picelectronica.foroactivo.mx "};
int j,x,letra,n;
void main(){
lcd_init();
for(;;)
for(j=0;j<40;j++)
{ lcd_putc("\f");
lcd_gotoxy(17,1);
lcd_putc("MENSAJE");
for(x=0;x<j+1;x++)
{
n=j-x;
letra=mensaje[x];
lcd_gotoxy(40-n,2);
lcd_putc(letra);
}
delay_ms(100);
}
}
lcd2
FREDDYQT- Usario Nuevo
- Mensajes : 16
Fecha de inscripción : 20/04/2012
Edad : 30
Localización : Peru
Temas similares
» Manejo de LCD 20x4
» Manejo de Leds en CCS
» MANEJO DEL C.I. 74HC164 Y DISPLAY
» PIC Y DISPLAY A.C.-MANEJO BASICO
» Tutorial de PROTON manejo de LCD
» Manejo de Leds en CCS
» MANEJO DEL C.I. 74HC164 Y DISPLAY
» PIC Y DISPLAY A.C.-MANEJO BASICO
» Tutorial de PROTON manejo de LCD
PICELECTRONICA :: Inicio :: Microcontroladores :: Microchip :: CCS
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.