Está en la página 1de 17

INDICE

(Faltan los planos del sistema y la programacion del PIC, ademas del apendice con las caracteristicas de los componentes) - Introduccin - Especificaciones iniciales - Diagrama de bloques - Partes del sistema: Microcontrolador PIC16C84 Pantalla LCD

- teclado matricial - Fuente de alimentacin - Lista de materiales y precios - Planos OrCAD 4.20 Apndice

Introduccin El sistema que vamos describir en las prximas paginas va a ser un sistema de seguridad que nos va a proteger una puerta de accesos no deseados mediante una clave. Esta clave va a ser introducida mediante un teclado hexadecimal de fcil uso por parte del usuario y visualizada en una pantalla lcd que nos va a indicar si el acceso a sido concedido o denegado. Nuestro sistema adems se encargara de la apertura en el caso de que la contrasea suministrada sea correcta. Este sistema nos va a ser extremadamente til debido a su fcil manejo por parte del usuario que solo ha de teclear la contrasea suministrada por el sistema para acceder al recinto. Protegiendo as el acceso a sus bienes o restringiendo el paso a determinadas estancias o recintos. Control de acceso

Especificaciones iniciales
El conjunto del equipo del sistema de acceso va a estar formado Principalmente por un microcontrolador tipo PIC donde va a estar grabado el programa de funcionamiento de todo el sistema. Tambin va a estar formado por una pantalla LCD que tambin consta de un microcontrolador que controla el funcionamiento de la misma y de un teclado hexadecimal tipo matriz de diecisis botones. El equipo tambin consta de un interface que va a unir el sistema de control al sistema de apertura de la puerta que va a ser de mas potencia que el de control. As todo el sistema va a constar de las siguientes partes: - microcontrolador PIC16C84 - pantalla LCD de 32 por 2 caracteres teclado matricial hexadecimal

Diagrama de bloques

Este diagrama de bloques nos va a indicar de manera grfica las cuatro partes principales de las que esta compuesto nuestro control de acceso. En el tambin podemos observar las diferentes conexiones que existen entre los diferentes mdulos. De la fuente de alimentacin van a salir dos lneas destinadas al PIC y a la pantalla LCD . Tambin existe una conexin entre el PIC y el teclado matricial que va a ser el perifrico que nos comunique con el usuario, este teclado ser el encargado de recibir las instrucciones que nos va a dar el usuario cuando pretenda entrar al recinto. De este mismo PIC vamos a dar salida al otro perifrico que nos comunica con el usuario, la pantalla LCD que va a ser la encargada de decir al usuario que su acceso ha sido concedido o denegado. El sistema se pondr en funcionamiento mediante la pulsacin de la tecla C del teclado hexadecimal pidiendo la contrasea al usuario. Si la contrasea suministrada es correcta la pantalla lanzara el mensaje de que el acceso ha sido concedido, si no es correcta aparecer el mensaje de que la contrasea no es correcta y de que lo vuelva a intentar. Si la contrasea es introducida tres veces de forma incorrecta el sistema se apagara y se deber pulsar C para volver a iniciar el programa. De nuestro PIC que es el cerebro del sistema tambin saldr una seal que mediante un rel se encargara de activar el circuito de potencia que nos abrir la puerta. PIC16C84 Su nombre viene de la abreviatura del ingles de periphal interface controller y son fabricados por la empresa Arizona Microchip Tecnology. Sus principales caractersticas son: - arquitectura hardware - utilizan el mtodo PIPE-LINE - todas las instrucciones tienen la misma longitud - todas las instrucciones son ortogonales. Se puede acceder a cualquier registro y se utiliza el registro w - procesador RISC - arquitectura basada en bancos - gran cantidad de modelos - herramientas de soporte econmicas (simuladores, emuladores, etc.) - lneas de entrada y salida de alta capacidad (20 a 25 mA ) - sistema de reposo de bajo consumo sleep

