You are on page 1of 5

Curso de

Microcontroladores
Introduccin Interrupciones
PIC18FXXX
Ing. Germn Jess Pereira Muoz
02/08/10

Ing. Germn Pereira Muoz

Microprocesador

PIC
Familia 40 pin

Registros Interrupciones Externas 0 1 2

Ejemplo de Inicializacion del PORTB como I/O Digital


PORTB = 0x00;

// Limpiando los latches de salida del PORTB (PORTB = 0)

LATB = 0x00;

// Metodo alternativo para limpiar los latches de salida

ADCON1 = 0x0F; // Configurando A/D para entrada digital


CMCON = 0x07; // Configurando los comparadores como entrada digtal
TRISB = 0xCF;

02/08/10

// Ej de Configuracion del PORTB( RB<3:0> y RA<6:7> como entrada


//
RB<5:4> como salida )
TRISB
Bit = 1 PORTB Bit como entrada

TRISB

Bit = 0 PORTB Bit como salida


Ing. Germn Pereira Muoz

Registros
PORTB,
TRISB y
LATB
Part I

02/08/10

Ing. Germn Pereira Muoz

Lgica de
Interrupciones

Ing. Germn Pereira Muoz

02/08/10

Vectores de
Interrupcion en la
memoria de
programa
Vector de Reset
Vector de Interrupcion
alta Prioridad
Vector de Interrupcion
baja Prioridad

02/08/10

Ing. Germn Pereira Muoz

Registro RCON (Reset Control Register)

IPEN: Bit de habilitacin de prioridades en las

interrupciones
* IPEN=0: Sistema de prioridad en las interrupciones deshabilitado
* IPEN=1: Sistema de prioridad en las interrupciones habilitado

02/08/10

Ing. Germn Pereira Muoz

Registro INTCON (Part1)

GIE/GIEH: Bit de habilitacin global de las interrupciones. Su funcin


depende del valor de IPEN:
IPEN=0:
* GIE=0: Interrupciones deshabilitadas a nivel global
* GIE=1: Interrupciones habilitadas a nivel global

IPEN=1:
* GIEH=0: Interrupciones de alta prioridad deshabilitadas a nivel global
* GIEH=1: Interrupciones de alta prioridad habilitadas a nivel global

PEIE/GIEL: Bit de habilitacin global de las interrupciones de perifricos. Su


funcin depende del valor de IPEN:
IPEN=0:
* PEIE=0: Interrupciones de perifricos deshabilitadas a nivel global
* PEIE=1: Interrupciones de perifricos habilitadas a nivel global

IPEN=1:
* GIEL=0: Interrupciones de baja prioridad deshabilitadas a nivel global
* GIEL=1: Interrupciones de baja prioridad habilitadas a nivel global
02/08/10

Ing. Germn Pereira Muoz

Registro INTCON (Part2)


TMR0IE: Bit de habilitacin de la interrupcin de desbordamiento del Temporizador 0
* TMR0IE=0: Interrupcin de desbordamiento del Temporizador 0 deshabilitada
* TMR0IE=1: Interrupcin de desbordamiento del Temporizador 0 habilitada

INT0IE: Bit de habilitacin de la interrupcin externa 0


* INT0IE=0: Interrupcin externa 0 deshabilitada
* INT0IE=1: Interrupcin externa 0 habilitada

RBIE: Bit de habilitacin de la interrupcin por cambio en el Puerto B


* RBIE=0: Interrupcin por cambio en el Puerto B deshabilitada
* RBIE=1: Interrupcin por cambio en el Puerto B habilitada

TMR0IF: Flag de la interrupcin de desbordamiento del Temporizador 0


* TMR0IF=0: No se ha producido desbordamiento del Temporizador 0
* TMR0IF=1: Se ha producido desbordamiento del Temporizador 0

INT0IF: Flag de la interrupcin externa 0


* INT0IF=0: No se ha producido un flanco en la lnea RB0/INT0
* INT0IF=1: Se ha producido un flanco en la lnea RB0/INT0

RBIF: Flag de la interrupcin por cambio en el Puerto B


* RBIF=0: No se ha producido ningn cambio en ninguna de las lneas RB7..RB4
* RBIF=1: Se ha producido ningn cambio en ninguna de las lneas RB7..RB4
02/08/10
Ing. Germn Pereira Muoz
9

Registro INTCON2

RBPU: Bit de habilitacin de las resistencias de pull-up del Puerto B:


* RBPU=0: Las resistencias de pull-up del Puerto B estn activadas
* RBPU=1: Las resistencias de pull-up del Puerto B estn desactivadas

INTEDG0: Bit de seleccin de flanco de la interrupcin externa 0:


* INTEDG0=0: La interrupcin externa 0 se dispara por flanco de bajada
* INTEDG0=1: La interrupcin externa 0 se dispara por flanco de subida

INTEDG1: Bit de seleccin de flanco de la interrupcin externa 1:


* INTEDG1=0: La interrupcin externa 1 se dispara por flanco de bajada
* INTEDG1=1: La interrupcin externa 1 se dispara por flanco de subida

INTEDG2: Bit de seleccin de flanco de la interrupcin externa 2:


* INTEDG2=0: La interrupcin externa 2 se dispara por flanco de bajada
* INTEDG2=1: La interrupcin externa 2 se dispara por flanco de subida

Flanco de disparo de la
interrupcin 0 1 y 2

Flanco Ascendente

El Pin RB0, RB1 y RB2 debe


ser configurado como entrada

Flanco
Descendente

02/08/10

Ing. Germn Pereira Muoz

10

Registro INTCON3

INT2IP: Bit de seleccin de prioridad de la interrupcin externa 2


* INT2IP=0: Prioridad baja para la interrupcin externa 2
* INT2IP=1: Prioridad alta para la interrupcin externa 2

INT1IP: Bit de seleccin de prioridad de la interrupcin externa 1


* INT1IP=0: Prioridad baja para la interrupcin externa 1
* INT1IP=1: Prioridad alta para la interrupcin externa 1

INT2IE: Bit de habilitacin de la interrupcin externa 2


* INT2IE=0: Interrupcin externa 2 deshabilitada
* INT2IE=1: Interrupcin externa 2 habilitada

INT1IE: Bit de habilitacin de la interrupcin externa 1


* INT1IE=0: Interrupcin externa 1 deshabilitada
* INT1IE=1: Interrupcin externa 1 habilitada

INT2IF: Flag de la interrupcin externa 2


* INT2IF=0: No se ha producido flanco en la lnea RB2/INT2
* INT2IF=1: Se ha producido flanco en la lnea RB2/INT2

INT1IF: Flag de la interrupcin externa 1


02/08/10

* INT1IF=0: No se ha producido flanco en la lnea RB1/INT1


* INT1IF=1: Se ha producido flanco en la lnea RB1/INT1
Ing. Germn Pereira Muoz

11

Circuito de aplicacin de la Int Ext

02/08/10

Ing. Germn Pereira Muoz

12

Programa de Interrupcin (Part1)

02/08/10

Ing. Germn Pereira Muoz

13

Programa de Interrupcin (Part2)

02/08/10

Ing. Germn Pereira Muoz

14

Programa de Interrupcin (Part3)

02/08/10

Ing. Germn Pereira Muoz

15

You might also like