Está en la página 1de 27

MICROCONTROLADORES PIC

INTERRUPCIONES
• Interrumpen la ejecución de un programa y pasan a la rutina de servicio del evento
que provoca la interrupción.
• El vector de interrupción se encuentra en la dirección 04H de la memoria de programa.
• Al terminar la rutina de servicio (RETFIE) se retoma el programa en el ‘punto de
ruptura’.
• Fuentes de interrupción:
• 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
conversión A/D y en general con los módulos periféricos con que puede contar una
MCU.
• Gestión de interrupciones mediante registros:
• INTCON: registro general de control y estado.
• En función de los periféricos disponibles por una MCU:
•PIE1, PIE2 (Peripheal Interrupt Enable) habilitan las interrupciones de cada
periférico.
• PIR1 y PIR2 (Peripheal Interrupt Flag Registers) identifican el periférico que
interrumpe.
32
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
INTERRUPCIONES
REGISTRO INTCON

Bit 7 GIE: (Global Interrupt Enable) bit de habilitación global de interrupciones


1 = Habilita las interrupciones.
0 = Inhibe todas las interrupciones.
Se pone a cero cuando se reconoce una interrupción (para evitar interrupciones
anidadas) y a 1 cuando se vuelve de su rutina de servicio.
Bit 6 PEIE: (Peripheral Interrupt Enable) bit de habilitación de interrupciones de periféricos.
1 = Habilita las interrupciones desde los periféricos.
0 = Inhibe las interrupciones desde los periféricos.
(3) En MCU con un solo periférico puede ser EEIE o ADIE

Bit 5 T0IE: (Timer 0 Overflow Interrupt Enable) bit de habilitación del Timer 0.
1 = Habilita la interrupción con el desbordamiento del Timer 0.
0 = Inhibe la interrupción con el desbordamiento del Timer 0.

Bit 4 INTE: (INT External Interrupt Enable) bit de habilitación de interrupción desde el pin de entrada INT.
1 = Habilita la interrupción.
0 = Inhibe la interrupción.
(2) Algunas MCU no disponen de esta característica
33
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
INTERRUPCIONES
REGISTRO INTCON

Bit 3 RBIE: (RB Port Change Interrupt Enable) bit de habilitación de interrupción con el cambio de
RB7:RB4
1 = Habilita la interrupción.
0 = Inhibe las interrupción.
(2) Algunas MCU no disponen de esta característica
(1) También se puede encontrar con el nombre GPIE.
Bit 2 T0IF: (Timer 0 Overflow Interrupt Flag).
1 = Interrupción 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 = Interrupción producida por INT (debe ser puesto a cero por SW).
0 = INT no ha interrumpido la MCU.
(2) Algunas MCU no disponen de esta característica
Bit 0 RBIF: (RB Port Change Interrupt Flag).
1 = Interrupción 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 característica
(1) También se puede encontrar con el nombre GPIF.
34
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
INTERRUPCIONES
LÓGICA DE INTERRUPCIONES

Registros Registro
PIR/PIE INTCON

35
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
INTERRUPCIONES

TIEMPO DE LATENCIA
Es el tiempo que transcurre desde que se produce un evento de
interrupción hasta que se ejecuta la instrucción de la dirección 04H.
• Interrupciones síncronas (normalmente internas) tiempo de
latencia= 3 Tcy.
• Interrupciones asíncronas (normalmente externas) tiempo de
latencia= 3-3,75 Tcy.

36
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
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 mínima de pulso requerida en función de la MCU (para el 16F84A 20ns.)
(5) INTF debe ponerse a cero por Sw.

37
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
INTERRUPCIONES

Fases en la gestión 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 interrupción (interrogando los flags
correspondientes)
5. Se ejecuta la rutina de servicio a la interrupción
6. Se borra el flag relacionado con la interrupción atendida.
7. Se restauran los registros ≡ POP
8. Se ejecuta RETFIE
9. Pila->PC y GIE=1

