You are on page 1of 8

Instituto tecnolgico de Celaya

Ingeniera electrnica
Reporte Prctica de Laboratorio Microcontroladores

Practica_12
Manejo de teclado y pantalla LCD

Christian Ayala Garca


Carlos Giovanni Martnez Rocha

25-11-2014

Objetivo: Comprender e implementar un sistema que haga uso de un teclado matricial de


16 teclas y una pantalla de cristal lquido (LCD) paralela, el cual est basado en
microcontrolador PIC16F690.
Material y equipo utilizado: El equipo utilizado son las siguientes herramientas software:
MPLAB IDE versin 8.92, Proteus 8.
Procedimiento:
-De acuerdo a lo explicado en clase, el uso de un teclado matricial permite a un
microcontrolador contar con una interface de entrada eficiente. En nuestro caso contaremos
con un teclado de 4x4 teclas y el microcontrolador se encargar de detectar la posicin de la
tecla oprimida. A continuacin se presenta el programa visto en clase para realizar dicha
funcin. Crear un proyecto llamado practica12a e incluir como archivo fuente el programa:
include "P16F690.INC"
include "RETARDOS.INC"
__config (_WDT_OFF & _PWRTE_OFF &
_MCLRE_ON & _CP_OFF & _BOR_OFF &
_IESO_OFF & _FCMEN_OFF & _HS_OSC)
Tecl_TeclaOrden EQU 0x20
salida EQU 0x21
Tecl_UltimaTecla EQU d'15'
Teclado_Comprobacion EQU b'11110000'
ORG 0
Inicio call Teclado_Inicializa
Principal call Teclado_LeeOrdenTecla
btfss STATUS,C
goto Fin
;call Teclado_EsperaDejePulsar;
movwf salida
swapf salida,w
movwf PORTB
Fin goto Principal
Teclado_Inicializa bsf STATUS,RP1
bcf STATUS,RP0
clrf ANSEL
clrf ANSELH
bsf STATUS,RP0
bcf STATUS,RP1
clrf TRISB
movlw b'11110000'
movwf TRISC
bcf STATUS,RP0
;
;Nota: PORTC no tiene resistencias pull-up
;internas, por tanto ser necesario
;conectarlas externamente

return
; Subrutina "Teclado_LeeOrdenTecla"
; Lee el teclado, obteniendo el orden de la
; tecla pulsada.
; Salida: en (W) el nmero de orden de la
; tecla pulsada. Adems Carry se pone a "1"
; si se tiene oprimida una tecla a "0" si no.
Teclado_LeeOrdenTecla:
clrf Tecl_TeclaOrden
movlw b'11111110'
Tecl_ChequeaFila movwf PORTC
call Retardo_1ms
Tecl_Columna1 btfss PORTC,4
goto Tecl_GuardaValor
incf Tecl_TeclaOrden,F
Tecl_Columna2 btfss PORTC,5
goto Tecl_GuardaValor
incf Tecl_TeclaOrden,F
Tecl_Columna3 btfss PORTC,6
goto Tecl_GuardaValor
incf Tecl_TeclaOrden,F
Tecl_Columna4 btfss PORTC,7
goto Tecl_GuardaValor
incf Tecl_TeclaOrden,F
Tecl_TerminaColumnas
movlw Tecl_UltimaTecla
subwf Tecl_TeclaOrden,W
btfsc STATUS,C
goto Tecl_NoPulsada
bsf STATUS,C
rlf PORTC,W
goto Tecl_ChequeaFila
Tecl_NoPulsada bcf STATUS,C
goto Tecl_FinTecladoLee
Tecl_GuardaValor
movf Tecl_TeclaOrden,W
bsf STATUS,C
Tecl_FinTecladoLee return
Teclado_EsperaDejePulsar
movlw Teclado_Comprobacion
movwf PORTC
Teclado_SigueEsperando
call Retardo_20ms
movf PORTC,W
sublw Teclado_Comprobacion
btfss STATUS,Z
goto Teclado_SigueEsperando

