Beruflich Dokumente
Kultur Dokumente
CONCEPTOS BSICOS
MICROCONTROLADORES PIC
PROGRAMACIN EN COMPILADOR C
DEFINICIN
Una solicitud de interrupcin (o simplemente interrupcin)
es un evento de origen interno o externo que, si es atendido,
hace que el microcontrolador interrumpa la ejecucin del
programa en curso y en su lugar ejecute las instrucciones de
otro programa.
Una solicitud de interrupcin se puede producir en cualquier
momento mientras se ejecuta cualquier instruccin de un
programa. Por ello, no es posible prever durante qu
instruccin ocurrir una interrupcin.
El manejo de interrupciones permite realizar programas que no
tienen que estar continuamente consultando sucesos internos
o externos mediante tcnicas de consultas, las cuales provocan
retardos o paradas en la ejecucin del programa principal.
FUNCIONAMIENTO
FUENTES DE INTERRUPCIONES
2.
3.
4.
5.
INTERRUPCIONES EN EL PIC16F877A
Maneja interrupciones enmascarables y fijas.
Tiene 14 fuentes de interrupcin.
El sistema se habilita o inhabilita globalmente mediante el bit GIE del
registro de funciones especiales INTCON.
Las interrupciones se habilitan o inhabilitan individualmente mediante bits
de los registros INTCON, PIE1 y PIE2.
Al ser todas las interrupciones fijas, todas las solicitudes, si estn
habilitadas, hacen que el microcontrolador pase a ejecutar
automticamente la instruccin que est en la direccin 0X04h de la
memoria de programa.
Dentro de la subrutina de atencin a la interrupcin, el programador debe
averiguar la fuente de la interrupcin consultando los bits apropiados en
los registros de funciones especiales (INTCON, PIR1 y PIR2) asociados al
sistema de interrupcin del PIC.
INTERRUPCIONES EN EL PIC16F877A
INTERRUPCIONES EN EL PIC16F877A
Entre las posibles fuentes de interrupcin estn las siguientes:
Interrupcin externa por el terminal RB0/INT.
Interrupcin por cambio en el nivel lgico de las entradas RB4:RB7
del puerto B.
Interrupcin por el desbordamiento de los temporizadores Timer0,
Timer1 y Timer2.
Interrupcin por algn evento en el mdulo CCP.
Interrupcin por el puerto serie USART.
Interrupcin por el convertidor A/D.
Interrupcin por escritura en la memoria interna EEPRON de datos.
INTERRUPCIONES EN EL PIC16F877A
Cuando se produce una solicitud de interrupcin, si el sistema en su
conjunto y la fuente particular estn habilitados, el microcontrolador
termina la instruccin en curso, guarda en la pila el valor del contador de
programa y salta a la direccin 04h de la memoria de programa.
El PIC16F877A tiene un nico
vector de interrupcin situado en la
direccin 04h del programa.
Al poseer un nico vector de
interrupcin, el PIC posee unos
registros
de
control
donde
mediante la utilizacin de banderas
o flags, el usuario puede determinar
que es lo que ha producido la
interrupcin. Adems en estos
registros se puede habilitar o no las
distintas fuentes de interrupcin e
incluso permite la habilitacin
general.
GIE (Global Interrupt Enable): con este se habilita (con GIE=1) o inhabilita (con
GIE=0) el sistema global de interrupciones.
PEIE (Peripheral Interrupt Enable): con este bit se habilitan (PEIE=1) las
interrupciones de otras fuentes que no estn presentes en el registro INTCON sino
en los registros PIE.
TMR0IE, TMR0IF: Bits relacionados con la interrupcin del Timer0. Con el
TMR0IE puesto a 1 se habilita la interrupcin del Timer0. TMR0IF es el indicador de
desbordamiento del Timer0.
INTE, INTF: Bits relacionados con la interrupcin externa RB0/INT.
INTE=1habilita la interrupcin externa RB0/INT y INTF=1 informa que se ha
producido esta interrupcin.
RBIE, RBIF: Bits relacionados con la interrupcin por cambio de nivel en los bits
RB4 a RB7. El bit RBIE puesto a 1 habilita esta interrupcin. RBIF es el bit indicador.
b.
c.
d.