You are on page 1of 7

Laboratorio de Microprocesadores I

Docente: Ing. Roger Guachalla Narvez


xoroger@yahoo.es

PRACTICA 06: Teclado matricial 4x4 y Display de Cristal Lquido LCD


1. Objetivos:
Usar la librera de Mikrobasic: Keypad Library para realizar la interface entre el PIC16F877A, un teclado matricial de 4
filas por 4 columnas (keypad 4x4)
Usar la librera de Mikrobasic: LCD Library para conectar el PIC16F877A con una pantalla de cristal lquido ASCII de 2
filas por 16 columnas (LCD 2x16).
Revisar las funciones incorporadas en las libreras: EEPROM y SOUND
Revisar la conexin del PIC16F877A a un relay

2. TECLADO MATRICIAL
Un teclado (keypad) es un arreglo de pulsadores conectados por filas y columnas.

RUTINAS DE LA LIBRERIA KEYPAD


MikroBasic provee una librera para trabajar con un teclado matricial de 4x4. Las rutinas tambin pueden ser usadas para
teclados de 4x1, 4x2 o 4x3.

Keypad_Init: Inicializa el puerto del microcontrolador para trabajar con el teclado


Keypad_Key_Press: Funcin que devuelve el cdigo de tecla del keypad cuando la tecla es presionada. Si no hay tecla
presionada, la funcin devuelve Cero (0).

Keypad_Key_Click: Funcin que devuelve el cdigo de tecla del keypad cuando la tecla es presionada y liberada. Si no
hay tecla presionada, la funcin devuelve Cero (0).

Cdigos de Tecla devueltos por las funciones Keypad_Key_Press y Keypad_Key_Click:

1
2
3
4

5
6
7
8

9
10
11
12

Columnas

13
14
15
16

Filas

3. DISPLAY DE CRISTAL LQUIDO LCD


MikroBasic PRO for PIC provee la librera LCD Library para trabajar con pantallas de cristal lquido capaces de desplegar
caracteres ASCII alfanumricos.
En el modo de conexin de 4-bit, se requieren 6 lneas de conexin entre el microcontrolador y el LCD: 2 lneas de
Control (RS: Register Select, EN:Enable) y 4 lneas de Datos (D4,D5,D6,D7)
Para especificar la conexin fsica entre el microcontrolador PIC y el LCD, en el programa se dimensionan (crean)
variables que indican los bits de los puertos del PIC correspondientes a cada una de las 6 lneas de conexin del LCD.
Estos bits pueden modificarse de acuerdo a las necesidades del diseo.
Previo al uso del LCD, se debe inicializar (una sola vez) con la instruccin: LCD_Init()
Se pueden enviar mensajes al LCD indicando la fila (1 al 4), columna (1 al 16) y el texto (ASCII entre comillas) con la
instruccin: LCD_Out(fila,columna,Texto)
Si se requiere enviar Variables (byte, integer, float, etc.) al LCD, se deben utilizar funciones de conversin de la librera
de conversiones (Conversions Library). Por ejemplo para mostrar un dato tipo byte llamado Temperatura, se debe
crear una variable adicional de tipo cadena (string) que contenga el dato en formato ASCII :
dim Temperatura as byte
dim Temperatura_Txt as string[3]
main:
Temperatura=24
Asignar un valor a la variable
ByteToStr(Temperatura,Temperatura_Txt) Convertir la variable a texto
LCD_Out(1,1,Temperatura_Txt)
end.
Tambin se pueden enviar comandos al LCD para su control con la instruccin LCD_Cmd(Comando_LCD)
La siguiente tabla muestra los comandos LCD disponibles:

Comando_LCD
_LCD_FIRST_ROW
_LCD_SECOND_ROW
_LCD_THIRD_ROW
_LCD_FOURTH_ROW
_LCD_CLEAR
_LCD_RETURN_HOME
_LCD_CURSOR_OFF
_LCD_UNDERLINE_ON
_LCD_BLINK_CURSOR_ON
_LCD_MOVE_CURSOR_LEFT
_LCD_MOVE_CURSOR_RIGHT
_LCD_TURN_ON
_LCD_TURN_OFF
_LCD_SHIFT_LEFT
_LCD_SHIFT_RIGHT

