Proyecto de cerradura electronica(2)

36
INTRODUCCION El proyecto a desarrollar es una cerradura electrónica, ya que abarca el concepto sobre la seguridad de las personas en su hogar, empresas o negocios, etc., así como la evolución de los circuitos digitales, donde esta gama de proyectos son utilizados con mayor facilidad y con una gran calidad de equipo, los circuitos cada día son más pequeños y fáciles de llevar, hemos visto que la tecnología a superado muchas barreras hoy en día como es el caso de los celulares que utilizan microchips para mejorar las herramientas necesarias, en este proyecto deseo establecer que podemos utilizar y realizar circuitos con una gran expectativa y uso, con la mejor calidad que podemos desempeñar. Otro aspecto importante a considerar es que el proyecto debe ser un problema de aplicación real. Con este sistema se pretende dar una solución al problema de las puertas de seguridad que son utilizadas en la mayoría de las empresas, como hoteles, restaurantes, hasta incluso en el hogar, ya que hoy en día dichos sistemas son muy utilizados.

description

 

Transcript of Proyecto de cerradura electronica(2)

Page 1: Proyecto de cerradura electronica(2)

INTRODUCCION

El proyecto a desarrollar es una cerradura electrónica, ya que abarca el concepto sobre la seguridad de las personas en su hogar, empresas o negocios, etc., así como la evolución de los circuitos digitales, donde esta gama de proyectos son utilizados con mayor facilidad y con una gran calidad de equipo, los circuitos cada día son más pequeños y fáciles de llevar, hemos visto que la tecnología a superado muchas barreras hoy en día como es el caso de los celulares que utilizan microchips para mejorar las herramientas necesarias, en este proyecto deseo establecer que podemos utilizar y realizar circuitos con una gran expectativa y uso, con la mejor calidad que podemos desempeñar.

Otro aspecto importante a considerar es que el proyecto debe ser un problema de aplicación real. Con este sistema se pretende dar una solución al problema de las puertas de seguridad que son utilizadas en la mayoría de las empresas, como hoteles, restaurantes, hasta incluso en el hogar, ya que hoy en día dichos sistemas son muy utilizados.

Este proyecto está pensado para aquellas empresas, locales, tiendas, el hogar, etc., que cuentan con diversas puertas de acceso o que simplemente desean tener seguridad y proteger su beneficio, donde se lleva un control del ingreso y egreso de las personas a través de las mismas.

A continuación desglosaremos las diferentes partes del proyecto, comenzando por los objetivos, la definición de cada componente así como los esquemas, algunas especificaciones de los componentes, detallare cada aplicación que tiene el proyecto, así como la comprensión y el desarrollo del programa para comprender como opera este circuito, observaremos y ensamblaremos la estructura final del diagrama establecido por todos los componentes y por último se demostraran con imágenes como operara el circuito para comprender mejor el proyecto.

Page 2: Proyecto de cerradura electronica(2)

OBJETIVOS DEL PROYECTO

* El objetivo es Diseñar una cerradura electrónica destinada para el uso en las empresas, tiendas, hogar, etc., estableciendo una contraseña para que solamente tengan acceso las personas que estén autorizadas y para su mejor seguridad.

* La puerta puede tener dos teclados, una para ingreso y otro para el egreso, o simplemente puede tener un teclado para el ingreso y del otro lado que sea manual para el egreso.

* Cada persona autorizada tiene un número de usuario y un número de clave, o simplemente un número de claves esto es opcional.

* En las empresas y negocios, se usaría una PC conectada al sistema que se encargaría de controlar el ingreso de los trabajadores o usuarios para utilizarla también como un registro de la hora de entrada y salida de cada persona.

* Una persona o usuario puede cambiar su clave desde el momento que lo decida, para mayor seguridad o simplemente para comprobar que el sistema está funcionando adecuadamente todos los días.

* Cuando la puerta este abierta o la quieran abrir pero que no cuenten con la contraseña sin haber sido autorizados, se activara automáticamente una alarma para establecer que la persona no tiene acceso, ya que el circuito solo permitirá el acceso a las personas autorizadas.

* Este sistema esta diseñado para que solamente ingresen las personas autorizadas, en el caso de que la persona se equivoque al ingresar la contraseña, tendrá 3 intentos para ingresar la contraseña de lo contrario se activara la alarma y se bloqueara la puerta durante un tiempo determinado dando aviso a las estaciones de policía que hay un problema ya sea en la empresa, negocio o en el hogar.

Page 3: Proyecto de cerradura electronica(2)

DESARROLLO DEL PROYECTO.

Con este circuito puedes poner una clave de acceso para entrar en una habitación o para abrir un armario, caja... etc. y una alarma que suena cuando alguien introduce la clave mal tres veces.

La clave se introduce mediante un teclado de 16 teclas y se visualiza el estado en una pantalla de cristal líquido (LCD) de 16 caracteres-2 líneas. El circuito acciona un relé el cual acciona el dispositivo de apertura de la puerta, que puede ser, por ejemplo, una cantonera como la que hay en las puertas de los portales y que accionamos desde nuestra casa pulsando un botón.

DIAGRAMA DE LA CERRADURA ELECTRONICA

Page 4: Proyecto de cerradura electronica(2)

ESQUEMAS ELECTRÓNICOS.

Fuente de alimentación: + 5v.

PIC 16F84.

220

v.

Transformado

r

6v./300 mA.

1000

uF/25 v..

Puente

rectificador

40v /1A

7805

+5 v..

1K + led rojo.

MCLR

RA0

RA2

RA3

0v.

OCS1

OCS2

RA5

RA1

RA4

RC0

RC1

RC2

RC3

RB7

RB4

RB5

RB6

RB3

RC7

0v.

+5v

RB0/INT

RB1

RB2

RC4

RC5

RC6

1

8

19

2

0

Page 5: Proyecto de cerradura electronica(2)

LCD 2 x 16.

LCD 2 x 16. Conector macho de circuito impreso para cable plano.

1

10

0

100

nF

1

K

471N4148

+5v.

7 8

BUZ

ZER

9 1

0

15

pF

4 MH

z15

pF

1

9

2

0

+5v.

2

8

2

7

2

6

2

5

2

4

2

3

2

1

2

2

RB7 RB0

4

REL

E

RA2 RA5

RB7

RB5

RB3

RB1

5 v.

RB6

RB2

RB4

5 v.

10 K

114

RB7

RB6

RB5

RB4

RB3 RB

2RB1

5 v.

5 v.10 K

Page 6: Proyecto de cerradura electronica(2)

Teclado matricial 4 x 4.

Conexiones de tira recta de pines.

RB1RB7 RB0 RB4RB6 RB2RB5

2,2K 2,2K

1

4

7

<

2

5

8

0

3

6

9

>

025Fila del 8

C1= columna1 C2 C2

C2

C1 C3

Fila del 8 5 C1 2 C3 0 C2

2,2K

Page 7: Proyecto de cerradura electronica(2)

Chicharra.

Relé.

+5v

.

10 K

10 K

BC547

CHICHARRA

+5V.

BUZZER

+5v

.

10 K

10 K

BC547RELE

RELE +5V.

1N4007

Page 8: Proyecto de cerradura electronica(2)

Teclado matricial hexadecimalUn teclado de este tipo consta de 16 teclas (matriz 4 X 4). Por cada fila y cada columna de la matriz hay un "cable" que pasa por detras de las teclas, las cuales estan colocadas en las intersecciones entre filas y columnas.

Así pues, la columna 1 (COL1) es un "cable" que pasa por debajo del 1, del 4, del 7 y del * ; la fila 1 (FIL1) pasa debajo de la A, 3, 2 y 1.Filas y columnas no están conectadas entre si.

Cuando se pulsa una tecla se conecta la columna y la fila que pasa por debajo de dicha tecla. Por ejemplo, si se pulsa el 1 se conecta la COL1 con FIL1; si se pulsa el 8 se conecta la COL2 con FIL3, y asi sucesivamente con el resto de las teclas.

Esta forma estratégica de colocar todas las teclas y conexiones permite manejar 16 pulsadores con solo llevar 8 cables. Si en lugar de esto usaramos 16 pulsadores tendríamos 32 cables, sin necesidad de pensar mucho se nos podría ocurrir ponerlos todos con un terminal común, con lo que tendríamos 17 cables, La ventaja de usar la configuración matricial es clara.

El inconveniente que tiene es que para saber que tecla estas pulsando hace falta un microcontrolador (un pic por ej). Para poder ir dando distintos valores a las columnas y saber, dependiendo de los valores que se reflejen en las filas, la tecla pulsada. A un microcontrolador no le cuesta nada hacer esto.

Pantalla de cristal líquido LCDSe trata de un visualizador alfanumérico, es decir, solo se pueden ver números y letras y algún otro carácter.

Un LCD de este tipo se define por el número de lineas que es capaz de mostrar a la vez y el número de caracteres por líneas. Un LCD de 8 X 1 es un LCD de una línea y 8 caracteres. Los mas comunes son de 8, 16, 20, 24 y 40 caracteres y de 1, 2 y 4 líneas.

El propio LCD lleva ya un microcontrolador (HD44780) incorporado que es el que se encarga de mostrar los caracteres en la pantalla. Pero hace falta otro microcontrolador (un pic por ej) para que dialogue con el HD44780 y le diga que es lo que tiene que escribir. Para ello el LCD usa 11 líneas: 3 de control y 8 de datos. Aunque es posible también usar solamente 4 para los datos.

Cuando compramos un LCD de este tipo suele venir un anexo impreso que nos indica que es cada pin, por donde se alimenta y alguna información mas de vital importancia a la hora de implementar el circuito.

Page 9: Proyecto de cerradura electronica(2)

Fuente de alimentación continua.Una fuente de alimentación es un dispositivo o subsistema que convierte la corriente alterna de la red de distribución de la energía eléctrica en otro tipo de corriente eléctrica adecuado para el uso que se le vaya a dar.

Usualmente la entrada es una tensión alterna proveniente de la red eléctrica comercial y la salida es una tensión continua con bajo nivel de rizado. Constan de tres o cuatro etapas:* Sección de entrada: compuesta principalmente por un rectificador, también tiene elementos de protección como fusibles, varistores, etc. * Regulación: su misión es mantener la salida en los valores prefijados. * Salida: su misión es filtrar, controlar, limitar, proteger y adaptar la fuente a la carga a la que esté conectada.

Este tipo de fuentes puede ser tanto lineales como conmutadas.Las fuentes lineales siguen el esquema: transformador, rectificador, filtro, regulación y salida. En primer lugar el transformador adapta los niveles de tensión y proporciona aislamiento galvánico. El circuito que convierte la corriente alterna en continua se llama rectificador, después suelen llevar un circuito que disminuye el rizado como un filtro de condensador. La regulación se consigue con un componente disipativo regulable. La salida puede ser simplemente un condensador.Las fuentes conmutadas tienen por esquema: rectificador, conmutador, transformador, otro rectificador y salida. La regulación se obtiene con el conmutador, normalmente un circuito PWM (Pulse Width Modulation) que cambia el ciclo de trabajo. Aquí las funciones del transformador son las mismas que para fuentes lineales pero su posición es diferente. El segundo rectificador convierte la señal alterna pulsante que llega del transformador en un valor continuo. La salida puede ser también un filtro de condensador o uno del tipo LC.Las ventajas de las fuentes lineales son una mejor regulación, velocidad y mejores características EMC. Por otra parte las conmutadas obtienen un mejor rendimiento, menor coste y tamaño.

Relevador

También conocido como relé, es un dispositivo que controla el estado de un interruptor mediante una entrada eléctrica. En su interior, posee comúnmente una bobina que al energizarse -por Ley de Faraday- induce una fuerza magnética que cambia el estado del interruptor. Existen relevadores con interruptores normalmente (es decir sin flujo eléctrico) abiertos y normalmente cerrados. Además de esa característica también existen relevadores con múltiples entradas y múltiples interruptores. A continuación se muestran los que se manejan en VERIS:

SPST (Single Pole Single Throw, Polo Sencillo Interruptor Sencillo).- Consiste en una sola entrada de corriente y un sólo interruptor. El interruptor queda abierto o cerrado, según sean las condiciones dadas.

Page 10: Proyecto de cerradura electronica(2)

Arquitectura interna del modelo Victory 101/102/103

SPDT (Single Pole Double Throw, Polo Sencillo Interruptor Doble).- Consiste en una sola entrada de corriente y en este caso el interruptor doble consiste un interruptor que se cierra mientras que otro se abre, o como un cambio de trayectoria del circuito partiendo de una entrada común

Arquitectura interna del modelo Victory 100

DPST (Double Pole Single Throw, Polo Doble Interruptor Sencillo).- En esta configuración se tienen 2 entradas con una tierra común que pueden controlar de distintas maneras 2 interruptores simples independientes.

Arquitectura interna del modelo Victory 321/421

DPST (Double Pole Double Throw, Polo Doble Interruptor Doble).- En esta configuración se tienen 2 entradas con una tierra común que pueden controlar de distintas maneras 2 interruptores dobles independientes.

Page 11: Proyecto de cerradura electronica(2)

Arquitectura interna del modelo Victory 300

EL FUNCIONAMIENTO DEL CIRCUITO ES EL SIGUIENTE:

PARA ENTRAR:

1. En la pantalla del LCD se muestra el mensaje "INTRODUZCA CLAVE" entonces introduces la clave de acceso, que inicialmente será 0000 y pulsas la A para que se abra la puerta.

2. Cuando el código introducido no es el correcto se muestra el mensaje "CLAVE INCORRECTA" y la puerta no se abre.

3. 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.

PARA CAMBIAR LA CLAVE:

1. Pulsar la tecla C de cambio de clave, entonces aparece durante unos instantes el mensaje "CAMBIO DE CLAVE" 2. Después te pide la clave que tenias hasta ese momento (inicialmente la 0000) con el mensaje "CLAVE ANTIGUA".

Tecleas la clave y pulsas A

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

4. A continuación te pide que repitas la clave para verificarla con el mensaje "VERIFIQUE CLAVE". Tecleas de nuevo la misma clave y pulsas A. Si te equivocas te avisa y vuelves a introducir la nueva clave

5. Si la verificación es correcta se cambia la clave y se muestra el mensaje "CLAVE CAMBIADA" durante unos segundos.

LA CLAVE DE ACCESO

1. Inicialmente es la 0000 2. La calve se almacena en la memoria EEPROM de datos del PIC, por lo que, cuando se desconecte la alimentación del

circuito se conserva la clave

3. Consta de 4 códigos 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.

FOTOS.

Page 12: Proyecto de cerradura electronica(2)

F1. F2.

F3. F4.

F5. F6.

Page 13: Proyecto de cerradura electronica(2)

PROGRAMA.El programa empezará pidiendo la clave de acceso con la siguiente pantalla:Una vez introducida la combinación 1579 con el teclado, se dará el visto bueno con la siguiente pantalla:  

 

Se activará el relé asociado al electroimán o a otro mecanismo electromecánico que nos abrirá la puerta.Si la combinación no es la adecuada, nos aparecerá otra pantalla informándonos que no es la clave de acceso.    

Al cabo de unos segundos aparecerá la primera pantalla pidiéndonos la clave de acceso. El programador IC-PROG cargado con el programa cerradurra.hex , los datos 31h, 35h,37h y 39h en la zona eeprom y parámetros de programación: oscilador, fuses, etc.

             C O D I G O    A C C E S O     ?

                          (  *   *   *   *  )

                       A C C E S O    

                 OK !     OK !      OK !              

                       A C C E S O    

                 N O !     N O !      N O !              

Page 14: Proyecto de cerradura electronica(2)

Programa.

;--------------------------------------------------------------------------------------------------;Proyecto CERRADURA.;--------------------------------------------------------------------------------------------------;IMPORTANTE GRABAR EN EEPROM LOS DATOS SIGUIENTES:;POR EJEMPLO, CLAVE = 1579; EN ASCII = 31h-35h-37h,39h;fah = 31h;fbh = 35h;fch = 37h;fdh = 39h;para CLAVE de ACCESO.;---------------------------------------------------------;OSCILLATOR             = XTAL/4 MHz.;CODE PROTECT       = CP OFF;FUSES:

;WDT                         = NO;PWRT                        = SI ;BODEN                     = SI

;LVP                          = NO;CPD                         = NO;WRT                         = SI

Page 15: Proyecto de cerradura electronica(2)

;DEBURGGER           = NO;-----------------------------------------------------                LIST         p=16f84                INCLUDE <p16f84.inc>

                pagina0 macro                bcf PCLATH,4                bcf PCLATH,3                endm                pagina1 macro                bcf PCLATH,4                bsf PCLATH,3                endm                pagina2 macro                bsf PCLATH,4                bcf PCLATH,3                endm                pagina3 macro                bsf PCLATH,4                bsf PCLATH,3                endm;--------------------------------------------

                ORG 00h                goto inicio

                ORG 04h                goto int

int                nop

                retfie

                ORG 10h;--------------------------;----------------------------; I N I C I O;----------------------------

inicio

;Configuraciones de hard-soft.

;Configurar PA0-5.

                call banco1                bcf TRISA,2                bcf TRISA,5                call banco0

                bcf PORTA,2;                 off rele                bcf PORTA,5;                 off buzzer

;Configurar PB1-7 salidas.                pagina3                call pbconfig

;Configuración inicial LCD.                call lconfigI

;Configuración de trabajo LCD.

                call lconfigW                call lcdcdg;                     CODIGO                pagina0

;Activar/desactivar buzzer                call bz1                call sg1                call bz1

;------------------------;---------------;---------------;PROGRAMA;---------------;------------------------progra                pagina1                call clave;                     CLAVE DE ACCESO                pagina0

                call banco0                movlw 0ffh;                 clave buena                bcf STATUS,Z                xorwf 2fh,0                btfss STATUS,Z                goto cros                goto crosscros;                                         clave mala                call sg1                call sg1                call bz300                call sg1                call sg1                call bz300                call sg1                call sg1                call bz300                goto progracross

                 bsf PORTA,2;              on relé

fin                goto fin

;------------------------;BUZZER;------------------------bz100        bsf PORTA,5        call msg100        bcf PORTA,5        return

        bz300        bsf PORTA,5        call msg300

Page 16: Proyecto de cerradura electronica(2)

        bcf PORTA,5        return

bz1        bsf PORTA,5        call sg1        bcf PORTA,5        return

;----------------------------------;SUBRUTINAS DE CAMBIO DE BANCOS.;----------------------------------banco0        bcf STATUS,IRP        bcf STATUS,RP1        bcf STATUS,RP0       returnbanco1        bcf STATUS,IRP        bcf STATUS,RP1        bsf STATUS,RP0        returnbanco2         bsf STATUS,IRP        bsf STATUS,RP1        bcf STATUS,RP0        returnbanco3        bsf STATUS,IRP        bsf STATUS,RP1        bsf STATUS,RP0        return

;------------------------------------;Subrutinas de retardos.;-----------------------------------;0c1h=193 goto= 2 useg ;decfsz= 1 useg o 2 useg si el PC es modificicado o;la condición es verdadera;(decfsz= 1 useg) + (goto= 2 useg)= 3 useg.; 3 x 193 = 579; 579 x 579 = 335241 useg.; 335241 x 3 = 1005723 useg. sg1        call banco0        movlw 0c1h        movwf 30h        movwf 31h        movlw 03h        movwf 32hsalto1        decfsz 30h,1        goto salto1        goto recarga1salto2        decfsz 31h,1        goto salto1        goto recarga2

salto3        decfsz 32h,1        goto salto1        returnrecarga1        movlw 0c1h        movwf 30h        goto salto2recarga2        movlw 0c1h        movwf 31h        goto salto3

;----------------------;Retardo de 300 mseg.;----------------------msg300        call banco0        movlw 0c1h        movwf 30h        movwf 31h        movlw 01h        movwf 32hsato1        decfsz 30h,1        goto sato1        goto recga1sato2        decfsz 31h,1        goto sato1        goto recga2sato3        decfsz 32h,1        goto sato1        returnrecga1        movlw 0c1h        movwf 30h        goto salto2recga2        movlw 0c1h        movwf 31h        goto salto3 ;---------------------;Retardo de 100 mseg.;---------------------msg100        call banco0        movlw 0ffh        movwf 30h        movlw 96h        movwf 31hsalto4a        decfsz 30h,1        goto salto4a        decfsz 31h,1        goto salto4areturn;---------------------;Retardo de 20 mseg.;---------------------msg20

Page 17: Proyecto de cerradura electronica(2)

        call banco0        movlw 0ffh        movwf 30h        movlw 1ah        movwf 31hsalto4        decfsz 30h,1        goto salto4        decfsz 31h,1        goto salto4return;---------------------;Retardo de 6 mseg.;---------------------msg6        call banco0        movlw 0ffh        movwf 30h        movlw 08h        movwf 31hsalto41        decfsz 30h,1        goto salto41        decfsz 31h,1        goto salto41return;---------------------;Retardo de 2 mseg.;---------------------msg2        call banco0        movlw 0ffh        movwf 30h        movlw 03h        movwf 31hsalto5        decfsz 30h,1        goto salto5        decfsz 31h,1        goto salto5        return;---------------------;Retardo de 45 useg.;---------------------usg45        call banco0        movlw 0fh        movwf 30h salto6        decfsz 30h,1        goto salto6        return;-------------------------;Retardo de 150 useg.;-------------------------usg150        call banco0        movlw 32h        movwf 30h salto61        decfsz 30h,1        goto salto61

        return

;--------------------------------;---- PAGINA 1 ------------------;--------------------------------ORG 800h

;--------------------------------;Clave de acceso y cambio de la;misma.;--------------------------------clave        pagina3        call lcdcdg;                 CODIGO        pagina1        call sg1sg;                 retardo 1 seg.        call sg1sg        call bztresc;               buzzer;--------------------------        call tclcdg0;             intro nº1        call tclcdg1;             intro nº2        call tclcdg2;             intro nº3        call tclcdg3;             intro nº4

        call leerfad;               leo la combinación grabada

        call comparar;          comparo lo introducido y lo grabado

        movlw 0ffh        call banc0        bcf STATUS,Z        xorwf 2fh,0        btfss STATUS,Z        goto noaceso

        pagina3        call lcdaceso;             acceso admitido        pagina1        return

noaceso        pagina3        call lcdnoacc;             acceso denegado        pagina1        return

;-----------------------------------------;Comparar datos del teclado;con datos de la EEPROM ;para comprobar código.;-----------------------------------------comparar        call banc0        movf 66h,0        call banc1        bcf STATUS,Z        xorwf 0eah,0;             comparo 66h con eah.        btfss STATUS,Z

Page 18: Proyecto de cerradura electronica(2)

        goto malcompa

        call banc0        movf 67h,0        call banc1        bcf STATUS,Z        xorwf 0ebh,0;             comparo 67h con ebh.        btfss STATUS,Z        goto malcompa

        call banc0        movf 68h,0        call banc1        bcf STATUS,Z        xorwf 0ech,0;             comparo 68h con ech.        btfss STATUS,Z        goto malcompa

        call banc0        movf 69h,0        call banc1        bcf STATUS,Z        xorwf 0edh,0;             comparo 69h con edh.         btfss STATUS,Z        goto malcompa

        call banc0        movlw 0ffh;             cifra correcta.        movwf 2fh        returnmalcompa        call banc0        movlw 00h;            cifra incorrecta.        movwf 2fh        return

;----------------------------------------;Leer datos de la EEPROM.;---------------------------------------leerfad        call leerfa        call leerfb        call leerfc        call leerfd        returnleerfa        movlw 0fah        call leercdg        call banc1        movwf 0eah;         leo fah de la eeprom y lo guardo en eah.        call banc0        returnleerfb        movlw 0fbh        call leercdg        call banc1        movwf 0ebh;         leo fbh de la eeprom y lo guardo

en ebh.        call banc0        returnleerfc        movlw 0fch        call leercdg        call banc1        movwf 0ech;                 leo fch de la eeprom y lo guardo en ech.        call banc0        returnleerfd        movlw 0fdh        call leercdg        call banc1        movwf 0edh;                 leo fdh de la eeprom y lo guardo en edh.        call banc0        return

leercdg        call banc2        movwf EEADR        call banc3        bcf EECON1,EEPGD        bsf EECON1,RD        call banc2        movf EEDATA,0        call banc0        return

;------------------------------------------------;Teclado para código de acceso.;------------------------------------------------tclcdg0        pagina2        call teclado        pagina1        movf 2dh,0        movwf 66h;             guardo nº1 en 66h        return

tclcdg1        pagina2        call teclado        pagina1        movf 2dh,0        movwf 67h;             guardo nº2 en 67h        return

tclcdg2        pagina2        call teclado        pagina1        movf 2dh,0        movwf 68h;             guardo nº3 en 68h        return

tclcdg3

Page 19: Proyecto de cerradura electronica(2)

        pagina2        call teclado        pagina1        movf 2dh,0        movwf 69h;             guardo nº4 en 69h        return

;------------------------------------;Subrutinas del BUZZER;-----------------------------------bzcien            bsf PORTA,5            call msgcien            bcf PORTA,5            return

bztresc            bsf PORTA,5            call msgtresc            bcf PORTA,5            returnbzseg        bsf PORTA,5        call sg1sg        bcf PORTA,5        return;----------------------------------;SUBRUTINAS DE CAMBIO DE BANCOS.;----------------------------------banc0        bcf STATUS,IRP        bcf STATUS,RP1        bcf STATUS,RP0        returnbanc1        bcf STATUS,IRP        bcf STATUS,RP1        bsf STATUS,RP0        returnbanc2        bsf STATUS,IRP        bsf STATUS,RP1        bcf STATUS,RP0        returnbanc3        bsf STATUS,IRP        bsf STATUS,RP1        bsf STATUS,RP0        return;------------------------------------;Subrutinas de retardos.;------------------------------------;0c1h=193 goto= 2 useg ;decfsz= 1 useg o 2 useg si el PC es modificado o;la condición es verdadera;(decfsz= 1 useg) + (goto= 2 useg)= 3 useg.; 3 x 193 = 579; 579 x 579 = 335241 useg.; 335241 x 3 = 1005723 useg.

sg1sg        call banc0        movlw 0c1h        movwf 30h        movwf 31h        movlw 03h        movwf 32hsalto1x        decfsz 30h,1        goto salto1x        goto recarga1xsalto2x        decfsz 31h,1        goto salto1x        goto recarga2xsalto3x        decfsz 32h,1        goto salto1x        returnrecarga1x        movlw 0c1h        movwf 30h        goto salto2xrecarga2x        movlw 0c1h        movwf 31h        goto salto3x

;----------------------------------;Retardo de 300 mseg.;-----------------------------------msgtresc        call banc0        movlw 0c1h        movwf 30h        movwf 31h        movlw 01h        movwf 32hsato1x        decfsz 30h,1        goto sato1x        goto recga1xsato2x        decfsz 31h,1        goto sato1x        goto recga2xsato3x        decfsz 32h,1        goto sato1x        returnrecga1x        movlw 0c1h        movwf 30h        goto salto2xrecga2x        movlw 0c1h        movwf 31h        goto salto3x ;----------------------------------;Retardo de 100 mseg.;----------------------------------

Page 20: Proyecto de cerradura electronica(2)

msgcien        call banc0        movlw 0ffh        movwf 30h        movlw 96h        movwf 31hsalto4ax        decfsz 30h,1        goto salto4ax        decfsz 31h,1        goto salto4axreturn

;------------------------------;------ PAGINA 2 --------------;------------------------------        ORG 1000h

;--------------------------;--------------------------; TECLADO;------------------;------------------teclado        call conftcl;---------tedoc3        bcf PORTB,2        bsf PORTB,0        nop        nop        btfsc PORTB,4         goto fintcl3        btfsc PORTB,5        goto fintcl3        btfsc PORTB,6        goto fintcl3        btfsc PORTB,7        goto fintcl3        goto tedoc2

fintcl3        movf PORTB,0        movwf 2ah        andlw 07h        addlw 30h        movwf 2bh; unidades

        movf 2ah,0        movwf 2ch        swapf 2ch,0        andlw 0fh        addlw 30h        movwf 2ch; decenas

        andlw 0fh        call numero3        movwf 2dh

        call pbI3Otlc

        call bz100a        return

numero3        addwf PCL,1        retlw 3fh        retlw 3eh        retlw 39h        retlw 3fh        retlw 36h        retlw 3fh        retlw 3fh        retlw 3fh        retlw 33h        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh;---------tedoc2        bcf PORTB,0        bsf PORTB,1        nop        nop        btfsc PORTB,4         goto fintcl2        btfsc PORTB,5        goto fintcl2        btfsc PORTB,6        goto fintcl2        btfsc PORTB,7        goto fintcl2        goto tedoc1

fintcl2        movf PORTB,0        movwf 2ah        andlw 07h        addlw 30h        movwf 2bh; unidades

        movf 2ah,0        movwf 2ch        swapf 2ch,0        andlw 0fh        addlw 30h        movwf 2ch; decenas

        andlw 0fh        call numero2        movwf 2dh

        call pbI3Otlc

        call bz100a        return

numero2

Page 21: Proyecto de cerradura electronica(2)

        addwf PCL,1        retlw 3fh        retlw 30h        retlw 38h        retlw 3fh        retlw 35h        retlw 3fh        retlw 3fh        retlw 3fh        retlw 32h        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh;---------tedoc1        bcf PORTB,1        bsf PORTB,2        nop        nop        btfsc PORTB,4         goto fintcl1        btfsc PORTB,5        goto fintcl1        btfsc PORTB,6        goto fintcl1        btfsc PORTB,7        goto fintcl1

        goto tedoc3

fintcl1        movf PORTB,0        movwf 2ah        andlw 07h        addlw 30h        movwf 2bh; unidades

        movf 2ah,0        movwf 2ch        swapf 2ch,0        andlw 0fh        addlw 30h        movwf 2ch; decenas

        andlw 0fh        call numero1        movwf 2dh

        call pbI3Otlc

        call bz100a        return numero1        addwf PCL,1        retlw 3fh        retlw 3ch        retlw 37h        retlw 3fh

        retlw 34h        retlw 3fh        retlw 3fh        retlw 3fh        retlw 31h        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh        retlw 3fh

;-------------------------------------------------;Configurar Pb para teclado.;-------------------------------------------------conftcl        call banco1a        bsf OPTION_REG,NOT_RBPU        movlw 0f0h        movwf TRISB        call banco0a        bcf PORTB,0        bcf PORTB,1        bcf PORTB,2        bcf PORTB,3        return

;---------------------------------------------------------;Puerto B 7,6,5,4 y 2,1,0 = entradas y ;la 3 se queda como salida a cero para;inhabilitar la LCD.;---------------------------------------------------------pbI3Otlc        call banco1a        movlw 0f7h        movwf TRISB        call banco0a        return

;-----------------------;Buzzer;-----------------------bz100a        bsf PORTA,5        call msg100a        bcf PORTA,5        return

;---------------------;Retardo de 100 mseg.;---------------------msg100a        call banco0a        movlw 0ffh        movwf 30h        movlw 96h        movwf 31hsato4a        decfsz 30h,1        goto sato4a        decfsz 31h,1

Page 22: Proyecto de cerradura electronica(2)

        goto sato4a        return

;----------------------------------;SUBRUTINAS DE CAMBIO DE BANCOS.;----------------------------------banco0a        bcf STATUS,IRP        bcf STATUS,RP1        bcf STATUS,RP0        returnbanco1a        bcf STATUS,IRP        bcf STATUS,RP1        bsf STATUS,RP0        returnbanco2a        bsf STATUS,IRP        bsf STATUS,RP1        bcf STATUS,RP0        returnbanco3a        bsf STATUS,IRP        bsf STATUS,RP1        bsf STATUS,RP0return

;------------------------------------;----- PAGINA 3 ---------------------;------------------------------------        ORG 1800h;-------------------------------;Subrutinas de la pantalla LCD.;-------------------------------

;----------------------------;Subrutina de configuración;del puerto B(1-7 bit).;----------------------------pbconfig        call pbcontrol        call pbbusO        return

;-------------------------------------;Subrutina de configuración inicial;de la pantalla lCD.;-------------------------------------lconfigI        call mseg20        call l8xx        call mseg6        call l8xx        call useg150        call l8xx        call l4xx        call l427        call ldisplay0xx        call lclear        call lmode10

        return;----------------------------------;Subrutina de configuración de la;LCD para comenzar a trabajar.;----------------------------------lconfigW        call ldisplay10x        call lcursorder        return;---------------------------------------;Puerto B 0= entrada, 1,2 y 3 = salidas;y las pongo a cero.;---------------------------------------pbcontrol        call banco11        bsf TRISB,0        bcf TRISB,1        bcf TRISB,2        bcf TRISB,3        call banco00        bcf PORTB,1        bcf PORTB,2        bcf PORTB,3        return;------------------------------;Puerto B 4,5,6 y 7 = salidas;y las pongo a cero.;------------------------------pbbusO        call banco11        bcf TRISB,4        bcf TRISB,5        bcf TRISB,6        bcf TRISB,7        call banco00        bcf PORTB,4        bcf PORTB,5        bcf PORTB,6        bcf PORTB,7        return

;------------------------------;Puerto B 4,5,6 y 7 = entradas.;------------------------------pbbusI        call banco11        bsf TRISB,4        bsf TRISB,5        bsf TRISB,6        bsf TRISB,7        call banco00        return

;--------------------------------------;Puerto B 7,6,5,4 y 2,1,0 = entradas y ;la 3 se queda como salida a cero para;inhabilitar la LCD.;--------------------------------------pbI3O        call banco11        bsf TRISB,0        bsf TRISB,1

Page 23: Proyecto de cerradura electronica(2)

        bsf TRISB,2        bsf TRISB,4        bsf TRISB,5        bsf TRISB,6        bsf TRISB,7        call banco00        return

