You are on page 1of 12

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 20Kohm
Nota: 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:

You might also like