Interrupciones PIC16F84

Páginas: 5 (1181 palabras) Publicado: 23 de marzo de 2014
INTERRUPCIONES
El manejo de interrupciones es una técnica de programación, basada en un mecanismo automático en el hardware del microcontrolador, que permite dar atención a algún periférico interno o externo, únicamente en el momento en que ésta se requiera. Una interrupción es en realidad una llamada a una subrutina, pero iniciada por el harware del propio periférico y no por la instrucción"CALL". La interrupción puede ocurrir en cualquier instante.
Al generarse la señal de interrupción, el microcontrolador termina primero la ejecución de la instrucción que se esté procesando en ese momento, guarda en el STACK ó PILA la dirección de memoria de código de la siguiente instrucción y posteriormente hace un llamado a la "subrutina de atención de interrupciones", cuyo inicio siempre seencuentra en la dirección 04H de la memoria de código, en el caso de los microcontroladores 16F84/F628/F88.
Hay dos tipos de interrupciones posibles,
1. - Mediante una acción interna. El desbordamiento de la Pila (Stack) por una operación indebida, por ejemplo: \
·Al completarse la escritura de datos en una EEPROM.
·Por desbordamiento del registro TMR0 al rebasar el valor 255 (FFh) a 0.
2. -Mediante una acción externa, la más útil. Al producirse un cambio del nivel en uno de sus pines por una acción externa.
·Estando en el modo de reposo (SLEEP), un cambio de nivel en el pin RB0/INT .
·Un cambio de nivel en uno de los pines  RB4 a RB7 estando configurados como entrada
En el PIC 16f84 hay 4 fuentes de interrupciones:
Por el pin RB0/INT, que regresa al PIC del modo SLEEP(interrupción externa).
Por los pines RB4 a RB7, configurados como entrada y en caso de que alguno de ellos cambie de estado (interrupción externa).
Por desbordamiento del registro TMR0, cuando este registro pasa de 255 a 0 en decimal ó 0xFF a 0x00 en hexa (interrupción interna).
Al completar la escritura de la EEPROM de datos (interrupción interna).
El tema es que, debe haber algo que nos indique lafuente de interrupción que se ha producido, y estas son las banderas de interrupciones, cada interrupción tiene su propia bandera y es un bit del registro INTCON, que cambia de estado de 0 a 1 cuando se produce la interrupción, salvo la última que se encuentra en el registro EECON1

BANDERAS:
Para RB0/INT la bandera es INTF (Bit1)
Parar los pines RB4 a RB7, es RBIF (Bit0)
Para TMR0, es T0IF (Bit2)Para la EEPROM, es EEIF (Bit4) en el registro EECON1.
Bien, ahora veremos todo esto en el registro INTCON:
REGISTRO INTCON
GIE
EEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF









Detalles de cada Bit del registro INTCON.
BIT's
L ó E
Reset
Descripción
Bit 7: GIE
Habilitación General.
L/E
0
1 = Todas las Interrupciones activadas
0 = Todas las Interrupciones desactivadas
Bit6: EEIE
Int. de Periféricos
L/E
0
1 = Activada
0 = Desactivada
Bit 5: T0IE
Int. del TMR0
L/E
0
1 = Activada
0 = Desactivada
Bit 4: INTE
Int. Externa
L/E
0
1 = Activada
0 = Desactivada
Bit 3: RBIE
Int. por PORTB
L/E
0
1 = Activada
0 = Desactivada
Bit 2: T0IF
Bandera del TMR0.
L/E
0
1 = TMR0 desbordado.
0 = No se ha desbordado
Bit 1: INTF
Bandera - RB0/INT
L/E
0
1 =Ocurrió una interrupción externa
0 = No ha ocurrido interrupción externa
Bit 0: RBIF
Bandera - RB4:RB7
L/E
x
1 = Al menos un pin cambio de estado
0 = Ningún pin ha cambiado de estado.

Resumiendo, las acciones que se realizan automáticamente el microcontrolador y las que el programador debe tener en cuenta en sus programas son las siguientes:
Cuando se activa una posible causa deinterrupción, el flag correspondiente se activa. Si el bit de permiso correspondiente está a 1 y el bit de habilitación de todas las interrupciones (GIE) está a 1, se produce la interrupción.
Para evitar que se produzca otra interrupción mientras se está atendiendo a otra anterior, el bit GIE se pone a 0.
El valor del PC se guarda en la PILA
El PC se carga con el valor 0x04, que es el vector...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Pic16F84A
  • Pic16f84a
  • Pic16F84
  • Pic16F84A
  • Pic16f84a
  • Pic16F84A
  • Pic16f84a
  • Interrupciones

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS