f LCD PIC 16f877a ~ Ingenieria a nivel industrial

Visita mi canal de youtube

sábado, 8 de octubre de 2016

LCD PIC 16f877a

El CCS tiene un driver para el manejo de pantallas LCD, este driver hay que incluirlo en la cabecera del programa mediante la siguiente línea de código
#include <lcd.c>
Este driver trabaja por defecto con el puerto D y permite utilizar las pantallas LCD para que trabajen con 4 bits de datos, siendo los pines a conectar como se muestra a continuación.
Pin del PIC          Pin del LCD
RD0                       E
RD1                       RS
RD2                       RW
RD4                       D4
RD5                       D5
RD6                       D6
RD7                       D7
También se puede hacer que trabaje con el puerto B agregando la siguiente linea de código
#define use_portb_lcd TRUE
Siendo el orden de conexión de los pines el mismo pero en este caso en el puerto B
La elección de los pines a utilizar del microcontrolador PIC, tambíen se puede seleccionar con el asistente al crear el programa, se puede elegir cualquier pin para los pines de control y para los pines de datos, en la siguiente imagen se muestra el asistente del CCS para elegir el uso de pantallas LCD con el  pic, se selecciona la casilla Use LCD, luego se seleccionan los pines que se usaran para el control y el envió de datos a la pantalla LCD.


Al darle en Create Project, el programa incluirá automaticamente el archivo de cabecera, las definiciones de los pines a utilizar los cuales deben ir antes de la inclusión del archivo de cabecera para el uso de las pantallas LCD, además crea la función lcd_init() tal como se muestra en la siguiente imagen:



Una vez incluido el archivo de cabecera y elegido los pines del microcontrolador a utilizar ya se pueden utilizar las funciones para el manejo de las pantallas lcd, la primera función que hay que llamar siempre es
lcd_init(); //esta se encargará de inicializar las pantallas lcd para su utilización.
Luego hay otras funciones mas como:
lcd_gotoxy(int8 x, int8 y);//para ubicar el cursor en una posición de la pantalla x para la columna e y para la fila, por ejemplo lcd_gotoxy(4,1) que indica en la primera fila la cuarta columna.
lcd_putc(char s);//para escribir caracteres en la pantalla lcd.
printf(lcd_putc,cstring,valores);//esta es una función del lenguaje C por lo que se recomienda que se lea sobre la función printf en el lenguaje C, en este caso está adaptada para su uso con los microcontroladores, permite ver en las pantallas lcd cadenas de caracteres con formato, un ejemplo sería:
printf(lcd_putc,”timer1 = %u”,timer1);// donde %u es para indicarle que el dato timer1 será de tipo entero sin signo, para datos de tipo cadena sería %s, en la siguiente tabla se  pueden ver los formatos para los diferentes tipos de datos.
Formato         Tipo de dato
%c                   Caracter
%s                   Cadena o caracter
%u                   Entero sin signo
%d                   Entero con signo
%Lu                 Entero largo sin signo
%Ld                 Entero largo con signo
%x                   Entero hexadecimal en minúsculas
%X                   Entero hexadecimal en mayúsculas
%Lx                  Entero largo hexadecimal en minúsculas
%LX                 Entero largo hexadecimal en mayúsculas
%f                    Número real o flotante
%g                   Número real o flotante con redondeo
%e                   Número real o flotante en  forma exponencial
Si esto se ve en una forma mas general tendrían esta forma %t donde t puede ser cualesquiera de los indicados, esto se puede manipular mas si se usa la forma %nt, donde n representa una opción para mejorar la presentación de los números en la pantalla.
si n va de 1 a 9 indica la cantidad de caracteres que se tendrán, si tiene la forma de 01 a 09 indica la cantidad de ceros a la izquierda y si va de 1.1 a 9.9 para indicar cuantos decimales tendrá el número.
por ejemplo %3d indica un entero con signo de 3 caracteres, %.3f indica un numero real con 3 decimales.
También se cuenta con unos caracteres especiales como
“\n” para cambiar de una fila a otra.
“\f” para limpiar o borrar la pantalla.
Ejemplo 1 El siguiente es un ejemplo del uso de las pantallas lcd con el CCS, en este caso se está utilizando el PIC16F877A del cual previamente se han configurado sus bits, está trabajando con un cristal de 4Mhz, este programa solo imprimirá el mensaje Amor mio en la pantalla LCD como se ve luego de la imagen del programa.
Borra la pantalla, imprime “amor mio”, espera 200ms, vuelve a borrar la pantalla, vuelve a imprimir “amor mio”, vuelve a esperar 200ms, vuelve a borrar la pantalla, vuelve a imprimir “amor mio”, vuelve a borrar la pantalla, vuelve a…. y así hasta el infinito, lo que pasa es que ocurre muy rápido por eso que no se ve.








0 comentarios:

Publicar un comentario