Escolar Documentos
Profissional Documentos
Cultura Documentos
Benemrita Universidad
Autnoma de Puebla
FACULTAD DE CIENCIAS DE LA
ELECTRNICA
PRACTICA 5
Cerradura electrnica
Nombre de la Asignatura:
DESARROLLO DE SISTEMAS BASADOS
EN MICROCOTROLADORES
Profesora:
Aldrin Barreto Flores
Equipo 6
30 de enero de 2014
Prctica 4
Cerradura electrnica implementada en un
Microcontrolador PIC16F877A
Introduccin
Los sistemas con microconroladores tiene como finalidad el proceso de datos. Estos se
obtienen de forma muy variada, puede ser de manera automtica por medio de sensores que
midan parmetros fsicos o de manera manual en cuyo caso tienen que ser suministrados
por los usuarios. Para este ltimo caso se puede usar pulsadores cuando la informacin es
muy simple, tal como se ha hecho hasta ahora, y mediante teclados de mayor o menor
complejidad como los teclados matriciales.
En muchos proyectos tambin es necesario visualizar informacin a travs de una pantalla
de bajo coste. La forma ms utilizada es mediante un display LCD.
Un proyecto el cual puede mostrar el funcionamiento de estos elementos es la realizacin
de una cerradura electrnica.
Objetivo
Implementar
Objetivo Especfico
* Estudiar el funcionamiento de un LCD
* Estudiar la operacin de un teclado
* Estudiar el funcionamiento de la EEPROM
* Estudiar el direccionamiento indirecto
* Estudiar la implementacin de una cerradura electrnica y describir su lgica de
funcionamiento
* Descripcin de cambios y adecuaciones necesarias a las libreras proporcionadas
* Implementar la cerradura electrnica en PIC16F877A
Desarrollo
Cerradura Electrnica: la salida se activa cuando una clave de varios dgitos introducida por
teclado sea correcta. El esquema se describe en la figura 1. Tiene una salida
"CerraduraSalida" que, cuando se habilita, activa durante unos segundos el electroimn de
la cerradura permitiendo la apertura de la puerta:
- Si (CerraduraSalida) = 1, la puerta se puede abrir.
- Si (CerraduraSalida) = 0, la puerta no se puede abrir.
Funcionamiento:
- En pantalla visualiza "Introduzca CLAVE". Segn se va escribiendo, visualiza asteriscos
'*'.
- Cuando termine de escribir la clave pueden darse dos posibilidades:
Si la clave es incorrecta la cerradura sigue inactivada, en pantalla aparece el
mensaje "Clave INCORRECTA" durante unos segundos y tiene que repetir de nuevo el
proceso.
Si la clave es correcta la cerradura se activa durante unos segundos y la puerta puede ser
abierta. En pantalla aparece: "Clave CORRECTA" (primera lnea) y "Abra la puerta"
(segunda lnea). Pasados unos segundos, se repite el proceso.
Figura 1
0x0C
LongitudClave (FinClaveSecreta-ClaveSecreta)
CerraduraSalida
PORTA,3
; ZONA DE CDIGOS
********************************************************************
ORG
goto
ORG
goto
0
Inicio
4
ServicioInterrupcion
Mensajes
addwf
PCL,F
MensajeTeclee
DT
"Teclee CLAVE:", 0x00
MensajeClaveCorrecta
DT
"Clave CORRECTA", 0x00
MensajeAbraPuerta
DT
"Abra la puerta", 0x00
MensajeClaveIncorrecta
DT
"Clave INCORRECTA", 0x00
;
LeeClaveSecreta
addwf
PCL,F
ClaveSecreta
DT
4h,5h,6h,0Eh
; Ejemplo de clave secreta.
DT
7h,8h
FinClaveSecreta
Inicio call
LCD_Inicializa
bsf
STATUS,RP0
bcf
CerraduraSalida
bcf
STATUS,RP0
call
Teclado_Inicializa
teclado.
call
InicializaTodo
registros.
movlw
b'10001000'
general.
movwf
INTCON
Principal
sleep
pulse alguna tecla.
goto
Principal
movlw
ClaveTecleada
RAM donde se ha
movwf
FSR
ComparaClaves
movf
INDF,W
en RAM.
movwf
GuardaClaveTecleada
despus.
movf
ContadorCaracteres,W
call
LeeClaveSecreta
secreta.
subwf
GuardaClaveTecleada,W
btfss
STATUS,Z
goto
ClaveIncorrecta
incorrecta.
incf
FSR,F
RAM.
incf
ContadorCaracteres,F
ROM.
movlw
LongitudClave
caracteres
subwf
ContadorCaracteres,W
secreta.
btfss
STATUS,C
caracteres?
goto
ComparaClaves
carcter.
ClaveCorrecta
Aparecen los mensajes
movlw
MensajeClaveCorrecta
apertura de la
call
LCD_Mensaje
call
LCD_Linea2
movlw
MensajeAbraPuerta
call
LCD_Mensaje
bsf
CerraduraSalida
segundos.
goto
Retardo
ClaveIncorrecta
movlw
MensajeClaveIncorrecta
call
LCD_Mensaje
Retardo
call
Retardo_2s
call
Retardo_1s
InicializaTodo
bcf
CerraduraSalida
clrf
ContadorCaracteres
movlw
ClaveTecleada
de la RAM
movwf
FSR
tecleada.
call
LCD_Borra
movlw
MensajeTeclee
introduzca la clave.
call
LCD_Mensaje
call
LCD_Linea2
la segunda lnea.
; Desactiva la cerradura.
; Inicializa este contador.
; FSR apunta a la primera direccin
; donde se va a almacenar la clave
; Borra la pantalla.
; Aparece el mensaje para que
; Los asteriscos se visualizan en
FinInterrupcion
call
Teclado_EsperaDejePulsar
bcf
INTCON,RBIF
retfie
INCLUDE
INCLUDE
INCLUDE
INCLUDE
<TECLADO.INC>
<LCD_4BIT.INC>
<LCD_MENS.INC>
<RETARDOS.INC>
Como se observa este programa se implementa en un PIC16F84A peo para nuestro caso
utilizaremos un PIC16F877A por lo que es necesario realizar algunas modificaciones.
Primero: Adaptar las directivas LIST, INCLUDE, CONFIG Y CBLOCK tal como se
muestra en el ejemplo.
Segundo: Poner al cero el bit RP1 del STATUS para acceder al Banco 0.
Tercero: Configurar como digitales las lneas del Puerto A cargando en el registro
ADCON1 el valor adecuado.
Cambiar el bus de datos de la librera LCD_4BIT.INC que est en el puerto B por el puerto
C. esto para evitar interferencia de comandos ya que estas mismas lneas son ocupadas por
el teclado.
Figura 2
Lo que comprende al teclado matricial se tiene que este est constituido por una matriz de
pulsadores dispuestos en filas y columnas ver figura 3.
Figura 3
Para detectar si hay alguna tecla pulsada se aplica a las filas un nivel bajo y tres altos. Si se
presiona alguna tecla en la fila por lo que se aplica el nivel bajo, ese nivel bajo aparecer en
la columna correspondiente con la que ha hecho el contacto. La subrutina TECLADI.INC
se encarga de toda esta operacin.
Las pantallas de cristal lquido o display LCD para mensajes tiene la capacidada para
mostrar cualquier carcter alfanumrico, permitiendo representar la informacin que genera
cualquier equipo electrnico. La pantalla consta de una matriz de caracteres (normalmente
de 5x7 puntos) distribuidos en una, dos, tres o cuatro lneas de 16 hasta 40 caracteres cada
lnea. El proceso de visualizacin es gobernar por un microcontrolador incorporado a la
pantalla.
En nuestro caso utilizaremos el modulo LCD 1602A el cual posee una zona de memoria
RAM llamada DDRAM donde se almacean los caracteres que se pueden representar. A
travs del bus de datos (DB7-DB0) podemos mandar distintos dados correspondientes a
cada carcter.
A continuacin se muestra una simulacin:
Figura 4
Instrumentacin
Material:
Equipo:
Fuente de alimentacin de CD
Multmetro
Computadora con el MPLAB instalado
Programador universal o de microcontroladores PIC
9. Resultados
Ay que mencionar que el teclado matricial que se compr viene con las filas y columnas de
forma invertida de como se muestra en el libro.
11. Conclusiones
El uso de otro microcontrolador para esta prctica implica diversos cambios debido a que cl
PIC16F877A posee mayor capacidad en cuanto a memoria como cantidad de pines ademas que
tiene otras caractersticas que el PIC16F84A no posee como las entradas analgicas del puerto a las
cuales se tuvieron que cambiar a digitales para el correcto funcionamiento.
Esta fue una buena prctica para conocer el funcionamiento de diversos dispositivos y como pueden
interactuar.
12. Referencias
[1] Enrique Palacios, Fernando Ramiro, Microcontrolador PIC16F84A desarrollo
de proyectos, 2004, Mxico, 1-119.