- sistema de perro guardin (warchdog) que sirve para controlar que el microcontrolador no se meta en un bucle cerrado y que le de un reset - sistema POR (power on reset), el sistema conmuta automticamente y s resetea cuando se produce un corte de alimentacin.

Organizacin de la memoria
Pc <12.o> Stack level I Stack level II Reset vector 0000h

Periphal interruptor 0004h 3FFh 1FFh Herramientas para el diseo con PIC Para conseguir realizar proyectos con el microcontrolador PIC hay que disponer de algunas herramientas que permitan implementar el sistema fsico y desarrollar el software necesario. A continuacin especificaremos los diferentes pasos que hemos seguido en el desarrollo de nuestro proyecto. 1 Editamos el programa que va a seguir el pic, el cual adjuntamos en este apartado del proyecto. 2 Ensamblamos el programa fuente anteriormente compilado el cual tenemos que convertir a cdigo maquina fuente editado con el ensamblador de Microchip MPASM. 3 Simulamos el programa comprobando que es correcto, esto lo realizamos con el compilador MPASM. 4 Una vez depurados los posibles errores que pudiera tener procedemos a la grabacin de estas instrucciones en el PIC, para ello utilizamos el programa PICSTART. Escritura del cdigo fuente

El cdigo fuente del lenguaje ensamblador esta estructurado en columnas. Cualquier texto que comience en la primera columna se considera una etiqueta y es una parte del campo de etiquetas. Las siguientes tres columnas contienen el campo de instrucciones, el campo de datos y el campo de comentarios. Los comentarios deben de empezar con ; y pueden ir tambien en la primera columna. Campo de etiquetas El programa MPASM nos va a permitir etiquetas de hasta 32 caracteres y puede ir seguida de : , espacios, tabuladores o reglas. Deben de empezar con un carcter alfanumrico que pueden contener cualquier informacin con caracteres alfanumricos. Campo de datos Los datos pueden ser un registro, un bit de un registro, una etiqueta o un numero constante llamado literal. Algunas instrucciones no llevan datos y cuando llevan mltiples datos deben separarse por comas. Set de instrucciones El set de instrucciones del microprocesador PIC16C84 es un conjunto de instrucciones que consta aproximadamente con unas cincuenta instrucciones, lo que lo convierte en uno de los que menos instrucciones posee y su por tanto de ms fcil manejo. En el apndice podr encontrar este set de instrucciones. Oscilador RC a 4MHz Vamos a utilizar para nuestro pic un circuito resonante de tipo HS (High Speed Crystal Resonator) que es el mas comn para frecuencias superiores a 4 Mhz como es el caso que nos ocupa, el montaje que vamos a emplear en nuestro proyecto es el siguiente.

Circuito reset del PIC16C84 El circuito reset del pic va estar formado va a estar formado por una resistencia de 10K y otra 100 unida al pic atraves de su patilla de reset y todo ello conectado a masa atraves de un pulsador que va a ser el boton de reset del circuito.

Programacin del PC En la cabecera de cualquier programa que vayamos a desarrollar con los pic hemos de poner siempre los siguiente datos: - Fecha de realizacin del programa - Funcin que va a realizar el programa - Tipo de procesador que vamos a emplear - Nombre del programa - Nombre del realizador de dicho programa - Frecuencia a la que va a funcionar el circuito - Si hemos o no activado la funcin perro guardin - Si hemos activado o no la funcin de proteccin de cdigo Ejemplo de programa para pic:
;PRIMER PROGRAMA DE PIC ;CONTADOR DE 0 A 255 SACANDO EL DATO BINARIO A LOS LED ;13 DE NOVIEMBRE DE 1988. ;CUENTA.ASM ;PROGRAMA PARA PIC16C84 ;RELOS DE INSTRUCCIN 1MHZ ;REVISIN 0:0 ;VELOCIDAD DE RELOJ: 4MHZ

