INDICE

Anuncio
INDICE
(Faltan los planos del sistema y la programacion del PIC, ademas del apendice con las caracteristicas de los
componentes)
• Introducción
- Especificaciones iniciales
• Diagrama de bloques
- Partes del sistema:
• Microcontrolador PIC16C84
• Pantalla LCD
- teclado matricial
- Fuente de alimentación
• Lista de materiales y precios
- Planos OrCAD 4.20
Apéndice
Introducción
El sistema que vamos describir en las próximas 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 fácil 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 además se encargara de la apertura en
el caso de que la contraseña suministrada sea correcta.
Este sistema nos va a ser extremadamente útil debido a su fácil manejo por parte del usuario que solo ha
de teclear la contraseña 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. También va a estar formado por una pantalla LCD que también consta de un
microcontrolador
que controla el funcionamiento de la misma y de un teclado hexadecimal tipo matriz de dieciséis botones.
1
El equipo también 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 gráfica las cuatro partes principales de las que esta
compuesto nuestro control de acceso. En el también podemos observar las diferentes conexiones que
existen entre los diferentes módulos.
De la fuente de alimentación van a salir dos lÃ−neas destinadas al PIC y a la pantalla LCD . También
existe una conexión entre el PIC y el teclado matricial que va a ser el periférico 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 periférico 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 pulsación de la tecla “C” del teclado hexadecimal
pidiendo la contraseña al usuario. Si la contraseña 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 contraseña no es
correcta y de que lo vuelva a intentar. Si la contraseña 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 también saldrá una señal 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 caracterÃ−sticas son:
• arquitectura hardware
• utilizan el método 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 económicas (simuladores, emuladores, etc.)
• lÃ−neas de entrada y salida de alta capacidad (20 a 25 mA )
• sistema de reposo de bajo consumo “sleep”
• sistema de “perro guardián” (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 automáticamente y sé resetea cuando se
produce un corte de alimentación.
Organización de la memoria
2
Pc <12.o>
Stack level I
Stack level II
Reset vector 0000h
Periphal interruptor 0004h
3FFh
1FFh
Herramientas para el diseño con PIC
Para conseguir realizar proyectos con el microcontrolador PIC hay que disponer de algunas herramientas que
permitan implementar el sistema fÃ−sico y desarrollar el software necesario. A continuación
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 código
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 grabación de estas
instrucciones en el PIC, para ello utilizamos el programa PICSTART.
Escritura del código fuente
El código 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 carácter alfanumérico que pueden contener cualquier
información con caracteres alfanuméricos.
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 múltiples 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 más fácil manejo. En el apéndice podrá encontrar este set de instrucciones.
Oscilador RC a 4MHz
Vamos a utilizar para nuestro pic un circuito resonante de tipo HS
3
(High Speed Crystal Resonator) que es el mas común 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.
Programación del PC
En la cabecera de cualquier programa que vayamos a desarrollar con los pic hemos de poner siempre los
siguiente datos:
• Fecha de realización del programa
• Función 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 función perro guardián
• Si hemos activado o no la función de protección de código
4
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 INSTRUCCIÃ N 1MHZ
;REVISIÃ N 0:0
;VELOCIDAD DE RELOJ: 4MHZ
;PERRO GUARDIÔN: DESACTIVADO
;PROTECCIÃ N DE CÃ DIGO: 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 EQU 05h ;PUERTO A
PORTB EQU 06h ;PUERTO B
TRISA EQU 85h ;REGISTRO DE CONTROL DEL PUERTO A
TRISB EQU 86h ;REGISTRO DE CONTROL DEL PUERTO B
STATUS EQU 03h ;REGISTRO DE ESTADO
RPO EQU 05h ;REGISTRO DE ESTADO BIT CINCO
;***************************************************************************
Contador1 EQU 0Ch
Contador2 EQU 0Dh
5
Contador3 EQU 0Eh
;***************************************************************************
ORG 00h ;DIRECCIÃ N DEL VECTOR DE RESET
GOTO Inicializa ;COMIENZA EL PROGRAMA DESPUES
;DEL VECTOR DE INTERRUPCIÃ N
ORG 05h ;UNA POSICIÃ N DESPUES DE LA INTERRUPCIÃ N
Inicializa BSF STATUS,RPO ;SELECCIà N E LA PÔGINA 1
CLRF TRISB ;PUERTO B SALIDA
BCF STATUS,RPO ;VUELVE PÔGINA CERO
CLRF PORTB ;BORRA PUERTO B APAGA LED
CLRF Contador1 ;CONTADOR 1 A CERO
CLRF Contador2 ;CONTADOR 2 A CERO
Comienzo MOVLW 10h
MOVWF Contador3
INCF PORTB,f ;COLOCA A UNO EL BIT 0 PUERTO B
Retardo1 DECFSZ Contador1,f ;DECREMENTA CONTADOR1
GOTO Retardo1 ;REPITE HASTA QUE VALGA 0
DECFSZ Contador2,f
GOTO Retardo1
DECFSZ Contador3,f
GOTO Retardo1
GOTO Comienzo ;REPITE INDEFINIDAMENTE
END
Interrupciones del PIC16C84
Causas de interrupción:
El PIC16C84 tiene cuatro posibles causas de interrupción.
6
1º- activación 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º- finalización de escritura en E2PROM de datos.
Registro INTCON
Esta formado por las siguientes partes:
GIE
EEIE
TOIE
INTE
RBIE
TOIF
INTF
GIE: nos va a permitir si esta a 1 todas las interrupciones, si esta a 0 las prohibe.
RBIF
EEIE: Si es 1 permite interrupción cuando se termina de escribir en la E2PROM, si es 0 nos prohibe esta
interrupción.
TOIE: Si es 1 permite interrupción de desbordamiento del TMR0, un 0 lo anula.
INTE: Un 1 permite la interrupción al activarse la patita RB0/INT y un 0 lo prohibe.
RBIE: Un 1 permite la interrupción por cambio de estado en los bit RB7 a RB4,
TOIF: es el señalizador 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 señalizador de activación de la patita RB0/INT, se pondrá a 1 cuando se active y
permanecerá en 0 el resto del tiempo.
RBIF: es el señalizador de estado de las patitas RB7 a RB4, nos va a dar un uno cuando ocurra algún
cambio de estado en cualquiera de ellas y permanecerá a 0 el resto del tiempo que no se produzcan cambios.
El señalizador EEIF se encuentra en el bit cuatro del registro EECOM1 y nos indica si esta a 1, que la
operación de escritura en la E2PROM ha finalizado.
Archivos de registro
TMR0: Tiene un temporizador llamado TMR0 que actúa de dos maneras diferentes:
1º- como contador de sucesos que están representados por los impulsos que se aplican a la patilla
RA4/TOCK1. Al llegar al valor FF el contador se desborda activando un señalizador y provocando una
interrupción.
2º- como temporizador, en este caso se va incrementando a cada ciclo de instrucción hasta que se desborda
y pasa de FF a 00 avisando con un señalizador y provocando una interrupción.
Aparte del TMR0 existe otro temporizador que se denomina perro guardián (watchdog WDT), que se suele
utilizar habitualmente para que nuestro programa no se cuelgue.
7
Registro option: Este registro tiene como misión principal controlar el TMR0 que ocupa la posición 81 de
memoria de datos que equivale a la dirección 1 del banco 1.
RBPO
INTDG
TOCS
TOSE
PSA
PS2
PS1
PS0
PS2
PS1
PS0
Divisor del TMR0 WDT
0
0
0
1:2
1:1
0
0
1
1:4
1:2
0
1
0
1:8
1:4
0
1
1
1:16
1:8
1
0
0
1:32
1:16
1
0
1
1:64
1:32
1
1
0
1:128
1:64
1
1
1
1:256
1:128
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 división será la que indica la tabla
superior.
PSA: nos va a indicar la asignación 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 interrupción 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 lÃ−neas y con una resolución 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 caracterÃ−sticas más notorias de esta pantalla son:
• pantalla de caracteres ASCII, además de los caracteres kanji y los caracteres griegos.
• Desplazamiento de los caracteres hacia cualquiera de los dos lados.
• Proporciona la dirección de la posición absoluta o relativa del carácter.
• Memoria de 40 caracteres por lÃ−nea de pantalla.
• Movimiento del cursor y cambio de su aspecto.
• Permite que el usuario pueda programar ocho caracteres.
• Conexión 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 aplicación. Posee catorce patitas y su alimentación es de +5v, y la
regulación de contraste se hace mediante un potenciometro que nos va a dividir los 5 voltios de la
alimentación
8
Conexión de 8 bits:
• lÃ−nea RS a 0 o a 1 según se desee modo comandos o caracteres
• LÃ−nea R/W = 0m, para escritura.
• LÃ−nea E = 1, para habilitar.
• Escribir en el bus de datos del modulo LCD
• LÃ−nea E = 0
Patita numero
SÃ−mbolo
01
VSS
02
VDD
03
VEE o VEE
04
I/D o RS
05
R/W
06
E o EN
07
DB0
08
DB1
09
DB2
10
DB3
11
DB4
12
DB5
13
DB6
14
DB7
Lectura / escritura de la pantalla LCD
función
Masa
+5v
Ajuste de contraste
Selección modo
Lectura/escritura
Validación 1=0
1ª lÃ−nea de datos LSB
2ª lÃ−nea de datos
3ª lÃ−nea de datos
4ª lÃ−nea de datos
5ª lÃ−nea de datos
6ª lÃ−nea de datos
7ª lÃ−nea de datos
8ª lÃ−nea de datos MSB
La lÃ−nea 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 leÃ−do y si se coloca a nivel bajo puede
escribirse en la misma. Es importante que antes de activar esta lÃ−nea 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 continuación:
Borra pantalla: este comando nos va a hacer desaparecer todos los caracteres de la pantalla y nos va a
devolver el cursor a su posición inicial.
Cursor a casa: también devuelve la pantalla LCD a su posición original de la DDRAM, quedando su
contenido intacto.
Modo introducción: Configura la dirección del cursor I/D. Cuando I = 1 incrementa la posicion del cursor
y D = 0 realiza la operación contraria. Mientras S = 1 se especifica que hay desplazamiento de los caracteres
9
por la pantalla. Esta operación 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 posición de carácter.
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.
Función: DL nos va a indicar la longitud de datos en el interface de la pantalla N va a ser el numero de
lÃ−neas y F el tipo de caracteres que vamos a emplear.
Dirección CGRAM: coloca el dato recibido o enviado en la DDRAM después de la ejecución de ese
comando.
Bandera de ocupado BF: indica si existe una operación interna en curso y lee además la posición del
contador. Si existe una operación interna no dejara que el PIC actúe 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 leÃ−do su contenido por el PIC.
Nombre bit
I/D
S
D
C
B
S/C
R/L
DL
LINEAS
F-FUENTE
BF
Inicialización
Estado y
0= decrementa la posición 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 lÃ−nea)
0=5x7 puntos
0=puede aceptar instrucción
Funcionamiento
1=incrementa la posición 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 lÃ−neas)
1=5x10 puntos
1=operación interna en curso
Antes de comenzar a utilizar nuestra pantalla LCD ha de ser inicializada. Para ello en su programa de
inicialización debemos especificar la configuración que la pantalla va a tener. Un ejemplo tÃ−pico de
configuración podrÃ−a ser el siguiente: 8 bits de datos, dos lÃ−neas 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 lÃ−neas que tenga el modulo.
Cada lÃ−nea de la pantalla LCD tiene 40 caracteres de DDRAM de pantalla de datos asociados. Estas 40
posiciones están organizadas con un buffer de forma circular de tal forma que la ultima posición enlaza con
primera, en nuestro caso solo son visibles 16 caracteres de los 40 disponibles por cada lÃ−nea.
10
El primer caraceter escrito en la pantalla comienza en la posición 80h de la DDRAM. Al escribir otro
carácter, la dirección se incrementa automáticamente 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 lÃ−nea.
Las posiciones de pantalla que sobrepasen la posición 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 posición de la pantalla LCD usando el comando de
dirección de la DDRAM. Las igualdades han de incorporar el comando de direccionado de la DDRAM, su
situación 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 posición
actual del cursor , para ello toma como referencia la posición 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 lÃ−nea de salida en lugar de funcionar como
una matriz que es el caso que nos ocupa. Al utilizar menos lÃ−nea su principal ventaja en nuestro diseño 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 alimentación
El objetivo de la fuente de alimentación consiste en pasar de una tensión de red de 220v a una tensión
final de alimentación de 5 v que nos van a servir para alimentar toda la parte de control del circuito.
Su funcionamiento es el siguiente:
11
Partimos de una tensión de red de 220v que mediante un transformador la
a llevar a un nivel de 12 voltios de alterna.
Esta tensión de 12 voltios la vamos a rectificar mediante un puente de diodos que nos va a dar a su salida una
tensión de 12 voltios pulsatoria a una frecuencia el doble que la de red, es decir, 100 Hz.
Después de este rectificado la señal pasa por un condensador que nos va a filtrar la señal para pasarla a
un nivel de continua en torno 17 voltios. Esta señal va pasar entonces al regulador de tensión 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 pequeños condensadores de desacoplo de un valor de 100 nF a su entrada y a su
salida.
12
La fuente de alimentación posee a su salida un diodo led de color rojo para indicar que el circuito esta
funcionando, lo que también indica que la fuente se halla en perfecto estado, debido a que el mal
funcionamiento de dicho diodo significarÃ−a una averÃ−a en la parte de alimentación. Esta caracterÃ−stica
ayudarÃ−a en una futura reparación del dispositivo.
PRESUPUESTO
-LISTA DE PRECIOS
COMPONENTE
Transformador-T1
Puente de diodos-D1
C1
C2,C4
C5,C6,C7
C3
Regulador de tensión-U1
R5,R8,R9
R6
R1,R2,R3,R4
Potenciometro-R7
CRISTAL-Y1
PIC-U2
J1
J2
RED
DL1,DL2
S1
PRESUPUESTO
TOTAL
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
CONTROL DE ACCESO
13
Descargar