38
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
INTERRUPCIONES

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


interrupción:

39
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
PUERTOS DE E/S

• Se pueden considerar los periféricos más sencillos, implementan las


entrada-salida de la MCU.
• Se utilizan mediante dos registros: PORTx (datos) y TRISx (control)
• Pueden implementarse hasta siete puertos de características
distintas (x puede sustituirse con identificadores de puerto desde la
A hasta la G)
• Cada uno de los bits de TRISx establece la dirección de la
información de su correspondiente bit (pin) en PORTx.
• Un 1 configura el pin como entrada. Una operación 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.
• Después de un reset todos los bits de TRISx son 1.
• Los pines de entrada/salida pueden estar multiplexados con varios
periféricos. Para conocer con exactitud las características de cada
puerto en concreto es imprescindible. Consultar las hojas de
características de cada dispositivo.

40
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
PUERTOS DE E/S

Puerto de entrada/salida típico:

41
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
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.

42
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
PUERTOS DE E/S
Pin RA4:

Ejemplo de inicialización del puerto A

43
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
PUERTOS DE E/S

Puerto B:
• Puerto de 8 bits bidireccionales

Diagrama de bloques
para RB3:RB0.

44
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
PUERTOS DE E/S

Diagrama de bloques
para RB7:RB4.

45
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
PUERTOS DE E/S

• La escritura en un puerto implica una lectura-modificación-escritura.


• Puede acarrear problemas en operaciones de escritura sobre puertos en los
que unos pines están configurados como entradas y otros como salidas:

46
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
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 más altas, una escritura seguida por una lectura
puede ser problemática debido a la capacidad externa, en esos casos
puede ser conveniente utilizar NOP entre esas instrucciones.

47
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
PUERTOS DE E/S

Operaciones sucesivas sobre un puerto de entrada salida


• Operaciones que implican lectura-modificación escritura:

48
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
TIMER 0

Características:
• 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.
• Selección del flanco del reloj externo
• Puede producir una interrupción al debordarse.

49
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
TIMER 0
REGISTRO OPTION_REG

Bit 7 RBPU’: bit de habilitación de resistencias pull-up


1 = Inhibidas
0 = habilitadas

Bit 6 INTEDG: bit de selección del flanco activo de la interrupción INT


1 = Flanco ascendente
0 = Flanco descendete

Bit 5 T0CS: bit de selección de reloj para TMR0


1 = Transición del pin T0CKI (reloj externo).
0 = Reloj interno (CLKOUT).

Bit 4 T0SE: bit de selección de flanco cuando el reloj es externo


1 = Flanco de bajada de T0CKI.
0 = Flanco de subida de T0CKI

50
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
TIMER 0
REGISTRO OPTION_REG

Bit3 PSA: bit de asignación del prescaler


1 = Prescaler asignado al WDT.
0 = Prescaler asignado al TIMER 0.

Bit 2:0 PS2:PS0: Valor de división del prescaler

PS2 TMR0 WDT


000 1:2 1:1
001 1:4 1:2
010 1:8 1:4
011 1:16 1:8
100 1:32 1:16
101 1:64 1:32
110 1:128 1:64
111 1:256 1:128

51
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
TIMER 0

Escritura en TMR0 (reloj interno, sin prescaler):

Una escritura en TMR0 provoca dos ciclos de instrucción (2Tcy) en


los que no se puede volver a escribir en él.

52
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
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 instrucción (2 Tcy), como el prescaler está configurado como divisor por 2, el
temporizador 0 no se incrementará durante 4 tiempos de reloj.

53
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
TIMER 0

Temporización de la interrupción del timer 0:

54
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
TIMER 0

T0CKI debe se 1 al menos 2TOSC


Sincronización con reloj externo:

El reloj/prescaler se muestrea en Q2 y Q4

55
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
TIMER 0

56
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
TIMER 0

57
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
MICROCONTROLADORES PIC
TIMER 0

58
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

También podría gustarte