;PERRO GUARDIN: DESACTIVADO ;PROTECCIN DE CDIGO: OFF LIST P=16C84

;*********************************IGUALDADES******************************** ;************************IGUALDADES QUE DESIGNA LOS DESTINOS**************** w EQU 0 f EQU 1 ;*****************IGUALDADES DE LA UCP Y DEL MAPA DE MEMORIA**************** PORTA PORTB TRISA TRISB B STATUS ESTADO RPO EQU 05h ;REGISTRO DE ESTADO BIT CINCO EQU 03h ;REGISTRO DE EQU 05h ;PUERTO A EQU 06h ;PUERTO B EQU 85h ;REGISTRO DE CONTROL DEL PUERTO A EQU 86h ;REGISTRO DE CONTROL DEL PUERTO

;*************************************************************************** Contador1 Contador2 Contador3 EQU 0Ch EQU 0Dh EQU 0Eh

;*************************************************************************** ORG GOTO ORG INTERRUPCIN Inicializa BSF CLRF BCF CLRF CLRF CLRF MOVLW MOVWF INCF PUERTO B STATUS,RPO ;SELECCIN E LA PGINA 1 TRISB ;PUERTO B SALIDA STATUS,RPO ;VUELVE PGINA CERO PORTB ;BORRA PUERTO B APAGA LED Contador1 ;CONTADOR 1 A CERO Contador2 ;CONTADOR 2 A CERO 10h Contador3 PORTB,f ;COLOCA A UNO EL BIT 0 00h Inicializa 05h ;DIRECCIN DEL VECTOR DE RESET ;COMIENZA EL PROGRAMA DESPUES ;DEL VECTOR DE INTERRUPCIN ;UNA POSICIN DESPUES DE LA

Comienzo

Retardo1

DECFSZ GOTO DECFSZ GOTO DECFSZ GOTO GOTO END

Contador1,f ;DECREMENTA CONTADOR1 Retardo1 ;REPITE HASTA QUE VALGA 0 Contador2,f Retardo1 Contador3,f Retardo1 Comienzo ;REPITE INDEFINIDAMENTE

Interrupciones del PIC16C84


Causas de interrupcin: El PIC16C84 tiene cuatro posibles causas de interrupcin. 1- activacin de la patita RB0/INT 2- por desbordamiento del TMR0 3- por cambio de estado en una de las cuatro patitas de mas peso del puerto b. 4- finalizacin de escritura en E2PROM de datos.

Registro INTCON
Esta formado por las siguientes partes: GIE EEIE TOIE INTE RBIE TOIF INTF RBIF

GIE: nos va a permitir si esta a 1 todas las interrupciones, si esta a 0 las prohibe. EEIE: Si es 1 permite interrupcin cuando se termina de escribir en la E2PROM, si es 0 nos prohibe esta interrupcin. TOIE: Si es 1 permite interrupcin de desbordamiento del TMR0, un 0 lo anula. INTE: Un 1 permite la interrupcin al activarse la patita RB0/INT y un 0 lo prohibe. RBIE: Un 1 permite la interrupcin por cambio de estado en los bit RB7 a RB4, TOIF: es el sealizador de sobrepasamiento del TMR0. Se va a poner a 1 cuando haya ocurrido el desbordamiento y permanecer a 0 mientras no ocurra el mencionado desbordamiento. INTF: es el sealizador de activacin de la patita RB0/INT, se pondr a 1 cuando se active y permanecer en 0 el resto del tiempo.

RBIF: es el sealizador de estado de las patitas RB7 a RB4, nos va a dar un uno cuando ocurra algn cambio de estado en cualquiera de ellas y permanecer a 0 el resto del tiempo que no se produzcan cambios. El sealizador EEIF se encuentra en el bit cuatro del registro EECOM1 y nos indica si esta a 1, que la operacin de escritura en la E2PROM ha finalizado.

Archivos de registro
TMR0: Tiene un temporizador llamado TMR0 que acta de dos maneras diferentes: 1- como contador de sucesos que estn representados por los impulsos que se aplican a la patilla RA4/TOCK1. Al llegar al valor FF el contador se desborda activando un sealizador y provocando una interrupcin. 2- como temporizador, en este caso se va incrementando a cada ciclo de instruccin hasta que se desborda y pasa de FF a 00 avisando con un sealizador y provocando una interrupcin. Aparte del TMR0 existe otro temporizador que se denomina perro guardin (watchdog WDT), que se suele utilizar habitualmente para que nuestro programa no se cuelgue. Registro option: Este registro tiene como misin principal controlar el TMR0 que ocupa la posicin 81 de memoria de datos que equivale a la direccin 1 del banco 1. RBPO PS2 0 0 0 0 1 1 1 1 INTDG TOCS PS1 0 0 1 1 0 0 1 1 TOSE PS0 0 1 0 1 0 1 0 1 PSA PS2 Divisor del TMR0 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256 PS1 WDT 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128 PS0

Debido a que la frecuencia de reloj puede ser muy elevado existe la posibilidad de dividir la frecuencia que ataca al TMR0 dependiendo de lo que haya en PS2, PS1 y PS0 la divisin ser la que indica la tabla superior. PSA: nos va a indicar la asignacin del divisor de frecuencia, con un uno se le asigna WDT y con un cero a TMR0. TOSE: nos indica el tipo de flanco en TOCK1, con un uno se incrementa el TMR0 en la flanco descendente y con un cero en el ascendente. TOCS: nos indica el tipo de reloj del TMR0, uno con pulsos introducidos atraves de TOCK1 y con cero con el reloj interno. INTEDOG: nos da el flanco activo de interrupcin externa, uno en el ascendente y cero en el descendente. RBP0: conecta resistencias PULL-UP en el puerto B, con uno se desactivan y con cero se activan. Pantalla LCD El modulo visualizador LCD que vamos a utilizar en este proyecto se compone de una pantalla de cristal liquido que consta de una matriz de 16 caracteres por dos lneas y con una resolucin de 5x7 pixeles. Esta pantalla va a estar gobernada por un microcontrolador modelo Hitachi 44780 que es uno de los mas utilizados por este tipo de pantallas. Las caractersticas ms notorias de esta pantalla son: - pantalla de caracteres ASCII, adems de los caracteres kanji y los caracteres griegos. - Desplazamiento de los caracteres hacia cualquiera de los dos lados. - Proporciona la direccin de la posicin absoluta o relativa del carcter. - Memoria de 40 caracteres por lnea de pantalla. - Movimiento del cursor y cambio de su aspecto. - Permite que el usuario pueda programar ocho caracteres. - Conexin a un procesador usando un interface de 4 u 8 bis. El consumo del modulo es muy reducido apenas de 7,5 mW y su manejo lo hace ideal para nuestra aplicacin. Posee catorce patitas y su alimentacin es de +5v, y la regulacin de contraste se hace mediante un potenciometro que nos va a dividir los 5 voltios de la alimentacin Conexin de 8 bits:

lnea RS a 0 o a 1 segn se desee modo comandos o caracteres Lnea R/W = 0m, para escritura. Lnea E = 1, para habilitar. Escribir en el bus de datos del modulo LCD Lnea E = 0

Patita numero 01 02 03 04 05 06 07 08 09 10 11 12 13 14

Smbolo VSS VDD VEE o VEE I/D o RS R/W E o EN DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7

funcin Masa +5v Ajuste de contraste Seleccin modo Lectura/escritura Validacin 1=0 1 lnea de datos LSB 2 lnea de datos 3 lnea de datos 4 lnea de datos 5 lnea de datos 6 lnea de datos 7 lnea de datos 8 lnea de datos MSB