Propsito
Mover cursor a la primera fila
Mover cursor a la segunda fila
Mover cursor a la tercera fila
Mover cursor a la cuarta fila
Limpiar pantalla
Retornar el cursor a la fila 1, columna 1
Apagar cursor
Activar cursor subrayado
Activar cursor parpadeante
Mover cursor a la izquierda
Mover cursor a la derecha
Encender la pantalla del LCD
Apagar la pantalla del LCD
Desplazar la pantalla a la izquierda
Desplazar la pantalla a la derecha

Pantalla de cristal lquido LCD de 2 filas y 16 columnas


Se utiliza para visualizar los diferentes mensajes en una pantalla LCD. Est basado en el microcontrolador HD44780
(fabricado por Hitachi) y puede visualizar mensajes en hasta 4 lneas (filas) con 16 caracteres (columnas) cada una. Puede
visualizar todas las letras de alfabeto, letras de alfabeto griego, signos de puntuacin, smbolos matemticos etc. Tambin
es posible visualizar smbolos creados por el usuario.

A lo largo de un lado de una placa impresa pequea del visualizador LCD se encuentran los pines que le permiten estar
conectado al microcontrolador.
Hay 14 pines en total marcados con nmeros (16 si hay retroiluminacin).
Su funcin de los pines se muestra en la tabla que sigue:

FUNCIN

NMERO

NOMBRE

ESTADO
LGICO

DESCRIPCIN

Tierra

Vss

0V

Alimentacin

Vdd

+5V

Contraste de
caracteres

Vee

0 a +5V
Conectar un potencimetro con un extremo en
+5V, el otro en 0V y el punto medio a Vee

RS

0
1

D0 D7 considerados como comandos


D0 D7 considerados como datos

R/W

0
1

Escribir los datos (del microcontrolador al LCD)


Leer los datos (del LCD al microcontrolador)

Transicin
de 1 a 0

Acceso al visualizador LCD deshabilitado


Funcionamiento normal
Datos/comandos se estn transmitiendo al LCD

D0

0/1

Bit 0 LSB

D1

0/1

Bit 1

D2

0/1

Bit 2

10

D3

0/1

Bit 3

11

D4

0/1

Bit 4

12

D5

0/1

Bit 5

13

D6

0/1

Bit 6

14

D7

0/1

Bit 7 MSB

Control de
funcionamiento

Datos / comandos

***

Luz de
Retroalimentacin
***

15
16

a (nodo)
k (Ctodo)

Conectar a +5V
Conectar a 0V
a travs de una resistencia de 330 Ohm

No todos los modelos de display LCD cuentan con luz de retroalimentacin

4. Librera EEPROM
La memoria EEPROM de datos resulta muy importante cuando se requiere almacenar datos que no se deben perder al
desconectar la energa del microcontrolador. El PIC16F877 cuenta con una memoria de datos de 256 bytes desde la
direccin $00 hasta $FF. Guardar y leer datos resulta muy sencillo usando la librera EEPROM en MikroBasic:

EEPROM_Read(Direccin)
Permite leer el contenido de una Direccin de memoria especificada.
Ejemplo. Dato=EEPROM_Read(8) 'Se guarda en la variable Dato, el valor leido de
'la memoria EEPROM en la direccin 8

EEPROM_Write(Direccin, Dato)
Permite escribir el Dato en una Direccin de memoria especificada.
Ejemplo. EEPROM_Write(5,3) 'Escribir el dato 5 en la direccin 3 de la EEPROM

5. Librera Sound
A travs de esta librera, mikroBasic facilita la generacin de sonidos de frecuencias predefinidas y con una duracin que
podemos especificar fcilmente. Esta librera cuenta con dos nicas rutinas:

Sound_Init(Puerto, Pin)
Se indica el Puerto y el Bit donde se conectar el parlante de electreto
Ejemplo. Sound_Init(PORTB,2)
'El parlante se conecta en el bit RB.2

Sound_Play(Frecuencia, Duracin)
Se indica la frecuencia del sonido a reproducir (en Hertz) y el tiempo de duracin (en milisegundos)
Ejemplo. Sound_Play(659, 250) 'Frecuencia=659Hz, duracion=250mseg

6. Conexin a Relay
Para el manejo de cargas de potencia, se requiere conectar un dispositivo conmutador Relay como indica la siguiente figura:

7. Ejemplo A: Reloj
Diagrama Esquemtico

Componentes Proteus:

Cdigo MikroBasic

8. Ejemplo B: Uso del Keypad y LCD


Diagrama Esquemtico

Componentes Proteus:

Cdigo MikroBasic

9. Procedimiento Experimental en Laboratorio


Usando el lenguaje MikroBasicPro for PIC realizar dos de los siguientes INCISOS. (Los incisos a realizar sern
asignados por el Docente o por el Auxiliar)

1ra Firma:
a) Temporizador programable: Al inicio mediante el teclado se ingresan los Segundos de temporizacin (entre 0 a 59)
(Este nmero se almacena en la memoria EEPROM y se visualiza al presionar la tecla con la etiqueta On/C),
posteriormente se despliega en el LCD el tiempo en el formato:
SS (Segundos)
Al llegar el tiempo a 00 (al cumplirse el tiempo de temporizacin) se activa un led indicador.
b) Conversor de Decimal Numrico a Decimal Literal: Mediante el teclado se ingresa un nmero decimal entre 0 a 99
(Este nmero se almacena en la memoria EEPROM y se visualiza al presionar la tecla con la etiqueta On/C),
posteriormente se despliega en el LCD el nmero ingresado en formato literal (Ejemplo: Si se ingresa 43 entonces se
muestra Cuarenta y tres en el display)
c) Teclado musical: Al presionar las teclas del teclado: 1, 2, 3, 4, 5, 6, 7, se escuchan las notas musicales bsicas
(DO, RE, MI, FA, SO, LA, SI) en un parlante conectado al bit 0 del puerto RD. Usar la librera Sound. La Duracin del
sonido est controlado por las siguientes teclas:
Etiqueta de Tecla

x
+
-

Duracin en segundos
0.25
0.5
1
2

El nombre de la nota musical y la duracin actual se muestran en la pantalla LCD.

2da Firma:
a) Conversor Decimal a Binario, Hexadecimal y ASCII: Mediante el teclado se ingresa un nmero decimal entre 0 a 255,
posteriormente se despliega en el LCD el nmero ingresado en formato Binario, Hexadecimal y en cdigo ASCII
(Ejemplo: Si se ingresa 65 entonces se muestra Bin: 01000001 Hex:41 Ascii:A en el display. (Si se ingresa el nmero
170 (Bin:10101010, Hex:AA,) entonce se activa una bombilla a travs de un Relay)
b) Cerradura electrnica con cdigo programable: Se ingresa un cdigo de apertura del candado de 3 dgitos. Si el cdigo
es correcto el LCD debe mostrar el mensaje ABIERTO y activar una bombilla a travs de un Relay, caso contrario el
mensaje ser CERRADO.
c)

10.
I.

II.
III.

Calculadora bsica de dos dgitos: Se ingresa un primer nmero de 2 dgitos (del 0 al 99), posteriormente se ingresa
una operacin a realizar: suma (+), resta (-), multiplicacin (*) o divisin (/), luego ingresa un segundo nmero de 2
dgitos, finalmente el LCD muestra el resultado de la operacin. (Tomar en cuenta la divisin entre cero. En este caso se
activa un bombilla a travs de un Relay)

Informe escrito
Firmas en la Cartula (0, 1 o 2) que avalen los procedimientos realizados en Laboratorio
Imprimir el Diagrama Esquemtico y el Cdigo Fuente en MikroBasic usados para realizar los incisos asignado para la
obtencin de la 1ra y 2da Firma del Trabajo en Laboratorio

TRABAJO DE INVESTIGACION:
Cada trabajo de investigacin debe incluir:
Resumen escrito a mano (de un mnimo de 3 pginas)
Fuentes de Informacin (direcciones web, bibliografa)
Copias impresas de la informacin adquirida a travs de las fuentes

Pantalla de Cristal Lquido LCD

IV.

Secuencia de pasos y valores requeridos para realizar una inicializacin (INIT) de la pantalla LCD
Explicar en detalle los tres bloques de memoria que posee el display LCD: Memoria DDRAM, CGRAM y
CGROM.
Mostrar en una tabla, el conjunto de caracteres ASCII que puede desplegar un display LCD
Display LCD grfico (GLCD): Caractersticas, modos de funcionamiento, protocolo de comunicacin
Conclusiones

You might also like