¿Qué es un LCD?
El LCD(Liquid
Crystal Dysplay) o pantalla de cristal líquido es un dispositivo
empleado para la visualización de contenidos, mediante carácteres, símbolos o pequeños dibujos dependiendo
del modelo.
En este caso
vamos a emplear un LCD de 16x2, esto quiere decir que dispone de 2 filas
de 16 caracteres cada una. Los píxeles de cada símbolo o carácter,
varían en función de cada modelo.
¿Cómo se conecta?
En la siguiente imagen de Proteus se puede observar la estructura de sus pines.
Lo podemos
dividir en los Pines de alimentación, pines de control y los pines del
bus de datos bidireccional. Por lo general podemos encontrar ademas en
su estructura los pines de Ánodo y cátodo de led.
Pines de alimentación:
Vss: Gnd
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K
Pines de control:
RS:
Corresponde al pin de selección de registro de control de datos (0) o
registro de datos(1). Es decir el pin RS funciona paralelamente a los
pines del bus de datos. Cuando RS es 0 el dato presente en el bus
pertenece a un registro de control/instrucción. y cuando RS es 1 el dato
presente en el bus de datos pertenece a un registro de datos o
un carácter.
RW: Corresponde al pin de Escritura(0) o de Lectura(1). Nos permite escribir un dato en la pantalla o leer un dato desde la pantalla.
E: Corresponde al pin Enable o de habilitación. Si E(0) esto quiere decir que el LCD no esta activado para recibir datos, pero si E(1) se encuentra activo y podemos escribir o leer desde el LCD.
RW: Corresponde al pin de Escritura(0) o de Lectura(1). Nos permite escribir un dato en la pantalla o leer un dato desde la pantalla.
E: Corresponde al pin Enable o de habilitación. Si E(0) esto quiere decir que el LCD no esta activado para recibir datos, pero si E(1) se encuentra activo y podemos escribir o leer desde el LCD.
Pines de Bus de datos:
El Bus de datos
bidireccional comprende desde los pines D0 a D7. Para realizar la
comunicación con el LCD podemos hacerlo utilizando los 8 bits del bus de
datos(D0 a D7) o empleando los 4 bits mas significativos del bus de
datos(D4 a D7)
La librería del LCD:
Para poder
visualizar los caracteres o símbolos en el LCD es necesario que en el
programa de código fuente a emplear, incluyamos la librería.
En este caso empleamos la librería "lcd.c".
En este caso empleamos la librería "lcd.c".
La librería viene configurada de esta manera
#define LCD_ENABLE_PIN PIN_E0
#define LCD_RS_PIN PIN_E1
#define LCD_RW_PIN PIN_E2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
Vamos a configurar para poder usar el PIN que nosotros deseamos, en este caso para usar el puerto D del PIC.
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
o también de esta manera
#define LCD_DATA_PORT getenv("SFR:PORTD")
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
Funciones a usar:
- lcd_init(): Inicializa el lcd
- lcd_gotoxy(x,y): Establece la posición de escritura en el lcd.
- lcd_putc(char s): nos muestra un dato en la siguiente posición del lcd.
- lcd_getc(x,y): lee el carácter de la posición (x,y)
muy buena pagina
ResponderEliminarCcs Compiler (Pic C Compiler) - Manejo De Lcd 16X2
Eliminar~
Aprendiendoelectrónica >>>>> Download Now
>>>>> Download Full
Ccs Compiler (Pic C Compiler) - Manejo De Lcd 16X2
~
Aprendiendoelectrónica >>>>> Download LINK
>>>>> Download Now
Ccs Compiler (Pic C Compiler) - Manejo De Lcd 16X2
~
Aprendiendoelectrónica >>>>> Download Full
>>>>> Download LINK 2q
Funciona en la realidad
ResponderEliminar¡excelente!
ResponderEliminarya funciono xD
Los fuses no afectan en un pic 18f4550?
ResponderEliminarCada PIC tiene sus respectivos fuses, para ver mas detalles de estos leer el datasheet del PIC
ResponderEliminarSaludos, tengo un problema, ya hice todo lo que dice en el video, y me leí lo del blog, pero no consigo hacer que funcione, ni en simulador, ni en la protoboard, tengo el código exactamente igual que en el video. Ayuda por favor.
ResponderEliminarbuen ejemplo gracias
ResponderEliminarhe conectado los pines del lcd a los pines del puerto D del pic pero no se a que se debe que no me permite cambiar estos pines que bienen por defecto a los del puerto b, si alguien sabe la solucion se lo agradeceria saludos.
ResponderEliminarsigo sin poder ver en la simulacion los caracteres del lcd alguien sabe a que se debe?, la compilacion no tiene errores pero al cargarlo en el proteus no puedo ver los caracteres
ResponderEliminarAlimentalo con una fuente de 5v a 1 ameperio
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarFunciona muy bien, tambien lo hice con el 16f887 y funciona igual, solo una cosa en el set tris a, colocas (0b00011), cuando el puerto "a" tiene 6 pines en lugar de 5, creo que te falto un cero, igual funciona.
ResponderEliminarNo es necesario colocar para todos los pines, solo para los pines que deseo, al final ambos tendran un mismo valor decimal. En el ejemplo solo se usa los pines a0 y a1, por tanto pude haber colocado set_tris_a(0b11);
ResponderEliminarhola una pregunta como puedo recuperar datos de la lcd para posteriormente utilizarlas, en un retardo de tiempo
ResponderEliminarincreible te debo una
ResponderEliminarincreible te debo una
ResponderEliminarayuda mucho esta pagina, me enseña mas que mi maestro gracias por todo animo!!
ResponderEliminarPara que es el "do{}" y porque el "while(x x x x ...)" va sin "{}"
ResponderEliminarBuenas tardes. Me gustó el video solo que el cuadro negro que aparece con el cursor sobra y es molesto. Te pregunto, poruqe la patalla se ilumina, veo que los pines alternan en tre rojo y azul pero no aparece ninguna letra?
ResponderEliminarGracias.
Hola muy buen aporte se agradece !! Pero tengo un problema no me deja compilar me da errores el archivo de las librerias lcd.c y no puedo hacerlo funcionar ayuda please
ResponderEliminarAUXILIO¡¡¡¡ NECESITO URGENTE LA FOTO DEL CIRCUITOOO XFAS...URGENTE AUN ME FALTAN 10MINUTOS Y SE ME PERDIOO YAUXILIOOO
ResponderEliminar}
AUXILIO¡¡¡¡ NECESITO URGENTE LA FOTO DEL CIRCUITOOO XFAS...URGENTE AUN ME FALTAN 10MINUTOS Y SE ME PERDIOO YAUXILIOOO
ResponderEliminar}
Buenas tardes excelentes vídeos
ResponderEliminarPorque en el lcd al organizar el contraste, me aparece un cuadro en parpadeo y aveces una linea en parpadeo
gracias
Buenas. Tengo alguna incertidumbre en el uso del LCD en lo que respecta a la creación de caracteres personalizados. En otro compilador se manejan varios pero en CCS supuestamente sólo se pueden crear 8. Estaría necesitando crear más. De hecho, los únicos que he creado fueron ocho y no me funcionan más que dos de ellos. ¿Existe alguna manera de hacerlo?
ResponderEliminarExcelente ejemplo. Muchas gracias!
ResponderEliminarChavos hay algo que me di cuenta al programar.
ResponderEliminarEl \f te posiciona automáticamente en (1,1) y borra.
Así que les recomiendo si quieren poner un mensaje en otra posición que no sea (1,1) primero borren y después se ubican.Ejem:
Lcd_putc("\f");
Lcd_gotoxy(3,1);
Printf(lcd_putc,"HOLA MUNDO");
Delay_ms(500);
Lcd_putc("\f");
Lcd_gotoxy(4,3);
Printf(lcd_putc,"HI WORLD");
Delay_ms(500);
Como uso el lcd con interrupciones
ResponderEliminarHola buenas tardes, soy rodrigo de uruguay y queria saber si podrias mostrar como se programa un PIC, con un LCD por comunicacion I2C, desde ya muchas gracias
ResponderEliminarMi display se pasa de 1 a 9 y el 0 programacion ?
ResponderEliminarSALUDOS tengo un problema al compilar .... me a error y me marca el ejemplo siguiente ,,, #include me lo marca como error me pueden ayudar gracias
ResponderEliminarAlguien me podria responder porque cuando quero cambiar al puerto b el lcd no me da nada no fu ciona hize todo pero no me funciona pero por defecto el puerto d ahi lo conecto y funciona
ResponderEliminarEs que hace falta cambiar la configuración de la librería de la lcd
EliminarComo declaro el \f ?
ResponderEliminarEste comentario ha sido eliminado por un administrador del blog.
ResponderEliminarmuy bueno muchas gracias!!!!
ResponderEliminarCcs Compiler (Pic C Compiler) - Manejo De Lcd 16X2
ResponderEliminar~
Aprendiendoelectrónica >>>>> Download Now
>>>>> Download Full
Ccs Compiler (Pic C Compiler) - Manejo De Lcd 16X2
~
Aprendiendoelectrónica >>>>> Download LINK
>>>>> Download Now
Ccs Compiler (Pic C Compiler) - Manejo De Lcd 16X2
~
Aprendiendoelectrónica >>>>> Download Full
>>>>> Download LINK