Está en la página 1de 2

INTERRUPCIONES PARA EL PIC 16F877A Una subrutina de interrupcin es aquella que se ejecuta cada vez que se solicita una

interrupcin. El PIC 16F877A tiene la particularidad de manejar 13 fuentes de interrupcin diferentes, de las cuales haremos aplicaciones para dos de ellas: 1. Activacin de la patita de interrupcin RB0/INT 2. Desbordamiento del TMR0 3. Cambio de estado de una de las cuatro patitas de mas peso del puerto B 4. Finalizacin de la escritura de un byte en la EEPROM 5. Desbordamiento del Timer1 6. Desbordamiento del Timer2 7. Captura o comparacin en el mdulo CCP1 8. Captura o comparacin en el mdulo CCP2 9. Transferencia en la puerta serie Sncrona 10. Colisin de bus en la puerta serie Sncrona 11. Fin de la transmisin en el USART 12. Fin de la recepcin en el USART 13. Fin de la conversin en el convertidor A/D 14. Transferencia en la puerta paralela esclava Hasta la opcin 4 las tiene el PIC 16F84A, uno de los PICS de la familia 16FXX. Iniciaremos con la opcin 1: interrupcin por la terminal RB0. Al aceptarse una interrupcin se salva el valor del contador de programa PC en la pila y se carga el PC con el valor 0004h, que es el Vector de Interrupcin. Cuando se solicita la interrupcin, el programa se va a la direccin 0004h. REGISTRO DE CONTROL DE INTERRUPCIONES (INTCON) Es un registro de lectura y escritura que se encuentra en los cuatro bancos de memoria del PIC, ocupando las direcciones 0x0Bh, 0x8Bh, 0x10Bh, 0x18Bh. Tiene la misin de ser usado para controlar las interrupciones provocadas por el TMR0, cambio de estado en las cuatro lneas de ms peso del puerto B y activacin de la terminal RB0/INT. GIE es el bit de permiso global de todas las interrupciones. INTCON REGISTER (ADDRESS 0Bh, 8Bh, 10Bh, 18Bh) bit 7 GIE: Bit de permiso global de interrupciones 1 = Enables all unmasked interrupts 0 = Disables all interrupts bit 6 PEIE: Bit de permiso de los perifericos que no se controlan con INTCON

1 = Enables all unmasked peripheral interrupts 0 = Disables all peripheral interrupts bit 5 TMR0IE: Bit de permiso de interrucin del TMR0 1 = Enables the TMR0 interrupt 0 = Disables the TMR0 interrupt bit 4 INTE : Bit de permiso de la interrucin externa por RB0/INT 1 = Enables the RB0/INT external interrupt 0 = Disables the RB0/INT external interrupt bit 3 RBIE: Bit de permiso de interrucin por cambio en RB4-RB7 1 = Enables the RB port change interrupt 0 = Disables the RB port change interrupt bit 2 TMR0IF: Sealizador de desbordamiento en TMR0 1 = TMR0 register has overflowed (must be cleared in software) 0 = TMR0 register did not overflow bit 1 INTF: Sealizador de activacin de la patita RB0/INT 1 = The RB0/INT external interrupt occurred (must be cleared in software) 0 = The RB0/INT external interrupt did not occur bit 0 RBIF: Sealizador de cambio en RB4 - RB7 1 = At least one of the RB7:RB4 pins changed state; a mismatch condition will continue to set the bit. Reading PORTB will end the mismatch condition and allow the bit to be cleared (must be cleared in software). 0 = None of the RB7:RB4 pins have changed state