Lectura / escritura de la pantalla LCD La lnea R/W determina cuando vamos a leer o a escribir en la pantalla LCD. As cuando se coloca a nivel alto el contenido de la memoria RAM de la LCD puede ser ledo y si se coloca a nivel bajo puede escribirse en la misma. Es importante que antes de activar esta lnea hemos de mandar un impulso de habilitacion al modulo para que comience a actuar. La pantalla LCD consta de varios comandos que vamos a explicar a continuacin:

Borra pantalla: este comando nos va a hacer desaparecer todos los caracteres de la pantalla y nos va a devolver el cursor a su posicin inicial. Cursor a casa: tambin devuelve la pantalla LCD a su posicin original de la DDRAM, quedando su contenido intacto. Modo introduccin: Configura la direccin del cursor I/D. Cuando I = 1 incrementa la posicion del cursor y D = 0 realiza la operacin contraria. Mientras S = 1 se especifica que hay desplazamiento de los caracteres por la pantalla. Esta operacin se realiza durante la escritura de los datos. Pantalla ON/OFF: coloca en movimiento el cursor en la pantalla de diferentes maneras, D lo hace por toda la pantalla, C cursor on-off y B hace parpadear al cursor en la posicin de carcter. Desplazamiento cursor/pantalla: S/C indica el movimiento del cursor o desplazamiento de la pantalla, dependiendo de R/L lo hace hacia la izquierda o hacia la derecha. El contenido de la DDRAM permanece en todo caso inalterado. Funcin: DL nos va a indicar la longitud de datos en el interface de la pantalla N va a ser el numero de lneas y F el tipo de caracteres que vamos a emplear. Direccin CGRAM: coloca el dato recibido o enviado en la DDRAM despus de la ejecucin de ese comando. Bandera de ocupado BF: indica si existe una operacin interna en curso y lee adems la posicin del contador. Si existe una operacin interna no dejara que el PIC acte sobre la DDRAM. Escribe DDRAM: habilita la DDRAM para que se pueda escribir sobre ella. Lee DDRAM: lo contrario, la habilita para que pueda ser ledo su contenido por el PIC. Nombre bit I/D S D C B S/C R/L DL LINEAS Estado y 0= decrementa la posicin del cursor 0=sin desplazamiento 0=pantalla off 0= cursor off 0=parpadeo del cursor off 0=mueve el cursor 0=desplaza a la derecha 0=interface de 4 bits O=1/8 o 1/11 (una Funcionamiento 1=incrementa la posicin del cursor 1=con desplazamiento 1=pantalla on 1=cursor on 1=parpadeo del cursor on 1=desplaza la pantalla 1=desplaza a la izquierda 1=interface de 8 bits 1=1/16 (dos lneas)

F-FUENTE BF

lnea) 0=5x7 puntos 0=puede aceptar instruccin

1=5x10 puntos 1=operacin interna en curso

Inicializacin Antes de comenzar a utilizar nuestra pantalla LCD ha de ser inicializada. Para ello en su programa de inicializacin debemos especificar la configuracin que la pantalla va a tener. Un ejemplo tpico de configuracin podra ser el siguiente: 8 bits de datos, dos lneas de pantalla y 16 caracteres con una matriz de 5x7. Direccionado La DDRAM de las pantallas LCD no tiene un direccionamiento continuo y lineal pues el mapa depende de los caracteres y lneas que tenga el modulo. Cada lnea de la pantalla LCD tiene 40 caracteres de DDRAM de pantalla de datos asociados. Estas 40 posiciones estn organizadas con un buffer de forma circular de tal forma que la ultima posicin enlaza con primera, en nuestro caso solo son visibles 16 caracteres de los 40 disponibles por cada lnea. El primer caraceter escrito en la pantalla comienza en la posicin 80h de la DDRAM. Al escribir otro carcter, la direccin se incrementa automticamente a 81h ya que esta establecido el modo entrada para incrementar. Los siguientes caracteres rellenan posiciones sucesivas hasta A7h y eventualmente puede volver a C0h en la segunda lnea. Las posiciones de pantalla que sobrepasen la posicin 8Fh no son visibles, para hacer visibles estos caracteres el contenido de la pantalla puede ser desplazado a la izquierda o la derecha.