return
END
-Analizar el programa y determinar su funcionamiento.
El programa detecta si se ha oprimido una tecla de un teclado de 4x4 y lo muestra en
binario en el puerto B mediante cuatro leds.
-Ensamblar el programa y simularlo en Proteus. Reportar al menos tres casos de simulacin
que demuestren el correcto funcionamiento predicho.

En este caso se presion la tecla nmero 1.

En este caso se presion la tecla nmero 6.

En este caso se presion la tecla nmero 8.


-Realizar la implementacin fsica del sistema y mostrarlo funcionado al profesor.
-Otro perifrico muy utilizado en sistemas basados en microcontroladores es la pantalla
LCD. A continuacin se presenta un programa que realiza el control de un LCD paralelo de
2x16, el cual funciona en modo de 4 bits. Crear el proyecto practica12b incluyendo dicho
programa:
INCLUDE "P16F690.INC"
__CONFIG _CP_OFF & _WDT_OFF &
_PWRTE_ON & _HS_OSC
CBLOCK 0x0C
LCD_ApuntaCaracter
LCD_ValorCaracter
ENDC
ORG 0
Inicio BCF STATUS,RP0 ;Bank 0
BCF STATUS,RP1 ;
CLRF PORTA ;Init PORTA
BSF STATUS,RP1 ;Bank 2
CLRF ANSEL ;digital I/O
BCF STATUS,RP1 ;
BCF STATUS,RP0 ;Bank 0
call LCD_Inicializa
clrf LCD_ApuntaCaracter
movlw .5
call LCD_PosicionLinea2
LCD_VisualizaOtroCaracter
movf LCD_ApuntaCaracter,W
call Mensajes
movwf LCD_ValorCaracter
movf LCD_ValorCaracter,F
btfsc STATUS,Z
goto Fin

LCD_NoUltimoCaracter
call LCD_Caracter
call LCD_UnEspacioBlanco
incf LCD_ApuntaCaracter,F ;
goto LCD_VisualizaOtroCaracter
Fin sleep
Mensajes addwf PCL,F
Mensaje0 DT "ITC", 0x00
INCLUDE <LCD_4BIT.INC>
INCLUDE <RETARDOS.INC>
END
-Analizar el programa y determinar su funcionamiento.
El programa configura el LCD para un correcto funcionamiento del mismo, carga la lnea
donde se quiere empezar a desplegar el mensaje, lee el mensaje letra por letra y la codifica
a cdigo ascii, este mensaje es el de ITC.
-Ensamblar el programa y simularlo en Proteus. Reportar la simulaicn.

-Modificar el programa (practica12c) de manera que el mensaje exhibido sea: Primer lnea:
Practica 12 y en segunda lnea Equipo No X. Reportar simulacin.

-Realizar la implementacin fsica de practica12c y mostrarla funcionando al profesor.

-Como tercera parte de la prctica ahora se tiene un sistema con ambos perifricos. De esta
manera lo que se quiere es exhibir en pantalla LCD la posicin de la tecla oprimida. Por
ejemplo si se oprimen las teclas con posiciones: C,0,1,2,3,4,y 5 se tendr lo siguiente:

-Combinar los programas anteriores para realizar la funcin solicitada.

-Realizar simulacin en PROTEUS reportando el ejemplo de oprimir teclas con posicin A,


B C y 0.

- Realizar la implementacin fsica y mostrarla al profesor.


Resumen Semanal.
Se analiz el funcionamiento de una pantalla de LCD. Tambin present el funcionamiento
de los convertidores analgicos/digitales y la configuracin para hacer uso de estos,
tambin se analiz del mdulo de generacin de ondas PWM del pic.
Conclusiones.
Se comprendi como controlar un teclado de 4x4, ubicando la posicin de cada una de las
teclas, tambin se realiz el desplegu de un mensaje en una LCD y se combinaron ambos
programas para que en la pantalla del LCD se muestre la posicin de la tecla oprimida.
Bibliografa:
hoja de datos del PIC16F690

You might also like