Manual Teclado Pantalla

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

EIEE, 2018

Manual para Configurar Pantalla LCD y


Teclado Matricial
Elaborado por: Luis Alberto Home Mera
Universidad del Valle

Primero necesitamos tener un software de programación (Atmel Studio), uno para


simulación (Proteus), hardware de programación (USBasp), un microcontrolador
(ATmega), un teclado matricial(4x4) y una pantalla LCD(2x16).

Pantalla LCD 2x16

Para configurar la pantalla se necesitará una librería que será utilizada como un archivo de
cabecera, con esta librería se podrá manejar el LCD AVR mediante funciones fáciles de
recordar; si se busca en la red se encontrarán muchas librerías, una de ellas y es la que
se usará, es la que se puede encontrar dentro de la carpeta de archivos como “lcdlibrary”
Es de mencionar que el driver descargado solo trabaja para enviar los datos y caracteres al
LCD con 4 bits, se puede elegir entre el nivel alto o el nivel bajo del bus de datos del LCD.

Una vez descargada y descomprimida la librería para el manejo del LCD AVR, se verá que
se tienen los archivos que se muestran en la imagen, los archivos necesarios son los que
están resaltados, uno es el lcd.c y el otro el lcd.h, estos archivos serán los originales y hay
que cuidarlos, en lo posible no modificarlos, lo que se hará serán copias a las cuales si se
podrá modificar pero se recomienda solo la parte en la que se le indica el puerto donde se
conectará la pantalla LCD AVR, que viene a ser solo una línea de código, se ve en la
EIEE, 2018

imagen que también hay un manual que será de mucha utilidad, además los archivos
vienen comentados así que no será complicado utilizarlos.
Para utilizar estos archivos para el manejo del LCD AVR, en el ATMEL STUDIO es
necesario que se sigan los siguientes pasos.

En la paleta del explorador de soluciones sobre la carpeta que tiene el nombre del proyecto
creado, en este caso se le ha llamado manual, hacer click con el botón derecho y en las
opciones que aparecen sobre add y luego sobre nueva carpeta como se ve en la siguiente
imagen. A la nueva carpeta se le puede dar el nombre que se quiera, en este caso se le ha
dado LCD, luego hay que copiar los archivos descargados lcd.h y lcd.c dentro de esta
carpeta, para eso se copia los archivos, se hace click derecho sobre la carpeta LCD creada
y se le dice pegar, la paleta del explorador de soluciones quedará tal como se ve en la
siguiente imagen.
EIEE, 2018

Luego hacer click derecho sobre el nombre del proyecto, en este caso manual, y hacer
click sobre propiedades, se abrirá una ventana como la que se muestra a continuación, en
la pestaña que dice toolchain se hace click sobre directorios, en la opción que dice include
paths sobre el icono + en color verde hacer click, se abrirá la ventana add include paths(-I),
click sobre el botón de los tres puntos … y allí se busca la ubicación de la carpeta creada
donde se agregó los archivos lcd.c y lcd.h que en este caso se le llamo LCD, normalmente
aparece en forma automática la ubicación de esta carpeta en la ventana que se abre y solo
hay que darle en seleccionar carpeta o hacer doble click sobre la carpeta, en caso
contrario hay que buscarla y estará dentro de la carpeta del proyecto creado en el ATMEL
STUDIO.
EIEE, 2018

En la imagen se observa que en la lista de errores aparece una advertencia que dice
“F_CPU not defined…” para evitar eso hay que hacer un paso mas, en toolchain sobre
symbols se hace click, luego en defined symbols(-D) sobre + en color verde, en la ventana
que sale se escribe la frecuencia a la cual está trabajando el microcontrolador AVR tal
como se ve en la siguiente imagen, en este caso la frecuencia es de 8Mhz,
F_CPU=8000000UL, ul viene de entero sin signo.
EIEE, 2018

Después de esto ya tenemos nuestra librería, pero debemos indicarle al compilador que
vamos a utilizar la pantalla LCD por lo tanto escribimos en el encabezado

#include <lcd.h>
Luego será necesario indicarle al programa cual será el puerto del microcontrolador AVR
que se utilizará para la pantalla LCD, por defecto es el puerto C, para cambiarlo, y será la
única modificación que se haga, hay que hacer click derecho sobre “lcd.h” y en las
opciones que aparecen hacer click sobre Goto implementation, tal como se muestra en la
siguiente imagen.

En la pestaña que se abra, que será la pestaña lcd.h, hay que buscar la opción
LCD_PORT, tal como se muestra y está resaltada en la siguiente imagen, se puede ver
que se ha modificado la opción por defecto que es PORTA por PORTD, porque será este
el puerto que se usará para el ejemplo con el ATmega88, no se harán más modificaciones,
pero sí que se pueden hacer, pero cuando se está comenzando es mejor que no, conforme
se vaya conociendo más el driver se podrán hacer todas la modificaciones que se quieran.
EIEE, 2018

No modificando nada más en el driver, las conexiones de los pines de LCD AVR a los pines
del puerto del microcontrolador AVR utilizado serán en el siguiente orden, si se desea
también se puede modificar, pero por ahora se usaran los que vienen por defecto, en este
caso al puerto D si es otro el puerto utilizado el orden es el mismo, solo cambia el nombre
el puerto usado.

RS al pin PD4
RW al pin PD5
E al pin PD6
Data4 al pin PD0
Data5 al pin PD1
Data6 al pin PD2
Data7 al pin PD3

Las conexiones entre la pantalla LCD y el ATmega88 serán como se muestra en la


siguiente imagen:
EIEE, 2018

Para la programación del LCD AVR, utilizando la librería descargada y comentada líneas
arriba, se tendrán una serie de funciones que ayudarán a manipular las pantallas LCD, se
puede revisar el manual para conocer para que sirven cada una de las funciones, en este
caso se comentarán las mas importantes para comenzar, mas adelante se irá
complementando con otras.

Lo primero que hay que hacer es inicializar la pantalla LCD AVR y eso se hace mediante la
siguiente función

lcd_init(modo de inicio de la pantalla LCD);

Para el modo de inicio de la pantalla LCD AVR se tienen 4 opciones que son las
siguientes:

LCD_DISP_OFF mediante esta opción la pantalla estará apagada


EIEE, 2018

LCD_DISP_ON mediante esta opción se enciende la pantalla pero no se ve el cursor

LCD_DISP_ON_CURSOR mediante esta opción se enciende la pantalla y se ve el cursor

LCD_DISP_ON_CURSOR_BLINK mediante esta opción se enciende la pantalla y el


cursor parpadea

Para el ejemplo se usará la segunda opción por lo que para iniciar la pantalla LCD será
como sigue

lcd_init(LCD_DISP_ON);//lcd encendio cursor no visible

lcd_gotoxy(columna,fila); mediante esta función se ubica el cursor en la posición donde se


empezará a imprimir los caracteres en la pantalla LCD, la pantalla LCD será de 2×16 esto
es de 2 filas y 16 columnas, en esta función tanto las filas como las columnas comienzan
en 0, por ejemplo la fila 1 será 0 y la fila 2 será 1, lo mismo para las columnas, la columna
1 será 0, la columna 2 será 1, la columna 3 será 2 y así hasta la columna 16 que será 15,
por ejemplo para ubicar el cursor en la primera fila y en la columna 5 sería así
lcd_gotoxy(4,0), si se quiere que el cursor se ubique en la segunda fila y la columna 3 sería
así lcd_gotoxy(2,1).

lcd_clrscr(); mediante esta función se borra o limpia la pantalla y el cursor se coloca en la


primera fila y primera columna.

lcd_puts(“mensaje”); mediante esta función se imprimen mensajes en la pantalla LCD AVR.

Ejemplo1 mensajes de prueba:

Se utilizará el circuito conectando el LCD AVR al puerto D del ATmega88, con el orden de
los pines tal como se ha comentado lineas arriba y utilizando las funciones comentadas, se
imprimirá en la primera fila el mensaje “Hola Mundo” y en la segunda fila el mensaje “LCD
con AVR”.

El código realizado en el ATMEL STUDIO es el siguiente:


EIEE, 2018

Teclado Matricial 4x4

En la figura 1 se observamos un a teclado matricial 4x4, con cuatro filas (R1, R2, 3R3, R4)
y cuatro columnas (C1, C2 .C3, C4). Las filas corresponden a los pines 1 2 3 y4
respectivamente y las columnas a los pines 5 6 7 y 8 respectivamente.

Figura . Teclado matricial 4x4

Este tipo de teclado lo que hace es conectar una fila con una columna; entonces, si
presionamos la tecla 1, se conectará la fila 1 con la columna 1 que en nuestro caso
correspondería al pin 1 con el pin 5. Para detectar un carácter presionado, debemos
EIEE, 2018

realizar un ciclo que alimente las filas y reciba la señal a través de las columnas mediante
una configuración pull-up.

Ejemplo

Dentro de los archivos podemos encontrar un ejemplo “ejemplo_manual” usando un


microcontrolador Atmega328 y un teclado matricial, pero en este ejemplo solo se utilizó
una fila, la cual contiene los números 1, 2, 3. Que tienen como objetivo mostrar 3 mensajes
en pantalla
Nota: el Atmel usado es versión 7 y el Proteus versión 8.6, porlo tanto se deben usar estas versiones o mas
recientes

También podría gustarte