DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del...

68
UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD IZTAPALAPA DIVISIÓN DE CIENCIAS BÁSICA E INGENIERÍA LICENCIATURA EN INGENIERÍA ELECTRÓNICA DESARROLLO DE UNA CERRADURA ELECTRONICA ACCIONADA POR TECLADO. PRESENTAN: MIRELES HERNÁNDEZ ALEJANDRO. SOLIS CUEVA LUIS ANTONIO. ASESROR: MTRA. ALMA EDITH MARTÍNEZ LICONA. FIRMA DEL ASESOR: ______________________________ MÉXICO D.F., DICIEMBRE DE 2007

Transcript of DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del...

Page 1: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

UNIVERSIDAD AUTONOMA METROPOLITANA

UNIDAD IZTAPALAPA

DIVISIÓN DE CIENCIAS BÁSICA E INGENIERÍA

LICENCIATURA EN INGENIERÍA ELECTRÓNICA

DESARROLLO DE UNA CERRADURA ELECTRONICA ACCIONADA POR TECLADO.

PRESENTAN:

MIRELES HERNÁNDEZ ALEJANDRO. SOLIS CUEVA LUIS ANTONIO.

ASESROR: MTRA. ALMA EDITH MARTÍNEZ LICONA.

FIRMA DEL ASESOR: ______________________________

MÉXICO D.F., DICIEMBRE DE 2007

Page 2: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

- 2 -

1. INTRODUCCIÓN

Una cerradura electrónica consiste en llevar acabo una función específica para la cual

ha sido creada. La ventaja de una cerradura así es que el usuario de esta cerradura tendrá la

confiabilidad de que cualquier persona no podrá acceder a su habitación o a un armario,

caja, etc.

La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que

se encarga de las funciones de: almacenamiento de la clave de acceso y la comparación de

las claves introducidas con la anteriormente mencionada. Las claves son introducidas por

medio de un teclado de 12 teclas y visualizadas en una pantalla LCD. También cuenta con

dos teclas: aceptar y cambiar clave. Si clave se introduce incorrectamente tres veces una

alarma se activa durante unos segundos para avisar al usuario que tratan de acceder a su

espacio.

Page 3: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

INDICE

1. Planteamiento y delimitación………………………………………………………. 4

2. ¿Qué es un Microcontrolador?……………………………………………………... 6

2.1. Características…………………………………………………………………. 6

2.2. Esquema de un Microcontrolador……………………………………………... 7

2.3. Familias de Microcontroladores……………………………………………….. 7

2.4. Elección de un Microcontrolador Adecuado………………………………….. 8

3. Arquitectura RISC…………………………………………………………………. 9

3.1. Características…………………………………………………………………. 9

4. Microcontroladores PIC……………………………………………………………. 11

4.1. Juego de Instrucciones y entorno de Programación………………………….... 12

4.2. Tamaño de palabra…………………………………………………………….. 14

4.3. Características…………………………………………………………………. 14

4.4. La Programación del Microcontrolador……………………………………….. 15

5. Pantalla LCD de 16x2………………………………………………………………. 17

6. Teclado Matricial……………………………………………………………………. 18

7. Fuente de Alimentación……………………………………………………………... 19

8. Desarrollo del Proyecto…………………………………………………………….. 19

8.1. Investigación…………………………………………………………………… 19

8.2. Programación…………………………………………………………………... 20

8.3. Grabación y Simulación……………………………………………………….. 23

8.4. Circuito Eléctrico……………………………………………………………… 24

8.5. Diagramas..……………………………………………………………………. 24

8.6. Componentes del Proyecto….......…………………………………………….. 26

9. Construcción del Circuito…………………………………………………………... 27

10. Funcionamiento……………………………………...……………………………… 35

10.1. Clave de acceso………………………..……………...………………… 35

10.2. Cambio de la clave de acceso………………………..………………….. 36

11. Código Fuente del Programa……………………………………………………….. 37

12. Bibliografía………………………………………………………..………………... 68

- 3 -

Page 4: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 1. PLANEAMIENTO Y DELIMITACIÓN.

En primera instancia nuestro proyecto era realizar un control por voz, de tal forma

que comenzamos por investigar cuales eran los circuitos existentes para realizar un control

por voz, de los cuales uno fue el que nos llamo mas la atención (Figura 1), ya que este

circuito contenía una parte de teclado, es decir, que si el circuito no podía ser activado por

voz (en caso de alguna falla) podría activarse por medio de teclado. Ya habiendo

investigado acerca de este circuito nos dimos a la tarea de buscar cada uno de los

componentes, de los cuales se tuvo un grave problema con uno de ellos (el elemento

principal del circuito).

Figura 1. Circuito encontrado para realizar el control por voz.

- 4 -

Page 5: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

El chip HM2007 no se pudo conseguir ya que en México no existe tal integrado, de

tal forma que nos dimos a la tarea de buscarlo por Internet, el cual fue encontrado, pero el

problema que al hacer la compra, los vendedores pedían repetitivamente las aceptaciones

de compra, esto nos llevo tres meses, por lo cual optamos por darle otra perspectiva al

proyecto, la cual era parte del circuito anterior.

El nuevo proyecto constaba en realizar una cerradura electrónica activada por

teclado, de tal forma que se pudiera utilizar en alguna puerta, ya sea de una recamara o de

algún compartimiento que quisiéramos resguardar.

De nuevo se comenzó por investigar algunos circuitos de cerraduras que existen en el

mercado, para ver la forma en la cual operan y tratar de realizar nuestro propio diseño, de

tal modo de desarrollar el proyecto para que sea un producto que cumpla con las

expectativas del usuario.

Esta cerradura deberá de ser accesible para el usuario, tanto en el costo (que el precio

no sea muy elevado con respecto a las cerraduras que se encuentran en el mercado), como

en los materiales de fabricación (resistentes y adecuados).

- 5 -

Page 6: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 2. ¿QUE ES UN MICROCONTROLADOR?

Un microcontrolador es un circuito integrado o chip que incluye en su interior las

tres unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir,

se trata de un computador completo en un solo circuito integrado.

2.1 CARACTERISTICAS

Son diseñados para disminuir el coste económico y el consumo de energía de un

sistema en particular. Por eso el tamaño de la CPU, la cantidad de memoria y los periféricos

incluidos dependerán de la aplicación. El control de un electrodoméstico sencillo como una

batidora, utilizará un procesador muy pequeño (4 u 8 bit) por que sustituirá a un autómata

finito. En cambio un reproductor de música y/o vídeo digital (mp3 o mp4) requerirá de un

procesador de 32 bit o de 64 bit y de uno o más Códec de señal digital (audio y/o vídeo). El

control de un sistema de frenos ABS (Antilock Brake System) se basa normalmente en un

microcontrolador de 16 bit, al igual que el sistema de control electrónico del motor en un

automóvil.

Los microcontroladores representan la inmensa mayoría de los chips de computadoras

vendidos, sobre un 50% son controladores "simples" y el restante corresponde a DSPs más

especializados. Mientras se pueden tener uno o dos microprocesadores de propósito general

en casa, usted tiene distribuidos seguramente entre los electrodomésticos de su hogar una o

dos docenas de microcontroladores. Pueden encontrarse en casi cualquier dispositivo

electrónico como automóviles, lavadoras, hornos microondas, teléfonos, etc.

Un microcontrolador difiere de una CPU normal, debido a que es más fácil convertirla

en una computadora en funcionamiento, con un mínimo de chips externos de apoyo. La

idea es que el chip se coloque en el dispositivo, enganchado a la fuente de energía y de

información que necesite, y eso es todo. Un microprocesador tradicional no le permitirá

hacer esto, ya que espera que todas estas tareas sean manejadas por otros chips. Hay que

agregarle los módulos de entrada/salida (puertos) y la memoria para almacenamiento de

información.

- 6 -

Page 7: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

2.2 ESQUEMA DE UN MICROCONTROLADOR

2.3 FAMILIAS DE CON

TROLADORES.

os microcontroladores más comunes en uso se muestran a continuación (Tabla 1):

TABLA 1. Microcontroladores más comunes.

Figura 2. Esquema del microcontrolador.

L

Empresa 8 bits 12 bits 14 bits 16 bits 32 bits 64 bits Atmel AVR

Freescale (antes Motorola)

68HC05, 68HC08,

68HC11, HCS08x x 68HC12,

68HC16

683xx, 68HCS12, 68HCSX12

x

Intel

MCS-48 (familia 8048)

MCS51 (familia 8051)

x x MCS96, MXS296 x x

8xC251

National Semicon x ductor COP8 x x X x

Microchip Fam xx 1 de 14 bits (PIC16F87X)

1ilia 10f2Familia Familia 12Fxx,

16Cxx y xx 18Cxx y 2Cxx de 12 bits

16F 8Fxx de 16 bits

x x

Observación: Algunas arquitecturas de microcontrolador están disponibles por tal cantidad de vendedores y en tantas variedades, que podrían tener, con total corrección, su propia categoría. Entre ellos encontramos, principalmente, las variantes de 8051 y Z80.

- 7 -

Page 8: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

2.4 ELECCIÓN DE UN MICROCONTROLADOR PARA EL PROYECTO.

Para ele de microcontrolador a utilizar nos basam iguientes

puntos:

• Microcontroladores de uso más común.

• Mas utilizados en el ámbito laboral.

• Mayor información en libros y en internet para la investigación.

Más económicos.

• De mayor acceso a tiendas.

ase a s ladores IC, los cual

tienen una arquitectura RISC.

3. A

junto de Instrucciones Reducido. Es un tipo de microprocesador con las siguientes

caracterís a

ero de

2. Solo las instrucciones de carga y almacenamiento acceden a la memoria por

Además estos procesadores suelen disponer de muchos registros de propósito general.

quinas con esta arquitectura es posibilitar la segmentación y

el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria. Las

máquinas RISC protago

PowerPC

gir una familia os en los s

En b esto decidimo que lo mejor sería utilizar microcontro P es

RQUITECTURA RISC.

La Arquitectura RISC (del inglés Reduced Instruction Set Computer), Computadora

con Con

tic s fundamentales:

1. Instrucciones de tamaños fijos y presentados en un reducido núm

formatos.

datos.

El objetivo de diseñar má

nizan la tendencia actual de construcción de microprocesadores.

, DEC Alpha, MIPS, ARM... son ejemplos de algunos de ellos.

- 8 -

Page 9: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

RISC s

conjuntos de instrucciones pequeños y simples que toman menor tiempo para ejecutarse. El

tipo de pr

en CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas

en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su

ejecu

era cada vez más

alta. Esto conllevó la aparición de numerosas técnicas para reducir el procesamiento dentro

del CPU, así como de reducir el número total de accesos a memoria.

res una flexibilidad considerable; así pueden, por ejemplo:

ue de otra manera no

serían utilizables

r el chip para aplicaciones de bajo poder o de tamaño

limitado.

e una filosofía de diseño de CPU para computadora que está a favor de

ocesador más comúnmente utilizado en equipos de escritorio, el x86, está basado

ción.

La idea fue inspirada por el hecho de que muchas de las características que eran

incluidas en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo

ignoradas por los programas que eran ejecutados en ellas. Además, la velocidad del

procesador en relación con la memoria de la computadora que accedía

3.1 CARACTERISTICAS.

En pocas palabras esto significa que para cualquier nivel de desempeño dado, un chip

RISC típicamente tendrá menos transistores dedicados a la lógica principal. Esto permite a

los diseñado

• Incrementar el tamaño del conjunto de registros

• Implementar medidas para aumentar el paralelismo interno

• Añadir cachés enormes

• Añadir otras funcionalidades, como E/S y relojes para minicontroladores

• Construir los chips en líneas de producción antiguas q

• No hacer nada, ofrece

- 9 -

Page 10: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

Las r los diseños RISC son:

e instrucciones (ejemplo: el código de operación se

al es

• egistros homogéneo, permitiendo que cualquier registro sea

xisten muchas formas de separar los ficheros de registro de entero y

coma flotante).

• Modos de direccionamiento simple con modos más complejos reemplazados

por secuencias de instrucciones aritméticas simples.

• Algunos tipos de datos soportados en el hardware (por ejemplo, algunas

s

instrucciones no se encuentran en una máquina RISC).

Los di

memoria H tos están

conceptu m

se encuentr

procesador

mientras un pecial de sincronización es utilizada). Por otra parte, esto

permite e

ocasiones m

ca acterísticas que generalmente son encontradas en

• Codificación uniforme d

encuentra siempre en la misma posición de bit en cada instrucción, la cu

siempre una palabra), lo que permite una decodificación más rápida.

Un conjunto de r

utilizado en cualquier contexto y así simplificar el diseño del compilador

(aunque e

máquinas CISC tiene instrucciones para tratar con tipos byte, cadena; tale

seños RISC también prefieren utilizar como característica un modelo de

arvard, donde los conjuntos de instrucciones y los conjuntos de da

al ente separados; esto significa que el modificar las direcciones donde el código

a pudiera no tener efecto alguno en las instrucciones ejecutadas por el

(porque la CPU tiene separada la instrucción y el cache de datos, al menos

a instrucción es

qu ambos caches sean accedidos separadamente, lo que puede en algunas

ejorar el rendimiento.

- 10 -

Page 11: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 4. MICROCONTROLADORES PIC.

Los “PIC” son una familia de microcontroladores tipo RISC fabricados por Microchip

Technology Inc., originalmente desarrollado por la división de microelectrónica de General

Instruments (Figura 3).

El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro,

aunque generalmente se utiliza como Peripheral Interface Controller (Controlador de

Interfaz Periférico).

El PIC original se diseñó para ser usado con la nueva UCP (Unidad Central de

Procesos) de 16 bits CP16000. Siendo en general una buena UCP, ésta tenía malas

prestaciones de E/S, y el PIC de 8 bits se desarrolló en 1975 para mejorar el rendimiento

del sistema quitando peso de E/S a la UCP. El PIC utilizaba micro-código simple

almacenado en ROM (Read Only Memory) para realizar estas tareas; y aunque el término

no se usaba por aquel entonces, se trata de un diseño RISC que ejecuta una instrucción cada

4 ciclos del oscilador.

Figura 3. Primeros PIC’s desarrollados por Microchip Technology Inc.

- 11 -

Page 12: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

En 1985, dicha división de microelectrónica de General Instruments se convirtió en

una filial y el nuevo propietario canceló casi todos los desarrollos, que para esas fechas la

yoría estaban obsoletos. El PIC, sin embargo, se mejoró con EPROM para conseguir un

lador de canal programable. Hoy en día multitud de PIC’s vienen con vario

periféricos incluidos (módulos de comunicación serie, UART’s, núcleos de control de

motores, etc.) y con memoria de programa desde 512 a 32.000 palabras (una palabra

corresponde a una instrucción en ensamblador, y puede ser 12, 14 o 16 bits, dependiendo de

amilia específica de PICmicro).

4.1 JUEGO DE INSTRUCCIONES Y ENTORNO DE PROGRAMACIÓN.

El PIC usa un juego de instrucciones tipo RISC, cuyo número puede variar desde 35

para PIC’s de gama baja a 70 para los de gama alta. Las instrucciones se clasifican en

que realizan op

ma

contro s

la f

tre las

mulador y una

posición de memoria, instrucciones de condicionamiento y de salto/retorno,

impl

software y un ensamblador. Otras empresas desarrollan compiladores

C y

otra herramienta libre que permite simular diversos dispositivos

hard

eraciones entre el acumulador y una constante, entre el acu

ementación de interrupciones y una para pasar a modo de bajo consumo llamada sleep.

Microchip proporciona un entorno de desarrollo freeware llamado MPLAB que

incluye un simulador

BASIC. Microchip también vende compiladores para los PIC’s de gama alta ("C18"

para la serie F18 y "C30" para los dsPIC’s) y se puede descargar una edición para

estudiantes del C18 que inhabilita algunas opciones después de un tiempo de evaluación.

Para Pascal existe un compilador de código abierto, JAL, lo mismo que PicForth para

el lenguaje Forth. GPUTILS es una colección de herramientas distribuidas bajo licencia

GNU que incluye ensamblador y enlazador, y funciona en Linux, MacOS y Microsoft

Windows. GPSIM es

ware conectados al PIC.

- 12 -

Page 13: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

Para el desarrollo de este proyecto utilizamos el entorno de programación de MPLAB

IDE (Figura 4).

Figura 4. Utilización de MPLAB IDE como entorno de programación.

- 13 -

Page 14: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

4.2 TAMAÑO DE PALABRA.

El tamaño de palabra de los microcontroladores PIC es fuente de muchas confusiones.

Todos los PIC’s (excepto los dsPIC) manejan datos en trozos de 8 bits, con lo que se

deberían llamar microcontroladores de 8 bits. Pero a diferencia de la mayoría de UCP’s, el

PIC usa arquitectura Harvard, por lo que el tamaño de las instrucciones puede ser distinto

del de la palabra de datos. De hecho, las diferentes familias de PIC’s usan tamaños de

instrucción distintos, lo que hace difícil comparar el tamaño del código del PIC con el de

otros microcontroladores. Por ejemplo, un microcontrolador tiene 6144 bytes de memoria

de programa: para un PIC de 12 bits esto significa 4096 palabras y para uno de 16 bits,

3072 palabras.

4.3 CARACTERISTICAS.

Los PIC’s actuales vienen con una amplia gama de mejoras de hardware incorporadas:

• Núcleos de UCP de 8/16 bits con Arquitectura Harvard modificada

• Memoria Flash y ROM disponible desde 256 bytes a 256 kilobytes

• Puertos de E/S (típicamente 0 a 5,5 voltios)

• Temporizadores de 8/16 bits

• Tecnología Nanowatt para modos de control de energía

• Periféricos serie síncronos y asíncronos: USART, AUSART, EUSART

• Conversores analógico/digital de 10-12 bits

• Comparadores de tensión

• Módulos de captura y comparación PWM

• Controladores LCD

• Periférico MSSP para comunicaciones I²C, SPI, y I²S

• Memoria EEPROM interna con duración de hasta un millón de ciclos de

lectura/escritura

motores • Periféricos de control de

- 14 -

Page 15: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

• Soporte de interfaz USB

ador. La mayoría de PIC’s que Microchip distribuye hoy en día incorporan

ICSP (In Circuit Serial Programming, programación serie incorporada) o LVP (Low

Volt ión a bajo voltaje), lo que permite programar el PIC

directamente en el circuito destino. Para la ICSP se usan los pines RB6 y RB7 como reloj y

datos

voltios. Existen muchos programadores de PIC’s, desde los más simples que dejan al

software lo ificar el

dispositivo d todas las

funcionalid e os incluyen ellos mismos PIC’s

preprogram s órdenes al PIC que se desea programar. Uno

de los prog m del puerto RS232

como alim o el

microcontr d de programación puede ser el

ICprog, mu microcontroladores.

Para l do (PIC16F876) utilizamos las

siguientes r

• E (Herramienta Visual de simulación PIC)

• Soporte de controlador Ethernet

• Soporte de controlador CAN

• Soporte de controlador LIN

• Soporte de controlador Irda

4.4 LA PROGRAMACIÓN DEL MICROCONTROLADOR.

Para transferir el código de un ordenador al PIC normalmente se usa un dispositivo

llamado program

age Programming, programac

y el MCLR para activar el modo programación aplicando un voltaje de unos 11

s detalles de comunicaciones, a los más complejos, que pueden ver

a iversas tensiones de alimentación e implementan en hardware casi

ad s. Muchos de estos programadores complej

ados como interfaz para enviar la

ra adores más simples es el TE20, que utiliza la línea TX

entación y las líneas DTR y CTS para mandar o recibir datos cuand

ola or está en modo programación. El software

y común entre la gente que utiliza este tipo de

a programación del microcontrolador elegi

her amientas:

• MPLAP IDE (Herramienta para Depurar y Simular el código del Programa)

PIC Simulator ID

• Grabador PIC USB

- 15 -

Page 16: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

Nosot tiliza una interfaz USB llamado “PICProg

USB” (Figura 5), el cual utiliza un software especial para transferir el código en

hexadecim

ros utilizamos un programador que u

al.

Figura 5. Programa PICProg USB utilizado para la grabación del PIC.

- 16 -

Page 17: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 5. PA

alla LCD se trata de un visualizador alfanumérico (solo se pueden ver

núm

que es cap s

ostrar

l módulo LCD lleva integrado a sus circuitos una memoria ROM (U1) conocida

como e caracteres” que habrá de generar los patrones de la matriz de puntos (5

x 7 ó 7 x 9) que forman los caracteres en la pantalla. También tiene una RAM interna (U2)

que almacena los caracteres y los exhibe en el módulo LCD. Esta LCD consta de 16 pines

para su conexión (Figura 6): usa 11 líneas de comunicación (3 de control y 8 de datos), 2 de

alim ad del texto y 2 para la luz de fondo.

NTALLA LCD DE 16x2.

Una pant

eros, letras y/o algún otro carácter). Este tipo de LCD se define por el número de líneas

az de mostrar a la vez y el número de caracteres por líneas. Un LCD de 8 X 1 e

un LCD de 8 caracteres y 1 línea. Los más comunes son de 8, 16, 20, 24 y 40 caracteres y

de 1, 2 y 4 líneas. El LCD es actualmente el circuito más barato y confiable para m

datos en un proceso de monitoreo y control. Su interfaz con los controladores se realiza a

través de un conector de 14 pines, cuya configuración es respetada por la mayoría de los

fabricantes.

E

“generador d

entación, 1 para regular la intensid

Figura 6. Conector de la pantalla LCD.

C O N T R O L D A T O S

LUZ DE FONDO

ALIMENTACION E INTENSIDAD

- 17 -

Page 18: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

Algunas de sus especificaciones aparecen a continuación:

O MATRICIAL 4x3.

• Dimensiones de la pantalla: 65mm x 14mm.

• Dimensiones de la unidad: 82mm x 37mm.

• Alimentación de +5V DC.

• Soporta interfaces de 4 u 8 bits.

• Luz de fondo azul con texto en negro.

• 16 caracteres x 2 líneas.

6. TECLAD

Este teclado matricial es un excelente dispositivo de entrada cuando se trabaja con

PIC’s. La forma tradicional de conectarlos es utilizando 7 pines, 3 de columnas y 4 de filas.

El nombre de este tipo de teclado proviene de su interconexión entre las columnas y las

filas (Figura 7), ya que esta conexión tiene la forma de una matriz. Existen teclados

matriciales de 4 x 4 y de 4 x 3 teclas.

Figura 7. Conexión de un teclado matricial 3 x 4.

- 18 -

Page 19: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 7. FU

La fuen te para un sistema, ya que de

ahí se toma l n o. Esta es un subsistema que

convierte la r de corriente eléctrica adecuado para nuestra

cerradura. Es continua, ya que nosotros queremos que

se mantenga se tendrán 2 valores de voltaje de

salida (12 y 5 o

uestra fuente consta de 4 etapas:

• Atenuación: Disminuye el voltaje y la corriente de corriente alterna (voltaje de

lineal (hasta este punto 12Vd.c.).

• Regulación: Su función es mantener y controlar el valor deseado a la carga

(5V

8. DESARROLLO DEL PROYECTO.

.1 INVESTIGACIÓN.

e comenzó por la investigación de cada uno de los 3 elementos principales de nuestro

proyecto (PIC, Pantalla LCD y el Teclado Matricial), de tal forma de saber cómo es su

funcionamiento y como es que se comportan durante su tiempo de empleo. Ya sabiendo

esto, se continúo con la investigación sobre cómo es que se podrían comunicar estos

dispositivos, lo cual fue sencillo de averiguar, ya que cada elemento consta con su propio

manual (llamados datasheet). Estos manuales contienen las especificaciones de trabajo con

las que se deben de operar los elem ón de voltaje se debe

de utilizar o como es que se deben de conectar estos elementos entre si, etc.

ENTE DE ALIMENTACIÓN.

te de alimentación es un dispositivo muy importan

a e ergía necesaria para la alimentación del mism

co riente alterna en otro tipo

te otro tipo de corriente será de tipo

en un solo valor, pero para nuestro caso

V lts).

N

128Va.c. a 12Va.c. y la corriente la disminuye a 1A).

• Rectificación: Se elimina la parte negativa de la señal de corriente alterna, esto

se logra utilizando un Rectificador de Onda Completa.

• Filtrado: Se suavizan los rizos de la señal saliente del rectificador, tratando de

logra un valor de voltaje

d.c. al circuito).

8

S

entos, es decir, cuanta alimentaci

- 19 -

Page 20: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

8.2 PROGRAMACIÓN.

La siguiente parte de nuestro proyecto fue la programación, es decir, la creación del

programa con el que funcionaria nuestra cerradura. El programa se realizo con la ayuda del

compilador MPLab. Este compilador nos ayudo a referenciar nuestros errores en el

programa y así corregirlos de tal forma que nuestra programación fuese la correcta. El

programa final quedo realizado en bloques (El código fuente de este programa se presenta

en la pagina 37).

Para la rápida comprensión del programa a continuación se describirán a grandes

rasgos los módulos involucrados en el código.

INICIO:

Este cuales trabajaran como

en

códig a el Display (LCD).

R n

PRINCI:

Este cipal del programa ya que da la bienvenida al usuario

desplegando en el Display el mensaje “INTRODUZCA CLAVE” y coloca el cursor

ara esperar a que ingresen el código de acceso,

cuando se requiere reiniciar en sistema se hace una llamada a este modulo.

modulo:

CLEARL

modulo inicializa los puertos del PIC definiendo

tradas y cuales como salidas, así como inicializar la EEPROM para almacenar el

o de acceso y realizar la llamada a la rutina que inicializ

uti as que utiliza este modulo:

INITLCD

modulo es el prin

en la línea inferior del Display p

Rutinas que utiliza este

SITUCU

ESCMEN

ECOD12, ECOD22, ECOD32, ECOD42:

Estos módulos extraen el código 1, código 2, código 3 y código 4, para

posteriormente verificar la clave compuesta por la unión de los cuatro códigos

coincida con la almacenada en la memoria.

Rutinas que utiliza este modulo:

SUELKEY

- 20 -

Page 21: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

ESPEKEY

INCOR

e despliega el mensaje de “CLAVE INCORRECTA” y se decrementa el

ESPEKEY

ESCMEN

CAMB

lmacene

Rutinas que utiliza este modulo:

CAMBIOC

WRITEL

FINCOD:

Compara la clave obtenida anteriormente con la clave almacenada en la memoria

EEPROM, en caso de ser igual activa el bit de apertura de la puerta, en caso

contrario s

numero de intentos.

Rutinas que utiliza este modulo:

CAMBIOC

LEECOD

INCOR

CLEARL

SITUCU

IOC:

Este modulo se utiliza para cambiar la clave de acceso, el cual para efectuar el

cambio pide introduzcas el código antiguo y a continuación la clave nueva dos

veces para confirmar que se introdujo correctamente y posteriormente se a

en le memoria EEPROM.

CLEARL

ESCMEN

SUELKEY

SITUCU

COGECOD

LEECOD

INCORE

INCOREC

- 21 -

Page 22: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

NOVERI

EEWRITE

NUEVACL:

Captura y v if e sea correcta.

EN

INCOREC:

Despliega m e error cuando la clave no tiene el tamaño de 4 dígitos, y

reinicia el s rementar los intentos.

Rutinas que utiliza este modulo:

ESCMEN

INCOR

ria este modulo despliega el mensaje de “CLAVE

l numero de intentos disponibles, si el numero de

intentos lle a o entonces activa la alarma.

Rutinas que utiliza este modulo:

er ica que la nueva clav

NOVERI:

Verifica que se introdujo bien la clave al realizar un cambio de esta

Rutinas que utiliza este modulo:

CLEARL

ESCM

SITUCU

DELAY

NUEVACL

el ensaje d

istema sin dec

CLEARL

SITUCU

E:

Cuando la clave que se introdujo tiene el tamaño adecuado pero no corresponde con

la almacenada en memo

INCORRECTA” y decrementa e

go su máxim

ALARMA

CLEARL

ESCMEN

SUELKEY

DELAY

- 22 -

Page 23: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 ALARMA:

Después de 3 intentos incorrectos se activa la alarma, una vez activada la alarma

por un tiempo definido y se reinicia el sistema.

OGE

acena el código almacenado para su posterior uso

EEWR

E en la localidad dada por el acumulador de la

memoria.

GETKEY:

Devuelve el valor pulsado en el teclado en código ASCCI.

HAYTECL:

Identifica l il encuentra la tecla presionada.

ESCME

l que se encuentra apuntando el acumulador.

WAITLCD:

Espera a que acepte un comando el LCD

INITLCD:

ía los comandos necesarios para inicializar de forma correcta el Display.

CLEAR

WRITE

8.3 GRABAC ACIÓN.

Ya teniendo listo el programa nos dimos a la tarea de buscar un grabador de PIC’s, el

cual fue una herra ara nuestro proyecto. Este grabador fue adquirido por

Internet.

suena

C COD:

Alm

ITE:

Escribe el valor en CODWRIT

a f a en la que se

SUELKEY:

Subrutina que espera a que se suelte la tecla.

N:

Escribe el mensaje en el display a

Env

L:

Borra el contenido en pantalla del Display.

L:

Escribe en pantalla el carácter almacenado en el acumulador

IÓN Y SIMUL

mienta necesaria p

- 23 -

Page 24: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

Con la posesión de nuestro grabador nos vino consigo el programa grabador y

simulad

fue log omunicación entre el PIC y el

correcta y que las funciones fueran las adecuadas. Una vez acabado con este

e este mismo programa y del

8.4 CIRCUITO ELECTRICO.

U arios, la realización del

funcionamiento y las simulaciones necesarias, se comenzó por realizar el

ircuito sto con la ayuda de un

simulación de circuitos electrónicos (ORCAD PSpice) y de Paint, ya que

el ORCAD y se tuvieron que realizar

o programa (Paint).

GRAMAS.

uito que realizamos para la elaboración de nuestro proyecto se muestra en el

uito que se realizo para obtener nuestra fuente de alimentación fue el que se

or de PIC (PIC Simulador IDE), el cual nos ayudo a averiguar si nuestro programa

rado con éxito, es decir, con el se comprobaría que la c

LCD fuera la

proceso nos dimos a la tarea de grabar el PIC con la ayuda d

grabador.

na vez hecha toda la investigación, los estudios neces

programa de

c que se adecuaría a nuestras necesidades del proyecto, e

programa de

había algunos componentes que no se encontraron en

en este ultim

8.5 DIA

El circ

Diagrama 1.

El circ

muestra en el Diagrama 2

.

- 24 -

Page 25: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

- 25 -

Diagrama 2. Circuito de fuente de alimentación de 2 salidas (12 y 5 Volts).

Diagrama 1. Circuito de cerradura electrónica accionada por teclado.

Page 26: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

- 26 -

8.6 COMPONENTES DEL PROYECTO.

Los componentes que se utilizaron para la construcción del proyecto fueron los

siguientes:

Fuente de Alimentación:

• 1 Transformador de 12V a 1A.

• 1 Puente de diodos rectificador a 2ª (RS203L).

• 1 Capacitor de 1000µF a 50V.

• 1 Regulador de voltaje positivo a 5V (L7805CV).

• 2 Conectores plug invertido de 1.3mm.

• Cable.

• 1 Gabinete para eliminador.

Circuito de la Cerradura.

• 1 PIC (16F8576).

• 1 Pantalla LCD 16x2.

• 1 Teclado Matricial 4x3.

• 1 Bocina de 8Ω de impedancia.

• 1 Cristal a 10 MHz.

• 1 Transistor para aplicación de switcheo (TIP31).

• 2 Capacitores de 22pF.

• 5 Resistencias de 10kΩ a 1/2W.

• 6 Resistencias de 1kΩ a 1/2W.

• 1 Resistencia de 470Ω a 1/2W.

• 1 Potenciómetro de 10kΩ.

• 2 LED’s (1 Verde y 1 Rojo).

• 2 switch’s tipo botón.

Page 27: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

• 2 Conectores plug de 1.3mm.

• Conectores header’s (Hembra y Macho).

Cable telefónico.

• 1 Gabinete de 8x14cm y 4cm de alto.

mentación de circuitos (Protoboard).

Pla s

0cm.

Grabación del PIC:

• 1 Grabador de PIC’s.

9. CONSTRUCCIÓN DEL CIRCUITO.

Se com ito en un protoboard para ver que todo funcionara a la

perfecció t cada uno de los elementos). El primer circuito que

se armo 1) ya que con ella se suministra el voltaje

necesario pa uestra cerradura. Se probo con un led que esta etapa

estuviera n ltímetro que los niveles de

voltaje a la s .

• Cable plano de 24 hilos.

• 1 Tablilla de Experi

ca del Circuito:

• Placa fenolica de 1 cara de 20x1

• 1 Hoja de papel couché.

enzó por armar el circu

n ( anto las conexiones como

fue la fuente de alimentación (Foto

ra la operación de n

fu cionando a la perfección y se midió con un mu

alida fueran los correctos

- 27 -

Page 28: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

da uno de los elementos con los cuales tenia que se

conectado, de tal forma que se nos simplificase la conexión del circuito. Esto se tuvo que

hacer un par de ocasiones, ya que al tener tantos cables por conectar nos confundíamos y

conectábamos cables en donde no iban, esto provocaba que al momento de alimentar el

circuito provocaran corto o simplemente no funcionaba el circuito.

Ya teniendo nuestra fuente, se prosiguió al armado de la parte central del circuito,

empezando por la parte central (Foto 2), es decir, comenzando por poner el PIC al centro

del protoboard y conectado el PIC a ca

Foto 1. Fuente de alimentación de dos salidas (12 y 5 Volts) para el circuito de la cerradura.

- 28 -

Page 29: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

Ya conectados todos los cables al PIC, se conectaron tanto el lcd como el teclado en

los lugares indicados (poniendo cada cable en el pin adecuado del lcd y del teclado). De tal

forma que todo el quedara en un solo

circuito (Foto 3).

Foto 2. Conexión del PIC a cada uno de los elementos de la cerradura.

circuito de la cerradura y la fuente de alimentación

- 29 -

Page 30: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

A continuación se hicieron pruebas para ver que todas las funciones de la cerradura

funcionaran correctamente, es decir, se hicieron pruebas con el teclado para observar que

todas las teclas funcionaran, que en el LCD aparecieran todos los textos correctamente

(Foto 4) y que los botones de aceptar y cambiar clave operaran a la perfección.

Foto 3. Presentación preliminar de la cerradura electrónica.

- 30 -

Page 31: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

Foto 4. Textos que aparecen en la pantalla LCD.

a teniendo funcionando nuestro circuito nos dimos a la tarea de desarrollar el circuito

impreso, es decir, la realización del circuito en una placa fenolica de cobre de una cara.

Este

e tuvieron que hacer 3 circuitos impresos: el circuito de la cerradura (Figura 8.a), las

pista de aceptar y cambiar clave (Figura 8.b) y el circuito de la fuente de

alim n (circuito elaborado a mano por se muy pequeña su placa).

Y

procedimiento comenzó por la elaboración de las pistas y los nodos de cada uno de

nuestros elementos, lo cual se llevo a cabo con la ayuda del programa de dibujo Paint ya

que otros programas relacionados a la elaboración de circuitos impresos no contaban con

algunos elementos, es por eso que tuvimos que realizar nuestro propio diseño.

S

s para los botones

entació

- 31 -

Page 32: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

Ya teniendo terminados los circuitos impresos en un archivo, lo que prosiguió fue

imprimirlos (con impresora láser) en la hoja de papel couché. Este tipo de papel es como

plastificado haciendo así que el toner no se adhiera por completo, de tal forma que al

planchar el circuito que se imprimió en esta hoja, este quede en la placa de cobre. Teniendo

ya el circuito en la placa, esta fue sumergida en cloruro férrico (FeCl3 -solución para grabar

circuitos impresos) para que las partes donde no se encontraba toner fueran disueltas y solo

quedaran las pistas y los nodos

Figura 8. Circuitos impresos a) Circuito principal de la cerradura. b) Pistas para botones de aceptar y cambiar.

del circuito (Foto 5).

a)

b)

Foto 5. Placa después del ser sumergida en la solución de FeCl3.

- 32 -

Page 33: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

- 33 -

Una vez que se obtuvo la placa con nuestro circuito se le hicieron los agujeros en los

nodos del circuito (con la ayuda del taladro y una broca muy pequeña y delgada). Después

se soldaron todos y cada uno de los componentes del circuito, de tal forma que la placa

quedara ya con los componentes fijos (Foto 6).

os unidos, se continúo por realizar los

cables de conexión entre la placa y el LCD, así como también para el teclado y la placa de

los dos botones. Estos cables de unión (Foto 7) fueron hechos con cable plano con la

utilización de conectores header’s (hembra) a los extremos.

Obtenida ya nuestra placa con todos los element

Foto 6. Placa con los componentes soldados.

Page 34: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

Por edara

listo nu

alidad,

ultimo se adapto la placa, el LCD y los demás elementos al gabinete para qu

estro prototipo, para estos se le tuvieron que hacer algunos cortes al gabinete para

que su diseño fuera el mas adecuado. El producto final de nuestro proyecto, una cerradura

electrónica activada por teclado con alarma y display (Foto 8), funciono a la norm

pasando todas las pruebas que se realizaron con la presentación preliminar del proyecto.

Foto 7. Cable plano para la conexión del teclado (izq.). Cable plano para la conexión del LCD (der.).

Foto 8. Prototipo de la Cerradura Electrónica activa por teclado con alarma y display.

- 34 -

Page 35: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 10. FUNCI

1. Inicialmente la clave es la 0000.

2. La calve se almacena en la memoria EEPROM de datos del PIC, por lo que,

clave.

ONAMIENTO.

10.1 CLAVE DE ACCESO.

cuando se desconecte la alimentación del circuito se conserva la

3. Consta de 4 dígitos que pueden ser: números (del 0 al 9), asteriscos (*) y

almohadillas (#). A diferencia de los códigos tradicionales que solo usan los

números. Esto proporciona 20736 combinaciones posibles frente a las 10000

que se consiguen solo con números, lo que se traduce en mayor seguridad.

4. En la pantalla del LCD se muestra el mensaje "INTRODUZCA CLAVE"

entonces se introduce la clave de acceso (inicialmente será 0000) y pulsas la

tecla ACEPTAR para que se abra la puerta.

5. Cuando el código introducido es incorrecto se muestra el mensaje "CLAVE

INCORRECTA" y la puerta no se abre.

6. Cuando se acumulan tres fallos al introducir la clave suena una sirena por un

altavoz durante unos 15 segundos, después se puede volver a probar.

- 35 -

Page 36: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

10.2 CAMBIO DE LA CLAVE DE ACCESO.

1. Pulsar la tecla CAMBIAR CLAVE, entonces aparece durante unos instantes

DE CLAVE"

la que se acceso hasta ese momento

(inicialmente la 0000) con el mensaje "CLAVE ANTIGUA". Tecleas la

3. Si la clave es correcta te pide la "NUEVA CLAVE". Tecleas la nueva clave

4.

a

clave y pulsas ACEPTAR. Si te equivocas te avisa y vuelves a introducir la

5. lave y se muestra el mensaje

"CLAVE CAMBIADA" durante unos segundos.

el mensaje "CAMBIO

2. Después te pide la clave con

clave y pulsas ACEPTAR.

que deseas guardar y pulsas ACEPTAR.

A continuación te pide que repitas la nueva clave para verificarla (con esto

aparecerá el mensaje "VERIFIQUE CLAVE"), tecleas de nuevo la mism

nueva clave.

Si la verificación es correcta se cambia la c

- 36 -

Page 37: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 11. C ;Confi ación

;---------- ------

RADIX HEX ;Sistema de numeración Hexadecimal predeterminada

internos

;Palabra

__config WRT_ENABLE_OFF & _CPD_OFF & _LVP_OFF &

BODEN_ON & _PWRTE_OFF & _WDT_OFF & _HS_OSC

;--------------------- ------------------------------------------------

; Registros Reserv

----------------------------------------------------------------------------------------------------------------------------------

PCL

STATUS

PORTA

DATO ;PUERTO B

KEYB ;Puerto C

TCON EQU 0BH

PIR2

PIE2

DECON1 EQU 9FH ; Análogo Digital Configuración

EDATA EQU 10CH

EADR EQU 10DH

ECON1 EQU 18CH

ECON2 EQU 18DH

----------------------------------------------------------------------------------------------------------------------------------

egistros de Uso General

----------------------------------------------------------------------------------------------------------------------------------

_RELE EQU 20H ;CONTROLA EL TIEMPO DE APERTURA DE LA PUERTA

UNTAB EQU 20H

TENTO EQU 21H ;Numero de intentos antes de que se accione la alarma

ECLA EQU 22H ; Almacena la tecla presionada

UENTA1 EQU 23H

UENTA2 EQU 24H

ODIGO FUENTE.

gur

----- --------------------------------------------------------------------------------------------------------------

LIST P=16F876 ;Procesador a usar

INCLUDE P16F876.INC ;Librería incluida, contiene definiciones de registros

de Configuración

_CP_OFF & _DEBUG_OFF & _

_

--------------------------------------------------------------

ados

;-

EQU 02H

EQU 03H

EQU 05H ;Puerto A

EQU 06H

EQU 07H

IN

EQU 0DH

EQU 8DH

A

E

E

E

E

;-

; R

;-

T

P

IN

T

C

C

- 37 -

Page 38: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 CUENTA3 EQU 25H

COD1 EQU 26H ; Almacena la primera tecla numérica presionada

27H ; Almacena la segunda tecla numérica presionada

presionada

A H

EQU 2CH ; Auxiliar para comprobar código

para comprobar código

OD4A

------- ----------------------------------------------------------------------

s

----------------------------------------------------------------------------------

5H,2 ; Activa y desactiva el LCD

;

05H,3 ;

; Apertura y cierre de la puerta

COD2 EQU

COD3 EQU 28H ; Almacena la tercera tecla numérica presionada

COD4 EQU 29H ; Almacena la cuarta tecla numérica

CUENTA4 EQU 2AH

COD1 EQU 2B ; Auxiliar para comprobar código

COD2A

COD3A EQU 2DH ; Auxiliar

C EQU 2EH ; Auxiliar para comprobar código

CODWRITE EQU 2FH ; Auxiliar para escribir código en EEPROM

;-----------------------------------------------------------------------------------------------------------------------------------

;

;-----------------------------------------------------------------------------------------------------------------------------------

F EQU 1

W EQU 0

;------------- -----------------------------------------

; Definicione

;-------------------------------------------------

#DEFINE EN 0

#DEFINE RW 05H,1 ;

#DEFINE RS 05H,0

#DEFINE ALA

#DEFINE PORTERO 05H,5

ORG 00H

GOTO INICIO

ORG 04H

BCF PIR2,4

RETFIE

- 38 -

Page 39: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 ;-----------------------------------------------------------------------------------------------------------------------------------

para e y

------- --- -- ----------------------------

l mensaje

------------------------------------------------------------------------------------

1 'Intro

--------- -- -- ------------------------------------------------

ETLW

W

RETLW 'T'

RETLW 'O'

RETLW 'C'

----------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------

TLW '

TLW

RETLW 'V'

RETLW 'E'

----------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------

EN_2

RETLW 'P'

RETLW 'U'

; Mensajes l displa

;------------- -------- -------- --------------------------------------------------------------

TABLA

MOVWF PCL ; Hacemos apuntar el PCL a la dirección de inicio de

;-----------------------------------------------

;Mensaje duzca'

;----------- --------- -------- ------------------------------------------

MEN_1

R 'I'

RETL 'N'

RETLW 'R'

RETLW 'D'

RETLW 'U'

RETLW 'Z'

RETLW 'A'

;-------------------

;Mensaje 5 'Clave'

;-

MEN_5

RETLW ' '

RETLW 'C'

RE 'L

RE 'A'

RETLW 00H

;-------------------------------------

;Mensaje 2 'Puede Pasar'

;-------------------------------

M

- 39 -

Page 40: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 RETLW 'E'

RETLW 'D'

ETLW ' '

'S'

ETLW 'R'

------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

' '

ETLW 'N'

RETLW 'A'

4 'Cambio de'

--------------------------------------------------------------------------------------

RETLW 'E'

R

RETLW 'P'

RETLW 'A'

RETLW

RETLW 'A'

R

RETLW 00H

;-----------------------------------------------

;Mensaje 3 'Clave Incorrecta'

;-----------------------------------------------

MEN_3

RETLW 'C'

RETLW 'L'

RETLW 'A'

RETLW 'V'

RETLW 'E'

RETLW

RETLW 'I'

R

RETLW 'C'

RETLW 'O'

RETLW 'R'

RETLW 'R'

RETLW 'E'

RETLW 'C'

RETLW 'T'

RETLW 00H

;-----------------------------------------------------------------------------------------------------------------------------------

;Mensaje

;---------------------------------------------

MEN_4

- 40 -

Page 41: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 RETLW 'C'

RETLW 'A'

RETLW 'M'

RETLW 'B'

RETLW 'I'

RETLW 'O'

RETLW ' '

RETLW 'D'

RETLW 'E'

RETLW 00H

;-----------------------------------------------------------------------------------------------------------------------------------

;Mensaje 6 'Antigua'

;-----------------------------------------------------------------------------------------------------------------------------------

MEN_6

RETLW ' '

RETLW 'A'

RETLW 'N'

RETLW 'T'

RETLW 'I'

RETLW 'G'

RETLW 'U'

RETLW 'A'

RETLW 00H

;-----------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

RETLW 'V'

00H

;Mensaje 7 'Nueva'

;-----------------------------------------------

MEN_7

RETLW 'N'

RETLW 'U'

RETLW 'E'

RETLW 'A'

RETLW

- 41 -

Page 42: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 ;-----------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------

RETLW 'Q'

'E'

--------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

RETLW 'I'

'D'

ETLW 00H

------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

RETLW 'A'

RETLW ' '

;Mensaje 8 'Verifique'

;----------------------------------------------

MEN_8

RETLW 'V'

RETLW 'E'

RETLW 'R'

RETLW 'I'

RETLW 'F'

RETLW 'I'

RETLW 'U'

RETLW

RETLW 00H

;---------------------------------------------

;Mensaje 9 'Cambiada'

;-----------------------------------------------

MEN_9

RETLW ' '

RETLW 'C'

RETLW 'A'

RETLW 'M'

RETLW 'B'

RETLW 'A'

RETLW

RETLW 'A'

R

;-----------------------------------------------

;Mensaje 10 'La Clave Debe'

;-----------------------------------------------

MEN_10

RETLW 'L'

- 42 -

Page 43: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 RETLW 'C'

RETLW 'L'

ETLW 'V'

------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------

'T'

ETLW 'N'

RETLW 'O'

RETLW 'A'

R

RETLW 'E'

RETLW ' '

RETLW 'D'

RETLW 'E'

RETLW 'B'

RETLW 'E'

RETLW 00H

;-----------------------------------------------

;Mensaje 11 'Tener 4 Dígitos'

;-

MEN_11

RETLW

RETLW 'E'

R

RETLW 'E'

RETLW 'R'

RETLW ' '

RETLW '4'

RETLW ' '

RETLW 'D'

RETLW 'I'

RETLW 'G'

RETLW 'I'

RETLW 'T'

RETLW 'S'

RETLW 00H

- 43 -

Page 44: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 ;-----------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

RETLW 'L'

----------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------

ICIO

CLRF DATO ; Inicializa el Puerto B

CLRF KEYB ; Inicializa el Teclado

;Mensaje 12 'Intentelo'

;-----------------------------------------------

MEN_12

RETLW 'I'

RETLW 'N'

RETLW 'T'

RETLW 'E'

RETLW 'N'

RETLW 'T'

RETLW 'E'

RETLW 'O'

RETLW 00H

;-------------

;Mensaje 13 'De Nuevo'

;-----------------------------------------------

MEN_13

RETLW 'D'

RETLW 'E'

RETLW ' '

RETLW 'N'

RETLW 'U'

RETLW 'E'

RETLW 'V'

RETLW 'O'

RETLW 00H

;-----------------------------------------------

; INICIO: Inicializa los dispositivos.

; LCD

; Teclado

;-

IN

- 44 -

Page 45: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 CLRF PORTA ; Inicializa el Puerto A

BSF STATUS,5 ; Cambiamos al Banco 1 para definir las entradas como digitales

OVWF ADCON1 ; Envía la configuración

;

; Configuramos EN, RW,

;

; RS, ALA y Portero

;

; como salidas

; Configuramos el teclado

; Columnas como salidas y Filas como entradas

; Regresamos al banco 0

; La EEPROM eta lista para usarse

INTENTO ; realizar antes que se active la alarma en este caso 3

ALL INITLCD ; Inicializamos la pantalla LCD

;

------------------------------------------------------------------------------------

ma

------------------------------------------------------------------------------------

; Borra el Display y coloca el cursor ala izq.

; Coloca el cursor al inicio de la línea superior del LCD

; Rutina que escribe el mensaje al que apunta el acumulador

44H

----------------------------------------------------------------------------------------------------------------------

dulo al primer ada y valida

cción

ambio de Clave"

MOVLW 06H ; Bits de configuración para las entradas como digitales

M

CLRF DATO

BCF EN

BCF RW

BCF RS

BCF ALA

BCF PORTERO

MOVLW 0F0H

MOVWF KEYB

BCF STATUS,5

BCF PIR2,4

MOVLW 03H ; Cargamos el numero de intentos que se podrán

MOVWF

C

;CALL INITLCD

;-----------------------------------------------

;PRINCI: Cuerpo principal del progra

;-----------------------------------------------

PRINCI

CALL CLEARL

MOVLW 00H

CALL SITUCU

MOVLW MEN_1 ; Cargamos la dirección del Mensaje en el Acumulador

CALL ESCMEN

MOVLW

CALL SITUCU ; Coloca el cursor al inicio de la línea inferior del LCD

;-------------

;ECOD12: Este mo macena la a tecla numérica presion

; que no sea una tecla de función en caso de 'C' entra a la se

; de "C

- 45 -

Page 46: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 ;-----------------------------------------------------------------------------------------------------------------------------------

ELK

PEKE spera tecla

sionada en el Acumulador

os si la tecla fue o no 'A'

C TU 2

a = 'A'

umulador

C

C

MOVF COD1,W ; en caso de que se haya presionado una tecla numérica

----------------------------------------------------------------------------------------------------------------------------------

dulo al egund lida

so de 'C' entra a la sección

--------------------------------------------------------------------------------

ALL SUELKEY ; Verificamos que el teclado se encuentre bien inicializado

; Almacenamos la segunda tecla presionada en el Acumulador

; Cargamos la tecla en el acumulador

'

OVF a tecla numérica

OVLW ; para mantener oculta la tecla oprimida

ECOD12

CALL SU EY ; Verificamos que el teclado se encuentre bien inicializado

CALL ES Y ; E mos a que se presione una

MOVWF COD1 ; Almacenamos la primera tecla pre

SUBLW 'A' ; Verificam

BTFS STA S, ;

GOTO INCOR ; Si la tecl

MOVF COD1,W ; Cargamos la tecla en el ac

SUBLW 'C' ; Verificamos si la tecla presionada fue 'C'

BTFS STATUS,2 ; Si la tecla fue 'C'

GOTO CAMBIO ; cambiamos la clave

MOVLW '*' ; para mantener oculta la tecla oprimida

CALL WRITEL ; escribimos '*' en el Display

;-

;ECOD22: Este mo macena la s a tecla numérica presionada y va

; que no sea una tecla de función en ca

; de "Cambio de Clave"

;---------------------------------------------------

ECOD22

C

CALL ESPEKEY ; Esperamos a que se presione una tecla

MOVWF COD2

SUBLW 'A' ; Verificamos si la tecla fue o no 'A'

BTFSC STATUS,2 ;

GOTO INCOR ; Si la tecla = 'A'

MOVF COD2,W

SUBLW 'C ; Verificamos si la tecla presionada fue 'C'

BTFSC STATUS,2 ; Si la tecla fue 'C'

GOTO CAMBIOC ; cambiamos la clave

M COD2,W ; en caso de que se haya presionado un

M '*'

- 46 -

Page 47: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 CALL WRITEL ; escribimos '*' en el Display

;-----------------------------------------------------------------------------------------------------------------------------------

na te ción

de "Cambio de Clave"

-------- -------- - --------- ---

os que el teclado se encuentre bien inicializado

se presione una tecla

ada en el Acumulador

nada fue 'C'

OVF a tecla numérica

OVLW ; para mantener oculta la tecla oprimida

----------------------------------------------------------------------------------------------------

ena cuarta t

na tecla de fu

de "Cambio de Clave"

-------- -------- - --------- -

os que el teclado se encuentre bien inicializado

se presione una tecla

ada en el Acumulador

;ECOD32: Este modulo almacena la tercera tecla numérica presionada y valida

; que no sea u cla de función en caso de 'C' entra a la sec

;

;- -------------- --------- -- ----------------------------------------------------------------------------

ECOD32

CALL SUELKEY ; Verificam

CALL ESPEKEY ; Esperamos a que

MOVWF COD3 ; Almacenamos la tercera tecla presion

SUBLW 'A' ; Verificamos si la tecla fue o no 'A'

BTFSC STATUS,2 ;

GOTO INCOR ; Si la tecla = 'A'

MOVF COD3,W ; Cargamos la tecla en el acumulador

SUBLW 'C' ; Verificamos si la tecla presio

BTFSC STATUS,2 ; Si la tecla fue 'C'

GOTO CAMBIOC ; cambiamos la clave

M COD3,W ; en caso de que se haya presionado un

M '*'

CALL WRITEL ; escribimos '*' en el Display

;-------------------------------

;ECOD42: Este modulo almac la ecla numérica presionada y valida

; que no sea u nción en caso de 'C' entra a la sección

;

;- -------------- --------- -- ------------------------------------------------------------------------------

ECOD42

CALL SUELKEY ; Verificam

CALL ESPEKEY ; Esperamos a que

MOVWF COD4 ; Almacenamos la cuarta tecla presion

SUBLW 'A' ; Verificamos si la tecla fue o no 'A'

BTFSC STATUS,2 ;

GOTO INCOR ; Si la tecla = 'A'

MOVF COD4,W ; Cargamos la tecla en el acumulador

- 47 -

Page 48: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 SUBLW 'C' ; Verificamos si la tecla presionada fue 'C'

OVF a tecla numérica

OVLW ; para mantener oculta la tecla oprimida

ALL SUELKEY

-------- - -------- ------ ------

ez teni s alm

la siguiente tecla sea una tecla de función para 'Aceptar' ('A') el código

Camb ('C')

-------- -------- ---- --------- ----------------------------------

MOVWF TECLA

TU 2

TU 2

------------------------------------

INDC D2:

recond ódigo almacenado esto es:

lo veri cód

-------- - -------- ----- ----------------------------

INCOD2

CO ódigo correcto

mos las teclas

2

GOTO INCOR ; Si la tecla es incorrecta

BTFSC STATUS,2 ; Si la tecla fue 'C'

GOTO CAMBIOC ; cambiamos la clave

M COD4,W ; en caso de que se haya presionado un

M '*'

CALL WRITEL ; escribimos '*' en el Display

C

;- ---------- --- --------------- -------------------------------------------------------------------------

;FINDCOD: Una v endo las tecla acenadas, este modulo verifica que

;

; o ' iar la clave'

;- -------------- ------ -- ---------------------------------------------

FINCOD

CALL ESPEKEY

SUBLW 'A'

BTFSC STA S,

GOTO FINCOD2

MOVF TECLA,W

SUBLW 'C'

BTFSC STA S,

GOTO CAMBIOC

GOTO FINCOD

;-----------------------------------------------------------------------------------------------

;F O

; P iciones: Tener las teclas del c

; Código = 'COD1,COD2,COD3,COD4' y se ha presionado la tecla 'A'

;

; Este modu fica que sea el igo correcto para activar la apertura

;- ---------- --- ---------------- ---------------------------------------------------

F

MOVLW 00H ; Leemos el registro de la EEPROM

CALL LEE D ; donde se encuentra almacenado el c

SUBWF COD1 ; Compara

BTFSS STATUS, ;

- 48 -

Page 49: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 MOVLW 01H ; Leemos el registro de la EEPROM

a almacenado el código correcto

as

OR

emos el registro de la EEPROM

TFSS

OTO ; Si la tecla es incorrecta

OVLW 03H ; Leemos el registro de la EEPROM

onde se encuentra almacenado el código correcto

; Comparamos las teclas

;

la tecla es incorrecta

LAVE CORRECTA

locamos en posición

cursor para escribir en el LCD

imos el Mensaje

OVW

DELAY ; Esperamos el tiempo dado por T_RELE

ra

CALL LEECOD ; donde se encuentr

SUBWF COD2 ; Comparamos las tecl

BTFSS STATUS,2 ;

GOTO INC ; Si la tecla es incorrecta

MOVLW 02H ; Le

CALL LEECOD ; donde se encuentra almacenado el código correcto

SUBWF COD3 ; Comparamos las teclas

B STATUS,2 ;

G INCOR

M

CALL LEECOD ; d

SUBWF COD4

BTFSS STATUS,2

GOTO INCOR ; Si

CALL CLEARL ; C

MOVLW 02H ; Co

CALL SITUCU ; el

MOVLW MEN_2 ; Escrib

CALL ESCMEN ; de bienvenida

MOVLW 03H ; Reinicia

M F INTENTO ; el número de intentos

BSF PORTERO ; Activa mecanismo de apertura

MOVLW T_RELE ;

CALL

BCF PORTERO ; Desactivamos mecanismo de apertu

MOVLW 10H

CALL DELAY

GOTO PRINCI ; Reiniciamos el sistema

- 49 -

Page 50: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 ;- -------------- -------- -- ------------------------------------------------------- -------- -- --------- --------------------------------

NCOR fue inc vía el

--------------------------------------

a el número de intentos disponibles

COR2 aún

GOTO ALARMA ; Si se acabaron los intentos activa la "Alarma"

COR2

-------- -------- --------- ------------------------------------------------

ués de 3 intentos incorrectos de acceso se activa

----------------------------------------------------------------------------------------------------------------------------------

MOVLW 03H ; Reiniciamos el numero de intentos

MOVWF CUENTA1

LW

LARM

LW

MOVWF CUENTA4

LARMA3

;I : La clave orrecta y en mensaje al LCD

;---------------------------------------------------------------------------------------------

INCOR

MOVLW 0CH

CALL COMANDO

CALL CLEARL

MOVLW MEN_3 ; Escribe el mensaje de clave incorrecta

CALL ESCMEN ;

DECFSZ INTENTO,F ; Decrement

GOTO IN ; Si quedan intentos disponibles

IN

MOVLW 20H ; Espera un tiempo antes de

CALL DELAY ; Poder intentar el ingreso

GOTO PRINCI

;- -------------- ------------ -------------------------------

;ALARMA: Desp

; la alarma

;-

ALARMA

MOVLW 1EH

MOVWF TECLA

ALARMA4

MOVWF INTENTO ; disponibles

MOVLW 00FH

MOV 030H

MOVWF CUENTA2

A A1

MOV 20H

DECF CUENTA1,F

BTFSC STATUS,2

GOTO ALARMA2

A

- 50 -

Page 51: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 BSF ALA ; Enciende

CALL FRECU ; Frecuencia de apagado y encendido

CALL FRECU

ELAY

OTO ALARMA4

CI

TO FRECU2

LW 030H

----------------------------------------------------------------------------------

almacenada

----------------------------------------------------------------------------------

L CLEARL

; 'CAMBIO DE'

cribe el mensaje

AVE'

cribe el mensaje

L DELAY ; Retardo

BCF ALA ; Apaga

DECFSZ CUENTA4,F

GOTO ALARMA3

GOTO ALARMA1

ALARMA2

MOVLW 01H

CALL D

DECFSZ TECLA,F

G

GOTO PRIN

FRECU

MOVF CUENTA1,W

MOVWF CUENTA3

FRECU2

DECFSZ CUENTA3,F

GO

DECFSZ CUENTA2,F

GOTO FRECU

MOV

MOVWF CUENTA2

RETURN

;-------------------------------------------------

;CAMBIOC: Este modulo Cambia la clave

;-------------------------------------------------

CAMBIOC

CAL

MOVLW MEN_4

CALL ESCMEN ; Es

MOVLW MEN_5 ; ' CL

CALL ESCMEN ; Es

MOVLW 20H

CAL

- 51 -

Page 52: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 CALL CLEARL ; Limpiamos el Display

aje

; ' ANTIGUA'

ibe el mensaje

pera a que se deje de presionar la tecla

UCU ; Colocamos el cursor en la línea siguiente

; Obtiene el Código Tecleado

; Dirección de la EEPROM donde está almacenado el digito

ee el Código de le EEPROM y lo regresa en el acumulador

para el código almacenado con el tecleado

;

GOTO INCORE ; Si no es igual

; Si es igual compara el siguiente digito

ción de la EEPROM donde está almacenado el digito

e el Código de le EEPROM y lo regresa en el acumulador

UBWF COD2 ; compara el código almacenado con el tecleado

es igual

s igual compara el siguiente digito

; Dirección de la EEPROM donde está almacenado el digito

; Lee el Código de le EEPROM y lo regresa en el acumulador

mpara el código almacenado con el tecleado

ATUS,2 ;

para el siguiente digito

L LEECOD ; Lee el Código de le EEPROM y lo regresa en el acumulador

compara el código almacenado con el tecleado

ecto

; Reiniciamos el número de intentos

MOVLW MEN_5 ; ' CLAVE'

CALL ESCMEN ; Escribe el mens

MOVLW MEN_6

CALL ESCMEN ; Escr

CALL SUELKEY ; Es

MOVLW 44H

CALL SIT

CALL COGECOD

MOVLW 00H

CALL LEECOD ; L

SUBWF COD1 ; com

BTFSS STATUS,2

MOVLW 01H ; Direc

CALL LEECOD ; Le

S

BTFSS STATUS,2 ;

GOTO INCORE ; Si no

; Si e

MOVLW 02H

CALL LEECOD

SUBWF COD3 ; co

BTFSS ST

GOTO INCORE ; Si no es igual

; Si es igual com

MOVLW 03H ; Dirección de la EEPROM donde está almacenado el digito

CAL

SUBWF COD4 ;

BTFSS STATUS,2 ;

GOTO INCORE ; Si no es igual

MOVLW 03H ; Si el código fue corr

MOVWF INTENTO

- 52 -

Page 53: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 ;- ---------- --- -------------- --------------------------------------- - -------- ------- ------------------------------------------------

lmacena

--------------------------------------------------

UEVA

MOVLW MEN_7 ; 'NUEVA'

se libere la tecla

ALL OGEC D

COD1 en COD1A

OVF OD2,W rmente

s COD3 para verificar posteriormente

OTO CORE

COD4 en COD4A

CALL ESCMEN ; Escribe mensaje

;NUEVACL: Capturamos y verificamos la nueva clave y se a

; en la EEPROM

;---------------------------------------------------------------------------------

N CL

CALL CLEARL ; Limpiamos el Display

MOVLW 02H

CALL SITUCU ; Colocamos el cursor en la primera línea

CALL ESCMEN ; Escribimos el mensaje

MOVLW MEN_5 ; ' CLAVE'

CALL ESCMEN ; Escribimos el mensaje

MOVLW 44H ; Cambiamos de línea

CALL SITUCU ;

CALL SUELKEY ; Esperamos que

C C O ; Leemos el nuevo código

MOVF COD1,W ; Copiamos COD1 para verificar posteriormente

BTFSC STATUS,2

GOTO INCOREC

MOVWF COD1A ; Almacenamos

M C ; Copiamos COD2 para verificar posterio

BTFSC STATUS,2

GOTO INCOREC

MOVWF COD2A ; Almacenamos COD2 en COD2A

MOVF COD3,W ; Copiamo

BTFSC STATUS,2

G IN C

MOVWF COD3A ; Almacenamos COD3 en COD3A

MOVF COD4,W ; Copiamos COD4 para verificar posteriormente

BTFSC STATUS,2

GOTO INCOREC

MOVWF COD4A ; Almacenamos

CALL CLEARL ;VERIFIQUE CLAVE

MOVLW MEN_8 ; 'VERIFIQUE'

- 53 -

Page 54: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 MOVLW MEN_5 ; ' CLAVE'

CALL ESCMEN ; Escribe mensaje

amos el cursor en la segunda línea

L SUELKEY ;

; Compara el COD1 con COD1A

ontinuamos comparando

U 2;

!= COD2A

parando

US,2;

COD3 = COD3A continuamos comparando

2;

COD4 = COD4A continuamos

cribe mensaje

MBIADA'

uarda en CODWRITE el

igito que se almacenara en EEPROM

CALL EEWRITE ; almacena en EEPROM la clave

el

n EEPROM

MOVLW 44H ; Coloc

CALL SITUCU ;

CAL

CALL COGECOD ; Obtiene el código

MOVF COD1,W

SUBWF COD1A,W ;

BTFSS STATUS,2 ;

GOTO NOVERI ; Si COD1 != COD1A

MOVF COD2,W ; Si COD1 = COD1A c

SUBWF COD2A,W ; COD2 contra COD2A

BTFSS STAT S,

GOTO NOVERI ; Si COD2

MOVF COD3,W ; Si COD2 = COD2A continuamos com

SUBWF COD3A,W ;

BTFSS STAT

GOTO NOVERI ; Si COD3 != COD3A

MOVF COD4,W ; Si

SUBWF COD4A,W ;

BTFSS STATUS,

GOTO NOVERI ; Si COD4 != COD4A

; Si

CALL CLEARL ;CLAVE CAMBIADA

MOVLW MEN_5 ; ' CLAVE'

CALL ESCMEN ; Es

MOVLW MEN_9 ; ' CA

CALL ESCMEN ; Escribe mensaje

MOVF COD1,W ; G

MOVWF CODWRITE ; d

MOVLW 00H ; Dirección donde guardara el digito

MOVF COD2,W ; Guarda en CODWRITE

MOVWF CODWRITE ; digito que se almacenara e

- 54 -

Page 55: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 MOVLW 01H ; Dirección donde guardara el digito

clave

n CODWRITE el

e se almacenara en EEPROM

ardara el digito

n CODWRITE el

E ra en EEPROM

--------------------------------------------------------------------------

OVER entific l ingre

a vez

------------------------------------------------------------------

CALL SITUCU ; Colocamos el cursor en la primera línea

a segunda línea

CALL ESCMEN ; Escribe mensaje

A

--------------------------------------

NCOREC: Despliega un mensaje cuando suscita un error al

troduc

----------------------------

CALL EEWRITE ; almacena en EEPROM la

MOVF COD3,W ; Guarda e

MOVWF CODWRITE ; digito qu

MOVLW 02H ; Dirección donde gu

CALL EEWRITE ; almacena en EEPROM la clave

MOVF COD4,W ; Guarda e

MOVWF CODWRIT ; digito que se almacena

MOVLW 03H ; Dirección donde guardara el digito

CALL EEWRITE ; almacena en EEPROM la clave

MOVLW 20H

CALL DELAY

GOTO PRINCI

;---------------------------------------------------------

;N I: Id a un error a sar la clave nueva

; por segund

;-----------------------------------------------------------------

NOVERI

CALL CLEARL ; Limpia LCD

MOVLW 03H ;

MOVLW MEN_12 ; 'INTENTELO'

CALL ESCMEN ; Escribe Mensaje

MOVLW 43H ;

CALL SITUCU ; Colocamos el cursor en l

MOVLW MEN_13 ; 'DE NUEVO'

MOVLW 20H

CALL DELAY

GOTO NUEV CL

;---------------------------------------------------------------------------------------------

;I

; in ir el código

;-------------------------------------------------------------------------------------------------------

- 55 -

Page 56: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 IN C CORE

ER 4 DIGITOS

MOVLW MEN_10 ; 'LA CLAVE DEBE'

CALL ESCMEN ; Escribe mensaje

CI

; Decrementa el número de intentos

BTFSC STATUS,2 ; verifica que aun existan intentos

; si no hay intentos activa ALARMA

ECTA'

Mensaje

ALL DELAY

e la tecla

------------------------------------------------

------------------------------------------------------------------

D1 os las v

--------------------------------------------------------------------------

------- ------- ------------------------------------------------------------------------------------

CALL CLEARL ;LA CLAVE DEBE TEN

CALL ESCMEN ; Escribe mensaje

MOVLW 40H

CALL SITUCU ; Cursor a segunda línea

MOVLW MEN_11 ; 'TENER 4 DIGITOS'

MOVLW 20H

CALL DELAY

GOTO PRIN

INCORE

DECF INTENTO,F

GOTO ALARMA

CALL CLEARL ; Limpia Display

MOVLW MEN_3 ; 'CLAVE INCORR

CALL ESCMEN ; Escribe

MOVLW 20H

C

CALL SUELKEY ; Esperamos a que suelt

GOTO PRINCI

;-----------------------------------------------------------------------------------

;COGECOD: Lee el código y lo compara con el antiguo

;-----------------------------------------------------------------

COGECOD

CLRF CO ; Limpiam ariables

CLRF COD2

CLRF COD3

CLRF COD4

;---------------------------------------------------------

;ECOD12C: Lee la primera tecla del código y verifica

; que sea numérica

;-- ---- ---------------------------

ECOD12C

- 56 -

Page 57: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 CALL SUELKEY ; Esperamos a que suelte la tecla

s 'C'

; Si es 'C'

; Si no es 'C'

CALL WRITEL ; Escribimos '*' en pantalla

----------------------------------------------------------------------------------------------------------------------

l có

-------- -------- ----- ---------------------------------

ecla

; Si es 'A'

COD1,W ; Si no es 'A' verificamos 'C'

LW '*' ; Si no es 'C'

os '*' en pantalla

------------------------------------------------------------------------------------------

cla del código y verifica

a numérica

ALL speramos a que suelte la tecla

VWF COD1 ;

CALL ESPEKEY ; Esperamos a que se presione la tecla

MOVWF COD1 ;

SUBLW 'A'

BTFSC STATUS,2

RETURN ; Si es 'A'

MOVF COD1,W ; Si no es 'A' verificamo

SUBLW 'C'

BTFSC STATUS,2

GOTO ECOD12C

MOVLW '*'

;-------------

;ECOD22C: Lee la segunda tecla de digo y verifica

; que sea numérica

;- -------------- ---------------- ----------------------------------------------

ECOD22C

CALL SUELKEY ; Esperamos a que suelte la tecla

CALL ESPEKEY ; Esperamos a que se presione la t

MOVWF COD1 ;

SUBLW 'A'

BTFSC STATUS,2

RETURN

MOVF

SUBLW 'C'

BTFSC STATUS,2

GOTO ECOD22C ; Si es 'C'

MOV

CALL WRITEL ; Escribim

;-----------------------------------------

;ECOD32C: Lee la tercera te

; que se

;-----------------------------------------------------------------------------------------------------------------------------------

ECOD32C

C SUELKEY ; E

CALL ESPEKEY ; Esperamos a que se presione la tecla

MO

- 57 -

Page 58: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 SUBLW 'A'

BTFSC STATUS,2

; Si no es 'A' verificamos 'C'

; Si no es 'C'

cribimos '*' en pantalla

-------- -------- ----- ------------------------------------------------------------------

COD4 e la cu tecl del códi

mérica

ALL speramos a que suelte la tecla

VWF COD1 ;

i es 'A'

; Si no es 'A' verificamos 'C'

; Si no es 'C'

cribimos '*' en pantalla

s a que se suelte la tecla

-------- -------- ------ --------- --------------------------------------------------------------

INCO spera l

--- -------------------------------------------------------------

NCODC

VWF TECLA

A TENGO EL CÓDIGO

RETURN ; Si es 'A'

MOVF COD1,W

SUBLW 'C'

BTFSC STATUS,2

GOTO ECOD32C ; Si es 'C'

MOVLW '*'

CALL WRITEL ; Es

;- -------------- ---------------- -------------

;E 2C: Le arta a go y verifica

; que sea nu

;-----------------------------------------------------------------------------------------------------------------------------------

ECOD42C

C SUELKEY ; E

CALL ESPEKEY ; Esperamos a que se presione la tecla

MO

SUBLW 'A'

BTFSC STATUS,2

RETURN ; S

MOVF COD1,W

SUBLW 'C'

BTFSC STATUS,2

GOTO ECOD42C ; Si es 'C'

MOVLW '*'

CALL WRITEL ; Es

CALL SUELKEY ; Esperamo

;- -------------- ---- -- -----------------

;F D: E a tecla 'A' Aceptar o cancelar 'C'

; para cambiar el código

;----------------- --------------------------------------------------

FI

CALL ESPEKEY ; Espera que se presione una tecla de función

MO

SUBLW 'A'

BTFSC STATUS,2

RETURN ;Y

- 58 -

Page 59: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 GOTO FINCODC

;-----------------------------------------------------------------------------------------------------------------------------------

REGISTRO DE LA EEPROM

O POR DEVUELVE EN

DOR

--------------------------------------------------------------------------

TU 6

CF

F STATUS,5

--------------------------------------------------------------------------

A EEPRON DE DATOS

DIR ESCRIBIR EN W

A ESCRIBIR EN CODWRITE

--------------------------------------------------------------------------

EWRIT

OVF

VWF EEDATA

; LEECOD: SUBRUTINA QUE LEE EL

; INDICAD EL ACUMULADOR Y LO

; ACUMULA

;---------------------------------------------------------

LEECOD

BSF STA S,

BCF STATUS,5

MOVWF EEADR

BSF STATUS,5

B EECON1,7

BSF EECON1,0

BC

MOVF EEDATA,W

BCF STATUS,6

RETURN

;---------------------------------------------------------

; EEWRITE: SUBRUTINA QUE ESCRIBE EN L

; PASAR LA ECCION DE LA EEPRON A

; Y EL DATO

;---------------------------------------------------------

E E

BSF STATUS,6

BCF STATUS,5

MOVWF EEADR

BCF STATUS,6

M CODWRITE,W

BSF STATUS,6

MO

BSF STATUS,5

BCF EECON1,7

BSF EECON1,2

BCF INTCON,7

MOVLW 55H

- 59 -

Page 60: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 MOVWF EECON2

MOVLW 0AAH

MOVWF E 2 ECON

SF

F STATUS,6

OL1: OL2: 1

----------------------------------------------------------------------------------------------------------------------------------

icializamos el teclado

lumnas a 1 y Filas a 0

apturamos el Puerto C (00001111) si no se presiono alguna

uardamos la tecla presionada

etardo para esperar la tecla

se ha inicializado correctamente

teclado

ntinuamos

; Verificamos el que se

B EECON1,1

BSF INTCON,7

BCF STATUS,5

BC

EEWRIT

BTFSS PIR2,4

GOTO EEWRIT

BSF STATUS,5

BSF STATUS,6

BCF EECON1,2

BCF STATUS,5

BCF STATUS,6

BCF PIR2,4

RETURN

;-----------------------------------------------------------------------------------------------------------------------------------

; GETKEY: Subrutina que devuelve el valor pulsado en

; un teclado hexadecimal en código ASCII en W

;C 0 C COL3: 2 COL4: 3

;ROW1: 4 ROW2: 5 ROW3: 6 ROW4: 7

;-

GETKEY

MOVLW 0FH ; In

MOVWF KEYB ; Co

NOP

MOVF KEYB,W ; C

tecla

MOVWF TECLA ; G

CALL REBOTE ; R

MOVF KEYB,W ;

SUBWF TECLA,F ; Si

BTFSS STATUS,2 ; el

GOTO GETKEY ; co

SUBLW 0FH

- 60 -

Page 61: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 BTFSS STATUS,2 ; haya presionado alguna tecla

; si se presiono una tecla

caso contrario regresamos vacio

--------------------------------------------------------------------------

sionada

cuentra

--------------------------------------------------------------------------

; Verifica si se presiono alguna

de las teclas de la fila 1

erifica si se presiono alguna

las teclas de la fila 2

erifica si se presiono alguna

las teclas de la fila 3

erifica si se presiono alguna

; de las teclas de la fila 4

H ; En caso de ninguna de las anteriores

----------------------------------------------------------------------------------------------------------------------------------

tecla

------- ------- ----------------------------------------------------

W H

P

,4

02H

NOP

GOTO HAYTECL

RETLW 0FH ;

;---------------------------------------------------------

;HAYTECL: Cuando se encuentra una tecla pre

; este modulo identifica en que fila se en

;---------------------------------------------------------

HAYTECL

BTFSC KEYB,4

GOTO ROW1 ;

BTFSC KEYB,5 ; V

GOTO ROW2 ; de

BTFSC KEYB,6 ; V

GOTO ROW3 ; de

BTFSC KEYB,7 ; V

GOTO ROW4

RETLW 0F

;-

;ROW1: Si la Tecla Presionada se encuentra en la Fila 1

; del do este modulo identifica esta tecla.

;-- ---- -----------------------------------------------------------

ROW1

MOVL 01

MOVWF KEYB

NO

BTFSC KEYB

RETLW 31H ;TECLA=1

MOVLW

MOVWF KEYB

BTFSC KEYB,4

RETLW 32H ;TECLA=2

MOVLW 04H

MOVWF KEYB

NOP

BTFSC KEYB,4

RETLW 33H ;TECLA=3

- 61 -

Page 62: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 MOVLW 08H

MOVWF KEYB

NOP

BTFSC KEYB,4

RETLW 'A' ;TECLA=A

RETLW 0FH

;-----------------------------------------------------------------------------------------------------------------------------------

;ROW2: Si la Tecla Presionada se encuentra en la Fila 2

-------- -------- --------- ----------------------------------------------

MOVLW 04H

KEYB,5

TECLA=6

----------------------------------------------------------------------------------

Fila 3

clado este modulo identifica esta tecla.

------------------------------------------------------------------------------

; del teclado este modulo identifica esta tecla.

;- -------------- ------------ ---------------------------------

ROW2

MOVLW 01H

MOVWF KEYB

NOP

BTFSC KEYB,5

RETLW 34H ;TECLA=4

MOVLW 02H

MOVWF KEYB

NOP

BTFSC KEYB,5

RETLW 35H ;TECLA=5

MOVWF KEYB

NOP

BTFSC

RETLW 36H ;

RETLW 0FH

;-------------------------------------------------

;ROW3: Si la Tecla Presionada se encuentra en la

; del te

;-----------------------------------------------------

ROW3

MOVLW 01H

MOVWF KEYB

NOP

BTFSC KEYB,6

RETLW 37H ;TECLA=7

- 62 -

Page 63: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 MOVLW 02H

MOVWF KEYB

NOP

BTFSC KEYB,6

RETLW 38H ;TECLA=8

MOVLW 04H

MOVWF KEYB

NOP

BTFSC KEYB,6

RETLW 39H ;TECLA=9

MOVLW 08H

KEYB,6

TECLA=C

----------------------------------------------------------------------------------

Fila 4

clado este modulo identifica esta tecla.

------------------------------------------------------------------------------

MOVLW 04H

KEYB,7

TECLA=#

MOVWF KEYB

NOP

BTFSC

RETLW 'C' ;

RETLW 0FH

;-------------------------------------------------

;ROW4: Si la Tecla Presionada se encuentra en la

; del te

;-----------------------------------------------------

ROW4

MOVLW 01H

MOVWF KEYB

NOP

BTFSC KEYB,7

RETLW '*' ;TECLA=*

MOVLW 02H

MOVWF KEYB

NOP

BTFSC KEYB,7

RETLW 30H ;TECLA=0

MOVWF KEYB

NOP

BTFSC

RETLW '#' ;

RETLW 0FH

- 63 -

Page 64: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 ;-----------------------------------------------------------------------------------------------------------------------------------

UE ESPERA A QUE SE SUELTE

LA TECLA PULSADA

------------------------------------------------------------------------------

; Se verifica si regreso vacio

STATUS,2;

no se presiono ninguna tecla)

la

----------------------------------------------------------------------------------

UE ESPERA A QUE SE PULSE UNA TECLA

DEVUELVE EL VALOR EN W Y TECLA

------------------------------------------------------------------------------

; Obtiene la tecla presionada

cla

MOVF TECLA,W ; si se presiono una tecla regresamos

; el valor en el acumulador

--------------------------------------------------------------------------------

SUBRUTINA QUE ESCRIBE UN MENSAJE EN EL LCD,

E TABLA EN ACUMULADOR

----------------------------------------------------

; Guardamos la dirección del inicio del mensaje en PUNTAB

WRITEL

; SUELKEY: SUBRUTINA Q

;

;-----------------------------------------------------

SUELKEY

CALL GETKEY

SUBLW 0FH

BTFSC

RETURN ; (

GOTO SUELKEY ; Se presiono una tec

;-------------------------------------------------

; ESPEKEY: SUBRUTINA Q

;

;-----------------------------------------------------

ESPEKEY

CALL GETKEY

MOVWF TECLA ; Verificamos

SUBLW 0FH ; que se haya

BTFSC STATUS,2 ; presionado una te

GOTO ESPEKEY ; si no se presiono

RETURN

;---------------------------------------------------

; ESCMEN:

; PASAR INICIO D

;-------------------------------------------------------------------------------

ESCMEN

MOVWF PUNTAB

ESCMEN2

CALL TABLA

ADDLW 00H

BTFSC STATUS,2

RETURN

CALL

INCF PUNTAB,F

MOVF PUNTAB,W

GOTO ESCMEN2

- 64 -

Page 65: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 ;-----------------------------------------------------------------------------------------------------------------------------------

; WAITLCD: SUBRUTINA DE ESPERA AL LCD

;-----------------------------------------------------------------------------------------------------------------------------------

STATUS,5 ; Cambio al Banco 1 y

onfiguro el puerto B como

greso al Banco 0

VWF DATO

la bandera de ocupado

W

LRF

TURN

-------- -------- ------- ---

SUBRUTINA DE INICIALIZACIÓN DEL LCD

------------------------------------------------------------------------------

111000

OMANDO ;INTERFACE 8 BIT, 2 LINEAS

0001100

PLAY A ON, NO MUESTRA CURSOR, NO PARPADEO

10

WAITLCD

BSF

MOVLW 0FFH ; c

MOVWF DATO ; entrada para leer desde el LCD

BCF STATUS,5 ; Re

BSF EN ; Activamos el LCD

BCF RS ; Configuramos el LCD para poder leer

BSF RW ; el 'busy flag' esto es RS=0, RW=1

MOVLW 0FFH ; Pongo el Puerto B todo en 1

MO

WAITLC

BTFSC DATO,7 ; Espera a que se libere

GOTO WAITLC ; de el LCD

BCF EN ; Limpio los bits

BCF R ; de comandos del LCD

BCF DATO,7

BSF STATUS,5 ; Regreso el Puerto B

C DATO ; como Salidas

BCF STATUS,5 ;

RE

;- -------------- -------------- ----------------------------------------------------------------------------

;INITLCD:

;-----------------------------------------------------

INITLCD

MOVLW 38H ;00

CALL C

MOVLW 0CH ;0

CALL COMANDO ;DIS

MOVLW 06H ;000001

- 65 -

Page 66: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007

CALL COMANDO ;MUEVE CURSOR A LA DCHA DESPUES D ESCRIBIR, NO

MUEVE VENTANA

------------------------------------------------------------------------------------------------------

A L: A Q LLEVA EL CURSOR AL LADO

QUIE

-------- --- -------- ------ ----------------------------------------------------

LEARL

----------------------------------------------------------------------------------------------------------------------------------

: NA QU CARACTER DEL

----------------------------------------------------------------------------------------------------------------------------------

BCF RW

------------------------------------------------

UN COMANDO AL LCD

--------------------------------------------------------------------------------------------------

F RW

RETURN

;-----------------------------

; CLE R SUBRUTIN UE BORRA EL LCD Y

IZ RDO

; DEL DISPLAY

;- -------- --- --------------- ---------------------------

C

MOVLW 01H

CALL COMANDO ;BORRADO

RETURN

;-

; WRITEL SUBRUTI E ESCRIBE EN EL LCD EL

ACUMULADOR

;-

WRITEL

BSF EN

BSF RS

MOVWF DATO

BCF EN

CALL WAITLCD

RETURN

;-----------------------------------------------------------------------------------

; COMANDO: SUBRUTINA QUE ENVIA

;---------------------------------

COMANDO

BSF EN

BCF RS

BC

MOVWF DATO

BCF EN

CALL WAITLCD

RETURN

- 66 -

Page 67: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 ;--------- ------------ ---

; SITUCU: SUBRUTINA QU R EN LA DIRECCION INDICADA POR

------- ---- ------

LL COMANDO

--- ---------------------------------------------------------

TA

SIGUIENTES REGISTROS

UENTA2

------------------------------------------------------------------------------------

UENTA2

EBOTE

---------- ------------------ -------------------------------------------------------------------------------

E SITUA EL CURSO

EL

; ACUMULADOR

;-- ------------------ ----------------------------------------------------------------------------------------------

SITUCU

IORLW 80H

CA

RETURN

;------------------------------------------------- ----------------------

;*********** DELAY ***********

; SUBRUTINA DE RE RDO SEGÚN EL VALOR DEL ACUMULADOR

; MODIFICA LOS

; CUENTA1

; C

; CUENTA3

;-----------------------------------------------

DELAY

MOVWF CUENTA1

DELAY3

MOVLW 0FFH

MOVWF C

DELAY2

MOVLW 0FFH

MOVWF CUENTA3

DELAY1

DECFSZ CUENTA3,F

GOTO DELAY1

DECFSZ CUENTA2,F

GOTO DELAY2

DECFSZ CUENTA1,F

GOTO DELAY3

RETURN

R

- 67 -

Page 68: DESARROLLO DE UNA CERRADURA …148.206.53.84/tesiuami/UAMI14449.pdf · La parte principal del circuito de la cerradura es el PIC 16F876, microprocesador que se encarga de las funciones

Universidad Autónoma Metropolitana, C. B. I. Diciembre, 2007 MOVLW 0FFH

MOVWF CUENTA1

REBO

RETURN

vanzado de Microcontroladores PIC.

DECFSZ CUENTA1,F

GOTO REBO

ORG 2100H

DE 30H,30H,30H,30H

END

12. BIBLIOGRAFIA.

1. Curso A

2. Iovine, John. PIC Robotics .McGraw Hill. E.U. A. 2004, 290 p.p.

3. http://es.wikipedia.org/wiki/Microcontrolador

4. Hoja de especificaciones de: PIC 16F876, L7805CV (Regulador de

CD y Teclado Matricial. Voltaje), Pantalla L

- 68 -