Sunteți pe pagina 1din 10

AQU HAY APUNTES

Control de un LCD con un solo pin


Controlador LCD serie
Biblioman

2010

WWW.AQUIHAYAPUNTES.COM

Control de un LCD con un solo pin

Control de un LCD con un solo pin


Despus del periodo estival empezamos con este artculo que muestra como podemos enviar informacin a un LCD utilizando un solo pin de nuestro Microcontrolador. La idea es utilizar el protocolo de comunicacin serie estndar RS-232 para enviar la informacin a otro microcontrolador que har las funciones de controlador del LCD,

este se encargar de recibir los comandos y el texto enviados por el PIC transmisor y enviarlos en el formato correcto al LCD para su representacin en el mismo. No es necesario que el PIC transmisor disponga de UART, por ejemplo si programamos el PIC utilizando el compilador de CCS, podemos a travs de la directiva #USE RS232 seleccionar fcilmente cualquier pin del PIC para la transmisin y recepcin de datos, en el caso de que nuestro microcontrolador no disponga de UART la comunicacin ser gestionada por software a travs de las funciones "buit-in" de las que dispone el compilador y de forma totalmente transparente para nosotros.

El funcionamiento es muy simple en el cdigo del transmisor lo nico que hay que hacer es enviar los caracteres en formato ASCII a travs de las funciones especificas que cada compilador dispone para ello, por ejemplo si programamos nuestro PIC en C esas funciones sern printf(), puts() y putchar(), si utilizamos otro lenguaje de programacin, lo nico que habr que hacer es ver que funciones implementa el compilador que utilicemos para tal fin. El controlador serie se encargar de forma transparente de todo lo concerniente al control del LCD, cambiar de lnea cuando sea necesario y borrar la pantalla al inicio de cada mensaje. Configuracin y control de flujo de datos. En cualquier comunicacin serie lo primero que se debe de establecer es la configuracin de la interfaz entre transmisor y receptor, en este caso el controlador serie est configurado para una velocidad de 9600 baudios, 8 bits de datos y un bit de parada, pero fcilmente se le puede cambiar la configuracin a otra distinta.

Aqu hay apuntes

Control de un LCD con un solo pin

Otro tema importante en la comunicacin serie es el control de flujo de datos, para ello el estndar establece dos formas: control de flujo de datos por hardware (handshaking RTS/CTS), en este caso adems de los pines Tx y Rx para la transmisin y recepcin de datos se utilizan dos pines ms para las seales RTS y CTS que son utilizadas para la sincronizacin de los datos entre emisor y receptor. La otra forma de controlar el flujo de datos es por software a travs del envo de caracteres especiales (XON/XOFF), en este caso no se necesita ningn pin adicional. El controlador serie necesita saber cuando acaba una cadena de texto y empieza otra, para ello se utiliza el caracter de retorno de carro (/r) que hay que incluir al final de cada cadena de texto en el programa del PIC transmisor. El Microcontrolador utilizado en el controlador serie es un PIC16f628 que es un PIC de 18 pines muy utilizables, ya que una caracterstica de este microcontrolador es que dispone de un oscilador interno a 4MHz, con lo que si lo utilizamos nos ahorramos el incluir en el circuito el cristal de cuarzo con los condensadores. Como se muestra en la figura de abajo el esquema del circuito es bien simple:

Aqu hay apuntes

Control de un LCD con un solo pin

El circuito incluye un conector IDE de 16 pines que permite la conexin y desconexin del LCD fcilmente, de esta manera no hacemos fijo el LCD al controlador, pudiendo utilizar el LCD en otros circuitos.

Aqu hay apuntes

Control de un LCD con un solo pin

Vamos a ver el funcionamiento del controlador serie con un ejemplo, para ello utilizaremos como PIC transmisor el que viene en el kit de desarrollo PIC16f877A de CCS y al que se le conectan diferentes perifricos tpicos en cualquier desarrollo con microcontroladores, el esquema de bloques del ejemplo ser el siguiente:

Aqu hay apuntes

Control de un LCD con un solo pin

Comentario El programa del PIC transmisor se encarga de hacer la lectura de datos de un reloj en tiempo real (RTC) y el de un sensor de temperatura, los datos son enviados via serie al controlador LCD a travs de la funcin printf() incluyendo al final de cada cadena de texto el caracter de retorno de carro, que le indicar al controlador LCD el final de la cadena, la funcin delay_ms() establece un retardo de 1,5 segundos entre cada mensaje para que de tiempo a leerlos en el LCD:

Aqu hay apuntes

Control de un LCD con un solo pin


view source print?
01.while(true) 02.{ 03.......... 04.......... 05. 06.printf("www.AquiHayApuntes.com\r"); 07.delay_ms(1500); 08.printf("Prueba Controlador 09.delay_ms(1500); 10.printf(" Hora : %02u:%02u:%02u\r",hora,minutos,segundos); LCD Serie Universal\r");

11.delay_ms(1500); 12.printf("Temperatura = %f\r",datos); 13.delay_ms(1500); 14.......... 15.......... 16.}

Una de las ventajas que presenta el utilizar el controlador LCD serie adems de solo necesitarse un pin para transmitir los datos, es que al transmitirse los datos a travs de un protocolo estndar, es independiente de la plataforma utilizada por lo que podremos utilizarlo en diferentes placas con microcontroladores de arquitectura diferente y sin tener que preocuparnos de ningn driver. Otro uso que le podemos dar es para depurar nuestros programas, supongamos que no disponemos de ningn debugger en tiempo real y nuestro simulador software favorito no dispone del modelo de pic que estemos utilizando en nuestro proyecto, por ejemplo un PIC32. Podemos incluir en nuestro programa fragmentos de cdigo que enven mensajes al LCD del valor de determinadas variables, de manera similar a como hacamos cuando envibamos los mensajes a travs del adaptador de niveles MAX232 y veamos los resultados en el hyper terminal de nuestra computadora personal, pero esta vez sin tener que utilizar ningn PC.

Aqu hay apuntes

Control de un LCD con un solo pin

Por ejemplo el siguiente fragmento de cdigo lo podemos utilizar para comprobar el valor que va tomando la variable "x" durante la ejecucin del programa. Para hacer ms funcional nuestro cdigo de depuracin vamos ayudarnos de las directivas del Preprocesador, lo que hay dentro de las directivas #ifdef y #Endif solo se compilar si previamente hemos definido la etiqueta DEBUG. Si no est definida esa etiqueta ese cdigo no se compilar y por tanto no consumir recursos de memoria del PIC. Por lo que comentando o descomentando una sola lnea de nuestro cdigo es suficiente para saber el valor que van tomando las variables en la secuencia de ejecucin de nuestros programas.

Aqu hay apuntes

Control de un LCD con un solo pin


view source print?
01.//#define DEBUG 02.void main(void) 03.{ 04. int x; 05. 06. while(true) 07. { 08. 09. ....... 10. ....... 11. 12. //Ejemplo depuracin 13. #ifdef DEBUG 14. printf("Debugging con el controlador LCD serie:\r"); 15. delay_ms(1500); 16. printf("El valor de x es: %d\r",x); 17. delay_ms(1500); 18. #Endif 19. x++; 20. }

Ver vdeo. http://www.youtube.com/watch?v=t7CgZTbdedY

Aqu hay apuntes

Control de un LCD con un solo pin

10

http://electronica-pic.blogspot.com

Tutorial creado por Bilbioman. Versin 1.00 http://www.aquihayapuntes.com/indice-practicas-pic-en-c/controlador-lcd-serie.html Portado a PDF por Meta. http://electronica-pic.blogspot.com

Aqu hay apuntes

10

S-ar putea să vă placă și