;--------------------------------;Pulso de habilitación del LCD.;--------------------------------lE1        nop        bcf PORTB,3        nop        bsf PORTB,3        returnlE2        nop        bcf PORTB,3        nop        return;------------;Leer dato.;------------lrd        bsf PORTB,1        bsf PORTB,2        call lE1        return;---------------;Escribir dato. ;---------------lwd        bsf PORTB,1        bcf PORTB,2        call lE1        return;----------------------------------;Leer instrucción: la bandera BF ;y el contador de direcciones. ;----------------------------------lri        bcf PORTB,1        bsf PORTB,2        call lE1        return;-----------------------;Escribir instrucción.;-----------------------lwi        bcf PORTB,1        bcf PORTB,2        call lE1        return;-------------------------;Escribir instrucciones.;-------------------------;De 20h a port B HIGH. ;;---------------------------------------;Escribir 20h HIGH en el puerto B HIGH.

;---------------------------------------w20HpbH        btfsc 20h,4        goto sal1        bcf PORTB,4sal11        btfsc 20h,5        goto sal2        bcf PORTB,5sal22        btfsc 20h,6        goto sal3        bcf PORTB,6sal33        btfsc 20h,7        goto sal4        bcf PORTB,7sal44        returnsal1        bsf PORTB,4        goto sal11sal2        bsf PORTB,5        goto sal22sal3        bsf PORTB,6        goto sal33sal4        bsf PORTB,7        goto sal44

;--------------------------------------;Escribir 20h LOW en el puerto B HIGH.;--------------------------------------w20LpbH        btfsc 20h,0        goto salt1        bcf PORTB,4salt11        btfsc 20h,1        goto salt2        bcf PORTB,5salt22        btfsc 20h,2        goto salt3        bcf PORTB,6salt33        btfsc 20h,3        goto salt4        bcf PORTB,7salt44        returnsalt1        bsf PORTB,4        goto salt11salt2        bsf PORTB,5        goto salt22salt3        bsf PORTB,6        goto salt33

Page 24: Proyecto de cerradura electronica(2)

salt4        bsf PORTB,7        goto salt44;-----------------------------------------;Escribir instrucción de "No operación".;-----------------------------------------lnop        movlw 00h        call winst        returnwinst        movwf 20h        call lwi        call w20HpbH        call lE2        call useg45

        call lwi        call w20LpbH        call lE2        call useg45        return;-------------------------------------------;Escribir inst. de limpiar display y;poner a cero el contador de direcciones.;-------------------------------------------lclear        movlw 01h        call winstt        returnwinstt        movwf 20h        call lwi        call w20HpbH        call lE2        call mseg2

        call lwi        call w20LpbH        call lE2        call mseg2        return;----------------------------------;Escribir inst. de cursor a casa.;----------------------------------lhome        movlw 02h        call winstt        return;------------------------------------;Escribir inst. de modo de entrada.;------------------------------------;------------------------------------------------------;El cursor se mueve en dirección incremental (I/D= 1);y el display se desplaza automáticamente (S= 1).;------------------------------------------------------lmode11

        movlw 07h        call winst        return;----------------------------------------------------

;El cursor se mueve incremental (I/D= 1);y el display no se desplaza automáticamente (S= 0).;----------------------------------------------------lmode10        movlw 06h        call winst        return

;----------------------------------------------;El cursor se mueve decrementalmente (I/D= 0);y el display se desplaza autom. (S= 1).;----------------------------------------------lmode01        movlw 05h        call winst        return;-----------------------------------------------;El cursor se desplaza decrementalmente (I/D=0);y el display no desplaza autom. (S=0).;-----------------------------------------------lmode00        movlw 04h        call winst        return;-----------------------------------------;Escribir inst. del control del display.;-----------------------------------------;-------------------------------------------------------------;Display on, D= 1; Cursor on, C= 1; Cursor parpadeante, B=1.;-------------------------------------------------------------ldisplay111        movlw 0fh        call winst        return;----------------------------------------------------------------;Display on, D= 1; Cursor on, C= 1; Cursor no parpadeante, B=0.;----------------------------------------------------------------ldisplay110        movlw 0eh        call winst        return;-----------------------------------------;Display on, D= 1; Cursor off, C= 0; B= x.;-----------------------------------------ldisplay10x        movlw 0ch        call winst        return;--------------------------------;Display off, D= 0; C= x; B= x.;--------------------------------ldisplay0xx        movlw 08h        call winst        return;------------------------------------------;Desplazar display o mover cursor (S/C) y ;especificar dirección (R/L).;------------------------------------------

Page 25: Proyecto de cerradura electronica(2)

;------------------------------------------;Desplazar display y no cursor (S/C=1) a;la derecha (R/L=1).;------------------------------------------ldisplayder        movlw 1ch        call winst        return;-----------------------------------------;Desplazar display y no cursor (S/C=1) a;la izquierda (R/L=0).;-----------------------------------------ldisplayizq        movlw 18h        call winst        return;------------------------------------;Mover cursor y no dispaly (S/C=0) a ;la derecha (R/L=1).;------------------------------------lcursorder        movlw 14h        call winst        return;------------------------------------;Mover cursor y no dispaly (S/C=0) a ;la izquierda (R/L=0).;------------------------------------lcursorizq        movlw 10h        call winst        return;---------------------------------------------------;Función Set.;Configurar la pantalla: bus de 4 o 8 bits (DL),;1 o 2 líneas (N) y nº de puntos (5x10 o 5x7) (F).;---------------------------------------------------l8xx        call lwi        movlw 30h        movwf 20h        call w20HpbH        call lE2        call useg45        returnl817        movlw 30h        call winst        returnl827        movlw 38h        call winst        returnl8110        movlw 34h        call winst        returnl8210        movlw 3ch        call winst        return

l4xx        call lwi        movlw 20h        movwf 20h        call w20HpbH        call lE2        call useg45        returnl417        movlw 20h        call winst        returnl427        movlw 28h        call winst        returnl4110        movlw 24h        call winst        returnl4210        movlw 2ch        call winst        return

;------------------------------------------;Subrutina para colocar datos seguidos;------------------------------------------wdato         movwf 20h        ºcall lwd        call w20HpbH        call lE2        call useg45

        call lwd        call w20LpbH        call lE2        call useg45        return;------------------------------------------;Subrutina para colocar datos en cualquier;posición de la pantalla: DDRAM address.;------------------------------------------

wdir        addlw 80h        movwf 20h        call lwi        call w20HpbH        call lE2        call useg45

        call lwi        call w20LpbH        call lE2        call useg45        return

;------------------------;Retardos para la LCD.;------------------------

Page 26: Proyecto de cerradura electronica(2)

;---------------------;Retardo de 1 seg.;---------------------

seg1        call banco0        movlw 0c1h        movwf 30h        movwf 31h        movlw 03h        movwf 32hsaltoa        decfsz 30h,1        goto saltoa        goto recargaasaltob        decfsz 31h,1        goto saltoa        goto recargabsaltoc        decfsz 32h,1        goto saltoa        returnrecargaa        movlw 0c1h        movwf 30h        goto saltobrecargab        movlw 0c1h        movwf 31h        goto saltoc

;---------------------;Retardo de 2 mseg.;---------------------mseg2        call banco00        movlw 0ffh        movwf 30h        movlw 03h        movwf 31hsalto5s        decfsz 30h,1        goto salto5s        decfsz 31h,1        goto salto5s        return

;---------------------;Retardo de 6 mseg.;---------------------mseg6        call banco00        movlw 0ffh        movwf 30h        movlw 08h        movwf 31hsalto41s        decfsz 30h,1        goto salto41s

        decfsz 31h,1        goto salto41sreturn

;---------------------;Retardo de 20 mseg.;---------------------mseg20        call banco00        movlw 0ffh        movwf 30h        movlw 1ah        movwf 31hsalto4s        decfsz 30h,1        goto salto4s        decfsz 31h,1        goto salto4s        return

;---------------------;Retardo de 45 useg.;---------------------useg45        call banco00        movlw 0fh        movwf 30h salto6s        decfsz 30h,1        goto salto6s        return

;-------------------------;Retardo de 150 useg.;-------------------------useg150        call banco00        movlw 32h        movwf 30h salto61s        decfsz 30h,1        goto salto61s        return

;----------------------------------;SUBRUTINAS DE CAMBIO DE BANCOS.;----------------------------------banco00        bcf STATUS,IRP        bcf STATUS,RP1        bcf STATUS,RP0        returnbanco11        bcf STATUS,IRP        bcf STATUS,RP1        bsf STATUS,RP0        returnbanco22        bsf STATUS,IRP        bsf STATUS,RP1

Page 27: Proyecto de cerradura electronica(2)

        bcf STATUS,RP0        returnbanco33        bsf STATUS,IRP        bsf STATUS,RP1        bsf STATUS,RP0        return

;---------------------------------;_ C O D I G O _ A C C E S O _ ?;_ _ _ _ _ / * * * * / _ _ _ _ _lcdcdg        call pbconfig        call lclear        call lhome

        movlw 20h;         call wdato         movlw 43h; C        call wdato        movlw 4fh; O        call wdato        movlw 44h; D        call wdato        movlw 49h; I        call wdato        movlw 47h; G        call wdato        movlw 4fh; 0        call wdato        movlw 20h;         call wdato        movlw 41h; A        call wdato        movlw 43h; C        call wdato        movlw 43h; C        call wdato        movlw 45h; E        call wdato        movlw 53h; S        call wdato        movlw 4fh; 0        call wdato        movlw 20h         call wdato        movlw 3fh; ?        call wdato

        movlw 45h        call wdir

        movlw 0a2h; /        call wdato        movlw 2ah; *        call wdato        movlw 2ah; *        call wdato        movlw 2ah; *        call wdato        movlw 2ah; *

        call wdato        movlw 0a3h; /        call wdato        call pbI3O        return

;-----------------------------------;_ _ _ _ A C C E S O _ _ _ _ _ _;_ _ O K ! _ O K ! _ O K ! _ _ _

lcdaceso

        call pbconfig        call lclear        call lhome

        movlw 04h        call wdir

        movlw 41h; A        call wdato        movlw 43h; C        call wdato        movlw 43h; C        call wdato        movlw 45h; E        call wdato        movlw 53h; S        call wdato        movlw 4fh; 0        call wdato

        movlw 42h        call wdir

        movlw 4fh; O        call wdato        movlw 4bh; K        call wdato        movlw 21h; !        call wdato        movlw 20h        call wdato        movlw 4fh; O        call wdato        movlw 4bh; K        call wdato        movlw 21h; !        call wdato        movlw 20h        call wdato        movlw 4fh; O        call wdato        movlw 4bh; K        call wdato        movlw 21h; !        call wdato        movlw 20h        call wdato        call pbI3O        return

Page 28: Proyecto de cerradura electronica(2)

;---------------------------------;_ _ _ _ A C C E S O _ _ _ _ _ _;_ _ N O ! _ N O ! _ N O ! _ _ _

lcdnoacc        call pbconfig        call lclear        call lhome

        movlw 04h        call wdir

        movlw 41h; A        call wdato        movlw 43h; C        call wdato        movlw 43h; C        call wdato        movlw 45h; E        call wdato        movlw 53h; S        call wdato        movlw 4fh; 0        call wdato

        movlw 42h        call wdir

        movlw 4eh; N        call wdato        movlw 4fh; O        call wdato        movlw 21h; !        call wdato        movlw 20h        call wdato        movlw 4eh; N        call wdato        movlw 4fh; O        call wdato        movlw 21h; !        call wdato        movlw 20h        call wdato        movlw 4eh; N        call wdato        movlw 4Fh; O        call wdato        movlw 21h; !        call wdato        movlw 20h        call wdato        call pbI3O        return

        END