Você está na página 1de 4

REGISTROS DEL SISTEMA DE DESARROLLO

Al llegar la peticin de interrupcin, no significa que una interrupcin ocurrir automticamente, puesto que
debe ser habilitada por el usuario (por el programa) tambin. Por esta razn, hay bits especiales utilizados
para habilitar o deshabilitar interrupciones. Es fcil de reconocerlos por las letras IE contenidas en sus
nombres (Interrupt Enable - Interrupcin habilitada). Adems, cada interrupcin se asocia con otro bit
denominado bandera que indica que una peticin de interrupcin ha llegado sin verificar si est habilitada.
Asimismo, se reconocen con facilidad por las dos ltimas letras contenidas en sus nombres - IF (Interrupt Flag
- Bandera de interrupcin).

Como hemos visto, toda la idea es muy simple y eficiente. Al llegar la peticin de interrupcin, primero el bit de
bandera se pone a uno. Si el bit IE apropiado est a cero (0), esta condicin ser ignorada completamente. De
lo contrario, ocurre una interrupcin. Si varias fuentes de interrupcin estn habilitadas, es necesario detectar
la activa antes de que la rutina de interrupcin se ponga a ejecutar. La deteccin de la fuente se realiza al
comprobar los bits de las banderas.

Cabe destacar que los bits de cada bandera no se ponen a cero automticamente, sino por el software,
mientras que la ejecucin de la rutina de interrupcin contina ejecutndose. Si no hacemos caso a este
detalle, ocurrir otra interrupcin inmediatamente despus de volver al programa principal, aunque no hay
ms peticiones de ejecucin. Simplemente, la bandera, as como el bit IE, se quedan en uno.

Todas las fuentes de interrupcin tpicas para el microcontrolador PIC16F887 se muestran en la siguiente
pgina. Fjese en lo siguiente:

El bit GIE habilita/deshabilita simultneamente las interrupciones no enmascaradas.
El PEIE habilita/deshabilita las interrupciones no enmascaradas de perifricos. Esto no se refiere al
temporizador Timer0 y a las fuentes de interrupcin del puerto PORTB.
Para habilitar una interrupcin causada por el cambio del estado lgico en el puerto PORTB, es necesario
habilitarla para cada bit por separado. En este caso, los bits del registro IOCB se comportan como los bits IE
de control.

Sistema de interrupcin del microcontrolador PIC16F887
Registro INTCON
El registro OPTION_REG contiene varios bits de control para configurar el pre - escalador del Timer0/WDT, el
temporizador Timer0, la interrupcin externa y las resistencias pull-up en el puerto PORTB.

Leyenda: R/W - Bit de lectura/escritura, (0) Despus del reinicio, el bit se pone a cero, (X) - Despus del
reinicio, el estado de bit es desconocido
GIE - Global Interrupt Enable bit (bit de habilitacin de interrupciones globales) controla
simultneamente todas las fuentes de interrupciones posibles.
o 1 - Habilita las interrupciones no enmascaradas.
o 0 - Deshabilita las interrupciones no enmascaradas.
PEIE - Peripheral Interrupt Enable bit (bit de habilitacin de interrupciones perifricas) es
similar al bit GIE, sin embargo controla interrupciones habilitadas por los perifricos. Eso
significa que no influye en interrupciones causadas por el temporizador Timer0 o por el
cambio del estado en el puerto PORTB o por el cambio en el pin RB0/INT.
o 1 -Habilita las interrupciones perifricas no enmascaradas.
o 0 -Deshabilita las interrupciones perifricas no enmascaradas
T0IE - TMR0 Overflow Interrupt Enable bit (bit de habilitacin de interrupciones por el
desbordamiento del registro Timer0) controla interrupciones causadas por el
desbordamiento del Timer0.
o 1 - Habilita interrupciones por Timer0
o 0 - Deshabilita interrupciones por Timer0
INTE - RB0/INT External Interrupt Enable bit (bit de habilitacin de la interrupcin
externa en RB0) controla interrupciones causadas por el cambio del estado lgico en el pin
de entrada RB0/INT (interrupcin externa).
o 1 - Habilita interrupciones externas INT
o 0 - Deshabilita interrupciones externas INT
RBIE - RB Port Change Interrupt Enable bit. (bit de habilitacin de interrupciones por
cambios en el puerto PORTB). Cuando se configuran como entradas, los pines en el
puerto PORTB pueden causar una interrupcin al cambiar el estado lgico (no importa si
se produce bajada o subida de tensin, lo que importa es que se produce un cambio). Este
bit determina si una interrupcin va a ocurrir.
o 1 - Habilita interrupciones por cambio en el puerto PORTB
o 0 - Deshabilita interrupciones por cambio en el puerto PORTB
T0IF - TMR0 Overflow Interrupt Flag bit (bit de bandera de interrupcin por el
desbordamiento del Timer0) detecta el desbordamiento en el registro del temporizador
Timer0, o sea el contador se pone a cero.
o 1 - En el registro TMR0 ha ocurrido desbordamiento (esta bandera debe volverse a 0 por software)
o 0 - En el registro TMR0 no ha ocurrido desbordamiento
INTF - RB0/INT External Interrupt Flag bit (bit de bandera de interrupcin externa en INT)
detecta el cambio en el estado lgico en el pin INT.
o 1 - Ha ocurrido una interrupcin externa por INT (esta bandera debe volverse a 0 por software)
o 0 - No ha ocurrido una interrupcin externa por INT
RBIF - RB Port Change Interrupt Flag bit (bit de bandera de interrupcin por cambio en
el puerto RB) detecta cualquier cambio del estado lgico de alguno de los pines de entrada
en el puerto PORTB.
o 1 - Al menos uno de los pines de E/S de propsito general en el puerto PORTB ha cambido de valor.
Despus de leer el puerto PORTB, el bit RBIFdebe volverse a 0 por software)
o 0 - Ninguno de los pines de E/S de propsito general en el puerto PORTB ha cambiado de valor.
Vamos a hacerlo en mikroBasic...
' El pin PORTB.4 se configura como una entrada sensible al cambio del
estado lgico.
ANSEL, ANSELH = 0 ' Todos los pines de E/S se configuran como digitales
PORTB = 0 ' Todos los pines del puerto PORTB se ponen a cero
TRISB = %00010000 ' Todos los pines del puerto PORTB menos PORTB.4
' se configuran como salidas
INTCON.RBIE = 1 ' Se habilitan las interrupciones por el cambio en el
puerto PORTB
IOCB.IOCB4 = 1 ' Se habilita la interrupcin por el cambio en el pin
4 en el puerto PORTB
INTCON.GIE = 1 ' Se habilita la interrupcin global
...
...
'Desde este punto, se produce una interrupcin con cualquier cambio del
estado lgico en el pin
'PORTB.

Você também pode gostar