Control Del Lcd Con Microcontrolador Atmega8

download Control Del Lcd Con Microcontrolador Atmega8

of 12

Transcript of Control Del Lcd Con Microcontrolador Atmega8

CONTROL DEL LCD CON MICROCONTROLADOR ATMEGA8

1. Introduccin

En este laboratorio se abarcara el tema de los LCDs alfanumricos con controlador Hitachi HD44780 o compatible, es decir, la mayora. Hay diversas firmas, como Optrex, Sharp, Crystalfontz America, Tianma, etc., que producen muchsimos LCDs de este tipo. Los hay desde 1 a 4 lneas, desde 8 a 40 letras por lnea, algunos con iluminacin de fondo, con diferente tecnologa de fabricacin, etc. Dada la compatibilidad en el control de todos ellos, la eleccin de un modelo en particular queda a tu cargo. El LCD utilizado en este curso es de 2 lneas, de 16 letras cada una.

PINES DEL LCD

SET DE INSTRUCCIONES DEL LCD

Es el controlador interno HD44780 (u otro) del LCD quien ejecuta las operaciones de mostrar las letras en la pantalla, mover el cursor, desplazar el contenido de la pantalla, etc. Lo que nos toca a nosotros es enviarle los cdigos de esas operaciones. A continuacin un pequeo cuadro:

INTERFACE ENTRE UN MICROCONTROLADOR Y UN DISPLAY LCD

Esta presentacin es poco usual. Los libros o los manuales de los compiladores suelen resaltar solo la interface de la librera que proveen. Esta exposicin va pensando en los noveles usuarios del Arduino, que encuentran algo confusa la inicializacin de su librera de LCD por contemplar todos los modos de operacin viables.Aunque los LCDs parezcan simples de usar, para bien o para mal sus caractersticas abren puertas a diversos modos de interface. Considerando que el bus de datos puede ser de 8 o 4 bits y que se puede usar o prescindir de la lnea de control RW, podemos obtener los siguientes 4 tipos de conexin.

INTERFACE DE 11 LINEAS:

La interface de 11 lneas se trabaja con los 8 bits del bus de datos y las 3 lneas de Control. El uso del pin RW controla las operaciones de escritura (RW = 0) y lectura (RW= 1) del LCD. Las lecturas nos permiten por un lado conocer si el LCD est ocupado o no para saber si podemos enviar la siguiente instruccin de escritura, as como leer la posicin actual del cursor.

INTERFACE DE 10 LINEAS:

En la interface de 10 lneas el pin RW del LCD va siempre plantado a GND (RW = 0). Ello significa que el LCD solo aceptar operaciones de escritura del microcontrolador. Renunciar a la lectura de las memorias RAM es un hecho que pasa casi desapercibido. El punto clave de no controlar el pin RW es no enviar al LCD una nueva instruccin sin que haya terminado de procesar la anterior. Ya que no podemos leer del LCD para saber su estado, debemos calcular su disponibilidad a partir de los tiempos que demoran en ejecutarse las instrucciones. Por ejemplo, una vez enviada la instruccin Clear Display debemos esperar al menos 1.6 ms (que es su tiempo de ejecucin) antes de enviar la siguiente instruccin.

INTERFACE DE 7 LINEAS:

En la interface de 7 lneas el bus de datos del LCD se conecta con el microcontrolador por sus 4 pines ms altos: D4, D5, D6 y D7. Como todas las instrucciones (de datos y de comando) son de un byte, los bytes deben ser transferidos en dos mitades. Primero se enva o recibe el nibble alto y luego el nibble bajo, siendo cada nibble validado por un pulso del pin Enable. Esas rutinas extras harn crecer un poco el firmware (programa del microcontrolador).En la contraparte, con el microcontrolador an disponiendo de las tres lneas de control, podemos realizar cualquier operacin de lectura y escritura, lo mismo que en la interface completa de 11 lneas pero ahorrndonos 4 pines. Este beneficio suele prevalecer sobre el handicap derivado del firmware.Los LCDs estn fabricados con tecnologa CMOS, por lo que algunos modelos sugieren conectar los pines de entrada no usados a alguna seal estable para evitar que por ellos se filtre algn ruido que pueda perturbar la operacin del LCD.

2. Objetivos

Aprender a utilizar el lenguaje C para la programacin del display LCD. Conocer las conexiones necesarias para llevar a cabo el funcionamiento del display LCD. Programar voltmetro de 0 a 5 V. Programar sistema de medicin de temperatura.

3. Materiales

Programa Atmel Studio versin 6. Protoboard. Microcontrolador Atmega8 Resistencias. Pulsador.

4. Procedimiento

PROGRAMACION DE UN LCD PARA MOSTRAR MENSAJE

En este laboratorio lo que tenemos que realizar es que el siguiente mensaje aparezca en el display LCD:

Segn la configuracin por defecto de la librera para el LCD, debemos usar la conexin mostrada en el esquema de abajo. La configuracin de puertos y de pines a usar se puede cambiar en archivo lcd.h.El pin VEE (o Vo) del LCD establece el contraste de la pantalla. Muchas veces se prefiere quitar el potencimetro y conectar VEE a tierra para fijar el mximo contraste.En los siguientes circuitos haremos algo parecido.

Primero procederemos a realizar el programa en el Atmel Studio 6:

Al simular en Proteus, el display LCD nos arrojara el mensaje requerido en esta ocasin:

PROGRAMACION DE UN VOLTIMETRO

En esta parte del laboratorio programaremos un voltmetro digital, en el cual el mensaje en la pantalla LCD debe de ser el siguiente:

1 FILA: VOLTAJE DIGITAL: ADC= 2 FILA: VOLTAJE EN DECIMAL: VOLTAJE=

Tal como se muestra en la figura:

Elaboracin del cdigo en C con el programa Atmel Studio 6:

La simulacin en Proteus se ver as:

PROGRAMACION DE UN SISTEMA DE MEDICION DE TEMPERATURA

Se utiliza un NTC con un =4050 con resistencia a 25C de 20KohmNota: La NTC se linealiza mediante una resistencia R1 de 10Kohm. El valor de la tensin de la NTC (Vt) se obtiene segn las ecuaciones que se muestra (temperatura en grados Kelvin):

CIRCUITO A SIMULAR:

Realizar el programa para mostrar el LCD: 1 FILA: MENSAJE: TEMPERATURA 2 FILA: TEMPERATURA: T=.C.

ELABORACION DEL CODIGO DEL PROGRAMA:

La simulacin en Proteus se ver as: