Sistema De Seguridad Con PIC18f4550
Foller7 de Abril de 2014
2.543 Palabras (11 Páginas)1.175 Visitas
UNIVERSIDAD DEL VALLE
´´BOLIVIA´´
INFORME # 10
TRABAJO # 10
INGENIERIA DE
TELECOMUNICACIONES
MICROPROCESADORES I
ALUMNOS:
MAMANI ESTAY CARLA GIOVANNA
MELEAN ZAPATA MARCO ANTONIO
VARGAS ÁLVAREZ DANIEL ALI
LOPEZ ALFARO FREDDY
PARALELO: 6º Semestre
FECHA: 28 / 11 / 2013
LA PAZ - BOLIVIA
INFORME Nº 10
SISTEMA DE SEGURIDAD CON INTERRUPCIONES EN MIKROC
OBJETIVOS
- Diseñar software y hardware de un sistema de seguridad en MickroC
- Emplear las interrupciones del microcontrolador para montar las alarmas a ser activadas
OBJETIVO DE LA PRUEBA
Programar un algoritmo empleando las interrupciones del microcontrolador, además de generar una alerta tanto visual en una pantalla LCD como sonora (mediante un buzzer) y el uso de un teclado matricial para introducir una contraseña que finalizará la alerta.
MARCO TEORICO
Microcontrolador PIC
Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instrument.
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 CPU de 16 bits CP16000. Siendo en general una buena CPU, ésta tenía malas prestaciones de entrada y salida, y el PIC de 8 bits se desarrolló en 1975 para mejorar el rendimiento del sistema quitando peso de E/S a la CPU. El PIC utilizaba microcódigo simple almacenado en ROM 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.
Programación del PIC
El microcontrolador ejecuta el programa cargado en la memoria Flash. Esto se denomina el código ejecutable y está compuesto por una serie de ceros y unos, aparentemente sin significado. Dependiendo de la arquitectura del microcontrolador, el código binario está compuesto por palabras de 12, 14 o 16 bits de anchura. Cada palabra se interpreta por la CPU como una instrucción a ser ejecutada durante el funcionamiento del microcontrolador. Todas las instrucciones que el microcontrolador puede reconocer y ejecutar se les denominan colectivamente Conjunto de instrucciones. Como es más fácil trabajar con el sistema de numeración hexadecimal, el código ejecutable se representa con frecuencia como una serie de los números hexadecimales denominada código Hex. En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35 instrucciones diferentes
Display LCD
Una pantalla de cristal líquido o LCD (sigla del inglés liquid crystal display) es una pantalla delgada y plana formada por un número de píxeles en color o monocromos colocados delante de una fuente de luz o reflectora. Tiene la capacidad de mostrar cualquier carácter alfanumérico, permitiendo representar la información que genera cualquier equipo de una forma fácil y económica.
Las principales características de la pantalla son:
• Consumo muy reducido, del orden de 7,5mW
• Pantalla de caracteres ASCII, además de los caracteres Japoneses Kanji, caracteres Griegos y símbolos matemáticos.
• Desplazamiento de los caracteres hacia la izquierda o a la derecha.
• Memoria de 40 caracteres por línea de pantalla, visualizándose 16 caracteres por línea.
• Movimiento del cursor y cambio de su aspecto.
• Permite que el usuario pueda programar ocho caracteres.
• Pueden ser gobernados mediante conexión con bus de 4 u 8 bits.
Teclado Matricial
Un teclado matricial es un conjunto de botones (switches) dispuestos en forma de malla, de modo que no se requieran de muchas líneas para su interface. De hecho, la mayoría de los teclados (incluyendo quizá el de tu computadora) funciona con una estructura similar. En esta práctica trabajaremos con un teclado de 4×4.
Como se aprecia en la siguiente imagen, cada botón del teclado está conectado a alguna de las filas Row, por un lado; y por el otro, a alguna de las columnas Col.
Figura 1. Esquemático de un teclado matricial
Fuente: www.cursomicros.com/pantalla_lcd.htm
Por ejemplo, al presionar la tecla ‘6’ se unen las líneas Row 1 y Col 2. O sea, si sacamos un 1 (ó 0) por el pin de Row 1, también deberíamos leer un 1 (ó 0) en el pin de Col 2, o viceversa. Generalizando, solo hay un par Row-Col que identifica cada tecla.
En consecuencia, para saber cuál fue la tecla pulsada debemos sondear una a una todas las combinaciones Row-Col. Una vez detectada la condición de circuito cerrado, se usa el par Row-Col para deducir la posición de la tecla pulsada.
Decodificador
Un decodificador o descodificador es un circuito combinacional, cuya función es inversa a la del codificador, esto es, convierte un código binario de entrada (natural, BCD, etc.) de N bits de entrada y M líneas de salida (N puede ser cualquier entero y M es un entero menor o igual a 2N), tales que cada línea de salida será activada para una sola de las combinaciones posibles de entrada. Estos circuitos, normalmente, se suelen encontrar como decodificador / demultiplexor. Esto es debido a que un demultiplexor puede comportarse como un decodificador.
Si por ejemplo tenemos un decodificador de 2 entradas con 22=4 salidas, su funcionamiento sería el que se indica en la siguiente tabla, donde se ha considerado que las salidas se activen con un "uno" lógico:
Tabla de verdad para el decodificador 2 a 4
Entradas Salidas
A B D3 D2 D1 D0
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0
Un tipo de decodificador muy empleado es el de siete segmentos. Este circuito decodifica la información de entrada en BCD a un código de siete segmentos adecuado para que se muestre en un visualizador de siete segmentos.
Interrupción
En el contexto de la informática, una interrupción (del inglés Interrupt Request, también conocida como petición de interrupción) es una señal recibida por el procesador de un ordenador, indicando que debe "interrumpir" el curso de ejecución actual y pasar a ejecutar código específico para tratar esta situación.
Una interrupción es una suspensión temporal de la ejecución de un proceso, para pasar a ejecutar una subrutina de servicio de interrupción, la cual, por lo general, no forma parte del programa. Una vez finalizada dicha subrutina, se reanuda la ejecución del programa
El uC PIC18F4550 dispone de 21 fuentes de interrupciones. Se distinguen dos grupos de interrupciones:
Grupo general de interrupciones:
- Interrupción del Temporizador 0
- Interrupción externa 0
- Interrupción externa 1
- Interrupción externa 2
- Interrupción por cambio en PORTB
Grupo de interrupciones de periféricos:
- Interrupción del SPP
- Interrupción de recepción de la EUSART
- Interrupción de transmisión de la EUSART
- Interrupción del MSSP
- Interrupción del A/D
- Interrupción del CCP1
- Interrupción del Temporizador1
- Interrupción de fallo del oscilador
- Interrupción del comparador
- Interrupción del Temporizador 2
- Interrupción de escritura en Flash/EEPROM
- Interrupción de colisión de bus (MSSP)
- Interrupción del detección de anomalías en VDD
- Interrupción del USB
- Interrupción del Temporizador 3
- Interrupción del CCP2
Estas interrupciones se pueden gestionar mediante los registros incorporados en el microcontrolador:
• INTCON: registro general de control y estado.
• En función de los periféricos disponibles por una MCU:
• PIE1, PIE2 (Peripheal Interrupt Enable) habilitan las interrupciones de cada periférico.
• PIR1 y PIR2 (Peripheal Interrupt Flag Registers) identifican el periférico que interrumpe.
Para habilitar las interrupciones en si se emplean dos bits que son los que aseguran un control global de las interrupciones:
GIE/GIEH: Bit de habilitación global de las interrupciones. Su función depende del valor de IPEN:
IPEN=‘0’:
* GIE=‘0’: Interrupciones deshabilitadas a nivel global
* GIE=‘1’: Interrupciones habilitadas a nivel global
IPEN=‘1’:
* GIEH=‘0’: Interrupciones de alta prioridad deshabilitadas a nivel global
* GIEH=‘1’: Interrupciones de alta prioridad habilitadas a nivel global
– PEIE/GIEL: Bit de habilitación global de las interrupciones de periféricos. Su función depende del valor de IPEN:
IPEN=‘0’:
* PEIE=‘0’: Interrupciones de periféricos deshabilitadas a nivel global
* PEIE=‘1’: Interrupciones de periféricos habilitadas a nivel global
IPEN=‘1’:
* GIEL=‘0’: Interrupciones de baja prioridad deshabilitadas a nivel global
* GIEL=‘1’: Interrupciones de baja prioridad
...