PICELECTRONICA
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Manejo de LCD 16x2

2 participantes

Ir abajo

Manejo de LCD 16x2  Empty Manejo de LCD 16x2

Mensaje  Somacruz Miér Mayo 09, 2012 10:25 pm

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 Very Happy

Foto de una LCD tipica de 16x2 con backlight
Manejo de LCD 16x2  IbjAmAmy7NcHOa

Aqui el diagrama de Conexion:

Manejo de LCD 16x2  Ibe3129003Xf2r

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 Wink

Esta es la parte del codigo que hay que cambiar para redefinir los pines del PIC a utilizar Cerveza
#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 Smile

Espero que haya sido entendible les dejo en descarga la simulacion y la libreria saludos Cool


DESCARGA
Somacruz
Somacruz
Administrador
Administrador

Mensajes : 23
Fecha de inscripción : 20/04/2012
Edad : 42

http://solopic.wordpress.com

Volver arriba Ir abajo

Manejo de LCD 16x2  Empty MOSTRAR LETRA POR LETRA EN UN LCD 2x40

Mensaje  FREDDYQT Miér Mayo 16, 2012 1:10 pm

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.
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
}
}

Manejo de LCD 16x2  Scaled.php?server=109&filename=lcdnb
alien alien alien alien alien alien alien alien
SIMULACION Y LIBRERIA
FREDDYQT
FREDDYQT
Usario Nuevo
Usario Nuevo

Mensajes : 16
Fecha de inscripción : 20/04/2012
Edad : 30
Localización : Peru

Volver arriba Ir abajo

Manejo de LCD 16x2  Empty DESPLAZAMIENTO DE LETRAS EN LCD 2x40

Mensaje  FREDDYQT Miér Mayo 16, 2012 2:23 pm

Otro ejemplo paraLCD, espero que sea de su agrado..
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);
  }
}

Manejo de LCD 16x2  Scaled.php?server=137&filename=lcdl

alien alien alien alien alien alien alien alien alien
lcd2
FREDDYQT
FREDDYQT
Usario Nuevo
Usario Nuevo

Mensajes : 16
Fecha de inscripción : 20/04/2012
Edad : 30
Localización : Peru

Volver arriba Ir abajo

Manejo de LCD 16x2  Empty Re: Manejo de LCD 16x2

Mensaje  Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.