Memoria RAM
Estn conectados a circuitos particulares desde su fabricacin por lo que su cambio durante la
ejecucin del programa afecta a estos
Registros de SFR
Cada uno esta formado por bits con funciones especficas, que permiten cambiar el
funcionamiento del microcontrolador
Interrupcin
Cambio en el puerto B
http://www.mikroe.com/chapters/view/81/capitulo-3-microcontrolador-pic16f887/
Registro INTCON
GIE - Global Interrupt Enable bit - (bit de habilitacin de interrupciones globales) controla simultneamente todas las fuentes de interrupciones posibles.
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.
T0IE - TMR0 Overflow Interrupt Enable bit (bit de habilitacin de interrupciones por el desbordamiento del temporizador Timer0) controla interrupciones causadas por el desbordamiento del 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).
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.
T0IF - TMR0 Overflow Interrupt Flag bit (bit de bandera de interrupcin por el desbor damiento del Timer0) detecta el desbordamiento en el registro del temporizador Timer0, o sea el contador se pone a cero.
1 - En el registro del Timer0 ha ocurrido desbordamiento (esta bandera debe volverse a 0 por software).
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.
1 - Ha ocurrido una interrupcin externa por INT (esta bandera debe volverse a 0 por software)
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.
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 RBIF debe volverse a 0 por software).
0 - Ninguno de los pines de E/S de propsito general en el puerto PORTB ha cambiado de valor.
Interrupciones en C
//----------------------------------------------------------------------------//Sub rutina de interrupcin
//---------------------------------------------------------------------------void interrupt(void) {
//Se evala el tipo de interrupcin
//sub programa a realizarse en la interrupcin
//Se restablecen las banderas de interrupcin
}
//----------------------------------------------------------------------------//Funcin principal
//---------------------------------------------------------------------------void main(void) {
//Se configuran los puertos.
//Se activan las interrupciones
while(1){
//programa principal
}
Ejemplo de interrupcin
// INTERRUPCIN DEL RB0//
//-------------------------------------// MCU: 16F877A
// OSC: 4 MHz
//--------------------------------------// funcion de interrupcion
//----------------------------------------------------------------------------void interrupt(void) {
//----------------------------------------------------------------------------//Funcion principal
//---------------------------------------------------------------------------void main(void) {
//Se configuran los puertos.
TRISB = 0b00000001;
PORTB = 0;
//Se activan las interrupciones globales y externa.
INTCON = 0b10010000;
//programa principal
while(1){
PORTB.F2=1;
}
}