Direccionamiento absoluto Los caracteres pueden escribirse en una determinada posicin de la pantalla LCD usando el comando de direccin de la DDRAM. Las igualdades han de incorporar el comando de direccionado de la DDRAM, su situacin por defecto esta situada al principio de la memoria.

Direccionamiento relativo Los movimientos de los caracteres pueden realizarse hacia la izquierda y hacia la derecha de la posicin actual del cursor , para ello toma como referencia la posicin actual del cursor y partir de ah realiza el desplazamiento. Teclado matricial En nuestro proyecto vamos a utilizar un teclado matricial en lugar de los teclados de tipo lineal que tienen como principal desventaja el hecho de cada tecla tiene su propia lnea de salida en lugar de funcionar como una matriz que es el caso que nos ocupa. Al utilizar menos lnea su principal ventaja en nuestro diseo es que lo podremos controlar utilizando solo un puerto del pic. No necesitaremos de resistencias externas para el control de la intensidad del teclado ya que estas van incluidas en el propio teclado matricial.

Fuente de alimentacin
El objetivo de la fuente de alimentacin consiste en pasar de una tensin de red de 220v a una tensin final de alimentacin de 5 v que nos van a servir para alimentar toda la parte de control del circuito. Su funcionamiento es el siguiente:

Partimos de una tensin de red de 220v que mediante un transformador la a llevar a un nivel de 12 voltios de alterna.

Esta tensin de 12 voltios la vamos a rectificar mediante un puente de diodos que nos va a dar a su salida una tensin de 12 voltios pulsatoria a una frecuencia el doble que la de red, es decir, 100 Hz.

Despus de este rectificado la seal pasa por un condensador que nos va a filtrar la seal para pasarla a un nivel de continua en torno 17 voltios. Esta seal va pasar entonces al regulador de tensin que nos va filtrar y estabilizar este nivel a 5 voltios de continua. Este regulador que es un LM7805 necesita para su funcionamiento de dos pequeos condensadores de desacoplo de un valor de 100 nF a su entrada y a su salida.

La fuente de alimentacin posee a su salida un diodo led de color rojo para indicar que el circuito esta funcionando, lo que tambin indica que la fuente se halla en perfecto estado, debido a que el mal funcionamiento de dicho diodo significara una avera en la parte de alimentacin. Esta caracterstica ayudara en una futura reparacin del dispositivo.

PRESUPUESTO
-LISTA DE PRECIOS

CONTROL DE ACCESO
COMPONENTE Transformador-T1 Puente de diodos-D1 C1 C2,C4 C5,C6,C7 C3 Regulador de tensin-U1 R5,R8,R9 R6 R1,R2,R3,R4 Potenciometro-R7 CRISTAL-Y1 PIC-U2 J1 J2 RED DL1,DL2 S1 VALOR 220\12 B250C 470uf 100nf 27pf 22pf LM7805 100 10k 2k2 15k 4MHz 16C84 LCD-CON14 TECLADO-CON8 CON2 LED PULSADOR CANTIDAD 1 1 1 2 3 1 1 3 1 4 1 1 1 1 1 1 2 1 PRECIO 1.219 Pts 27 Pts 179 Pts 36 Pts 55 Pts 55 Pts 124 Pts 7 Pts 7 Pts 7 Pts 7 Pts 77 Pts 900 Pts 5.484 Pts 2.075 Pts 25 Pts 10 Pts 33 Pts 10.518 Pts

PRESUPUESTO TOTAL

También podría gustarte