los recursos que se considerarán son : interrupciones …fsantiag/pics/sesion 5.pdf ·...
TRANSCRIPT
1
1
RECURSOS AUXILIARES
Los recursos que se considerarán son :
• Interrupciones
• Re inicialización o Reset
• Modo de reposo o de bajo consumo
2
INTERRUPCIONES
Una interrupción es la ocurrencia de una condición –un evento-
que ocasiona la suspensión temporal de un programa mientras se
atiende al evento con otro programa. Una vez que se concluya la
atención a la interrupción, se continúa con la ejecución del
programa principal.
Al utilizar un sistema manejador de interrupciones, se tiene la
ilusión de que se están haciendo diferentes tareas en forma
simultánea.
Al programa que trata con una interrupción se le conoce como
rutina de servicio a la interrupción (ISR) o manejador de
interrupción.
La rutina de atención para una interrupción debe colocarse en una
dirección pre-establecida por Hardware, formando parte de un
vector de interrupciones.
2
3
INTERRUPCIONES
Un aspecto importante, es que los eventos pueden ocurrir en cualquier
momento, es decir, en forma asíncrona.
Programa principal
Programa sin interrupciones
Tiempo
Principal
Programa con interrupciones
Tiempo
RSI
Principal
RSI
Principal
RSI
Principal
Nivel de la
Interrupción
Nivel
Base
* ***** *
**
* Interrupción
** Instrucción de retorno de interrupción
4
INTERRUPCIONES EN LOS PICS
Se tienen 4 fuentes de Interrupción:
Interrupción externa a través de la terminal RB0/INT
Por sobre flujo del temporizador TMR0
Por cambios en las terminales 4:7 del puerto B (RB4:RB7)
Al completar una escritura en la EEPROM
El vector de interrupciones es único y está ubicado en la dirección
4 de la memoria de código.
Por software deberá investigarse la fuente de interrupción, para
atenderse. Y también deberá definirse la prioridad de atención, en
caso de que se genere mas de una interrupción en forma
simultánea.
3
5
INTERRUPCIONES EN LOS PICS
El registro INTCON (0x0B) permite habilitar a cada una de las
interrupciones, además de que contiene un habilitador global (GIE,
INTCON<7>).
Cuando ocurre una interrupción:
Se concluye con la instrucción que en ese momento se esté
ejecutando
GIE es puesto en bajo para evitar interrupciones futuras
En la pila se guarda la dirección de la instrucción siguiente
El PC se carga con el valor 0004h, para dar atención a la interrupción.
La instrucción RETFIE finaliza la atención a la interrupción,
provoca que el PC extraiga al tope de la pila y pone a GIE en alto.
6
REGISTRO INTCON
4
7
RELACION LOGICA DE LAS INTERRUPCIONES
8
EXPLORANDO LA CAUSA DE LA INTERRUPCION
Puesto que son 4 las causas posibles de una interrupción, por Software
deberá hacerse la decodificación, como se muestra en el siguiente código:
ORG 0x0004
GOTO Interrup
...........
Interrup:
BTFSC INTCON, 1
CALL INTE ; Atiende la interrupción externa
BTFSC INTCON, 2
CALL TIMER ; Atiende la Interrupción del Timer
BTFSC INTCON, 0
CALL PUERTAB ; Atiende la interrupción del Puerto B
BSF STATUS, 5 ; Cambia al Banco 1
BTFSC EECON1, 4
CALL EEPROM ; Atiende la interrupción de la EEPROM
BSF STATUS, 5 ; Regresa al Banco 0
RETFIE
La prioridad en las interrupciones se define con el orden de atención a las
distintas fuentes de interrupción.
5
9
Ejemplo : Manejo de Interrupciones
(Alarma para automóvil)
PIC16F84
RB4
RB5
RB6
RB7
Botones para
cada una
de las puertas
RB0Habilitador
de la Alarma
RA0
Tono de 250 Hz
10
REINICIALIZACION O RESET
Los PIC16X8X tienen cinco causas que provocan la reinicialización
del sistema, que consiste en cargar al PC con el valor 000h (Vector
de reset) y poner los estados de los bits de los registros especiales
(SFR) con un valor conocido.
Conexión de alimentación. POR (Power On Reset)
Activación de la terminal MCLR (Master Clear Reset) en
funcionamiento normal
Activación de la terminal MCLR (Master Clear Reset) en estado de
reposo
Desbordamiento del WDT en funcionamiento normal
Desbordamiento del WDT en modo de reposo
6
11
VALORES DE LOS SFR Y W DESPUÉS DE UN RESET
12
ESQUEMA ELECTRONICO PARA LA GENERACION DEL RESET
7
13
SEÑALES QIE INTERVIENEN EN EL RESET
Caso 1
Caso 2
MCLR no cambia junto con VDD
14
MCLR cambia junto con VDD
SEÑALES QIE INTERVIENEN EN EL RESET
8
15
EL MODO DE REPOSO O BAJO CONSUMO
Está caracterizado por el bajo consumo de energía y es
recomendado para aquellas aplicaciones que estén en espera de
que suceda algún suceso asíncrono.
El consumo típico de un PIC es de 2 mA, reduciéndose a 10 uA en
modo de reposo, una pila puede tardar hasta 2 años.
Para entrar al modo de reposo se ejecuta la instrucción SLEEP, el
sistema queda congelado por que el oscilador interno se detiene y
los puertos mantienen su estado.
Se sugiere conectar las terminales no usadas a Vdd para evitar
fugas de corriente.
16
EL MODO DE REPOSO O BAJO CONSUMO
Para salir del modo de reposo existen tres alternativas:
Activación externa del MCLR para provocar un Reset.
Desbordamiento del WDT si se quedo operando en el modo de reposo
Generación de una interrupción. Pero como TMR0 está detenido, sólo
pueden producirse los otros tres tipos de interrupción.
Cuando se despierta al PIC, se desarrolla la secuencia del
oscilador OST, que tarda 1.024 Tosc para estabilizar la frecuencia
de trabajo, y luego se pasa a ejecutar la siguiente instrucción a
SLEEP (PC + 1).
9
17
PROGRAMACIÓN EN SERIE DE LOS PICS 16X8X
Los PIC permiten que se grabe su memoria de código sobre el
mismo circuito de la aplicación.
Esto permite a los fabricantes de productos finales el armado de
tarjetas con el microcontrolador sin grabar, para que en el
momento de la venta se incluya la versión mas actualizada.
La programación en serie requiere de 5 líneas:
Reloj de sincronización (RB6)
Línea serial de datos (RB7)
Voltaje de alimentación (Vdd)
Nivel de referencia o tierra (Vss)
Voltaje de programación (entre 12 y 14 V) (MCLR*/Vpp)
18
PROGRAMACIÓN EN SERIE DE LOS PICS 16X8X