You are on page 1of 27

MICROCONTROLADORES PIC INTERRUPCIONES Interrumpen la ejecucin de un programa y pasan a la rutina de servicio del evento que provoca la interrupcin.

. El vector de interrupcin se encuentra en la direccin 04H de la memoria de programa. Al terminar la rutina de servicio (RETFIE) se retoma el programa en el punto de ruptura. Fuentes de interrupcin: Pin INT, cambio en los terminales del puerto B (RB7:RB4). Overflow en los temporizadores. Cambio en el comparador. Fin de escritura en la memoria EEPROM de datos. Relacionadas con el Puerto Paralelo Esclavo, con la USART, con el fin de conversin A/D y en general con los mdulos perifricos con que puede contar una MCU. Gestin de interrupciones mediante registros: INTCON: registro general de control y estado. En funcin de los perifricos disponibles por una MCU: PIE1, PIE2 (Peripheal Interrupt Enable) habilitan las interrupciones de cada perifrico. PIR1 y PIR2 (Peripheal Interrupt Flag Registers) identifican el perifrico que interrumpe.
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

32

MICROCONTROLADORES PIC INTERRUPCIONES REGISTRO INTCON

Bit 7 GIE: (Global Interrupt Enable) bit de habilitacin global de interrupciones 1 = Habilita las interrupciones. 0 = Inhibe todas las interrupciones. Se pone a cero cuando se reconoce una interrupcin (para evitar interrupciones anidadas) y a 1 cuando se vuelve de su rutina de servicio. Bit 6 PEIE: (Peripheral Interrupt Enable) bit de habilitacin de interrupciones de perifricos. 1 = Habilita las interrupciones desde los perifricos. 0 = Inhibe las interrupciones desde los perifricos. (3) En MCU con un solo perifrico puede ser EEIE o ADIE Bit 5 T0IE: (Timer 0 Overflow Interrupt Enable) bit de habilitacin del Timer 0. 1 = Habilita la interrupcin con el desbordamiento del Timer 0. 0 = Inhibe la interrupcin con el desbordamiento del Timer 0. Bit 4 INTE: (INT External Interrupt Enable) bit de habilitacin de interrupcin desde el pin de entrada INT. 1 = Habilita la interrupcin. 0 = Inhibe la interrupcin. (2) Algunas MCU no disponen de esta caracterstica
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

33

MICROCONTROLADORES PIC INTERRUPCIONES REGISTRO INTCON

Bit 3 RBIE: (RB Port Change Interrupt Enable) bit de habilitacin de interrupcin con el cambio de RB7:RB4 1 = Habilita la interrupcin. 0 = Inhibe las interrupcin. (2) Algunas MCU no disponen de esta caracterstica (1) Tambin se puede encontrar con el nombre GPIE. Bit 2 T0IF: (Timer 0 Overflow Interrupt Flag). 1 = Interrupcin producida por el desbordamiento del Timer 0 (debe ser puesto a cero por SW). 0 = El Timer 0 no se ha desbordado. Bit 1 INTF: (INT External Interrupt Flag). 1 = Interrupcin producida por INT (debe ser puesto a cero por SW). 0 = INT no ha interrumpido la MCU. (2) Algunas MCU no disponen de esta caracterstica Bit 0 RBIF: (RB Port Change Interrupt Flag). 1 = Interrupcin producida por el cambio en alguno de los bits RB7:RB4 (debe ser puesto a cero por SW). 0 = RB7:RB4 no han interrumpido la MCU. (2) Algunas MCU no disponen de esta caracterstica (1) Tambin se puede encontrar con el nombre GPIF.
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

34

MICROCONTROLADORES PIC LGICA DE INTERRUPCIONES Registros PIR/PIE Registro INTCON INTERRUPCIONES

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

35

MICROCONTROLADORES PIC INTERRUPCIONES

TIEMPO DE LATENCIA Es el tiempo que transcurre desde que se produce un evento de interrupcin hasta que se ejecuta la instruccin de la direccin 04H. Interrupciones sncronas (normalmente internas) tiempo de latencia= 3 Tcy. Interrupciones asncronas (normalmente externas) tiempo de latencia= 3-3,75 Tcy.

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

36

MICROCONTROLADORES PIC INTERRUPCIONES Respuesta a un evento en el pin INT.

(1) El flag INTF se muestrea cada Q1. (2) El tiempo de latencia comprendido entre 3 y 3,75 Tcy. (3) CLKOUT disponible solo si el oscilador es RC. (4) Anchura mnima de pulso requerida en funcin de la MCU (para el 16F84A 20ns.) (5) INTF debe ponerse a cero por Sw.
37

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

MICROCONTROLADORES PIC INTERRUPCIONES Fases en la gestin de interrupciones: 1. PC->Pila y GIE=0 2. PC=0004H 3. Se salvan los registros cuyo contenido se desee conservar (W, STATUS, etc.) PUSH 4. Se determina la fuente de interrupcin (interrogando los flags correspondientes) 5. Se ejecuta la rutina de servicio a la interrupcin 6. Se borra el flag relacionado con la interrupcin atendida. 7. Se restauran los registros POP 8. Se ejecuta RETFIE 9. Pila->PC y GIE=1

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

38

MICROCONTROLADORES PIC INTERRUPCIONES

Salvaguarda de W y el registro STATUS, en un rutina de servicio a una interrupcin:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

39

MICROCONTROLADORES PIC PUERTOS DE E/S Se pueden considerar los perifricos ms sencillos, implementan las entrada-salida de la MCU. Se utilizan mediante dos registros: PORTx (datos) y TRISx (control) Pueden implementarse hasta siete puertos de caractersticas distintas (x puede sustituirse con identificadores de puerto desde la A hasta la G) Cada uno de los bits de TRISx establece la direccin de la informacin de su correspondiente bit (pin) en PORTx. Un 1 configura el pin como entrada. Una operacin de lectura obtiene el nivel presente en el terminal implicado. Un 0 configura ese pin como salida, manteniendo el bit de salida mediante un latch. Despus de un reset todos los bits de TRISx son 1. Los pines de entrada/salida pueden estar multiplexados con varios perifricos. Para conocer con exactitud las caractersticas de cada puerto en concreto es imprescindible. Consultar las hojas de caractersticas de cada dispositivo.

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

40

MICROCONTROLADORES PIC PUERTOS DE E/S Puerto de entrada/salida tpico:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

41

MICROCONTROLADORES PIC PUERTOS DE E/S Puerto A: Tiene 6 bits. RA4 Tiene entrada Trigger Schmitt y salida drenador abierto. El resto admiten niveles de entrada TTL y salida CMOS. Diagrama de bloques para RA3:RA0 y RA5.

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

42

MICROCONTROLADORES PIC PUERTOS DE E/S Pin RA4:

Ejemplo de inicializacin del puerto A

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

43

MICROCONTROLADORES PIC PUERTOS DE E/S Puerto B: Puerto de 8 bits bidireccionales Diagrama de bloques para RB3:RB0.

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

44

MICROCONTROLADORES PIC PUERTOS DE E/S Diagrama de bloques para RB7:RB4.

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

45

MICROCONTROLADORES PIC PUERTOS DE E/S

La escritura en un puerto implica una lectura-modificacin-escritura. Puede acarrear problemas en operaciones de escritura sobre puertos en los que unos pines estn configurados como entradas y otros como salidas:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

46

MICROCONTROLADORES PIC PUERTOS DE E/S Operaciones sucesivas sobre un puerto de entrada salida Escritura y lectura sobre el puerto B:

A frecuencias de reloj ms altas, una escritura seguida por una lectura puede ser problemtica debido a la capacidad externa, en esos casos puede ser conveniente utilizar NOP entre esas instrucciones.

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

47

MICROCONTROLADORES PIC PUERTOS DE E/S Operaciones sucesivas sobre un puerto de entrada salida Operaciones que implican lectura-modificacin escritura:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

48

MICROCONTROLADORES PIC TIMER 0

Caractersticas: Contador temporizador de 8 bits Accesible mediante operaciones de lectura y escritura. Incorpora un prescaler de 8 bits programable por Sw. Reloj interno o externo. Seleccin del flanco del reloj externo Puede producir una interrupcin al debordarse.

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

49

MICROCONTROLADORES PIC TIMER 0 REGISTRO OPTION_REG

Bit 7 RBPU: bit de habilitacin de resistencias pull-up 1 = Inhibidas 0 = habilitadas Bit 6 INTEDG: bit de seleccin del flanco activo de la interrupcin INT 1 = Flanco ascendente 0 = Flanco descendete Bit 5 T0CS: bit de seleccin de reloj para TMR0 1 = Transicin del pin T0CKI (reloj externo). 0 = Reloj interno (CLKOUT). Bit 4 T0SE: bit de seleccin de flanco cuando el reloj es externo 1 = Flanco de bajada de T0CKI. 0 = Flanco de subida de T0CKI

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

50

MICROCONTROLADORES PIC TIMER 0 REGISTRO OPTION_REG

Bit3 PSA: bit de asignacin del prescaler 1 = Prescaler asignado al WDT. 0 = Prescaler asignado al TIMER 0. Bit 2:0 PS2:PS0: Valor de divisin del prescaler PS2 000 001 010 011 100 101 110 111 TMR0 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256 WDT 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

51

MICROCONTROLADORES PIC TIMER 0 Escritura en TMR0 (reloj interno, sin prescaler):

Una escritura en TMR0 provoca dos ciclos de instruccin (2Tcy) en los que no se puede volver a escribir en l.

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

52

MICROCONTROLADORES PIC TIMER 0 Escritura en TMR0 (reloj interno, prescaler 1:2):

Una escritura en TMR0 actualiza el registro e inicializa el prescaler. El incremento del temporizador 0 (TMR0+prescaler) se inhibe durante dos ciclos de instruccin (2 Tcy), como el prescaler est configurado como divisor por 2, el temporizador 0 no se incrementar durante 4 tiempos de reloj.

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

53

MICROCONTROLADORES PIC TIMER 0 Temporizacin de la interrupcin del timer 0:

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

54

MICROCONTROLADORES PIC TIMER 0 Sincronizacin con reloj externo:


T0CKI debe se 1 al menos 2TOSC

El reloj/prescaler se muestrea en Q2 y Q4

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

55

MICROCONTROLADORES PIC TIMER 0

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

56

MICROCONTROLADORES PIC TIMER 0

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

57

MICROCONTROLADORES PIC TIMER 0

SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO

58

You might also like