microcontroladores pic interrupciones …edii.uclm.es/~miniesta/mc_pic_2.pdfsistemas electrÓnicos...

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

Upload: leduong

Post on 28-Apr-2018

233 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PICINTERRUPCIONES

• 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.

Page 2: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

INTERRUPCIONESREGISTRO INTCON

Bit 7 GIE: (Global Interrupt Enable) bit de habilitación global de interrupciones1 = 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

Page 3: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

INTERRUPCIONESREGISTRO 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.

Page 4: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

INTERRUPCIONESLÓGICA DE INTERRUPCIONES

RegistrosPIR/PIE

RegistroINTCON

Page 5: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

INTERRUPCIONES

TIEMPO DE LATENCIAEs 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.

Page 6: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

INTERRUPCIONES

(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.

Respuesta a un evento en el pin INT.

Page 7: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

INTERRUPCIONES

Fases en la gestión de interrupciones:

1. PC->Pila y GIE=02. PC=0004H3. Se salvan los registros cuyo contenido se desee conservar (W,

STATUS, etc.) ≡ PUSH4. Se determina la fuente de interrupción (interrogando los flags

correspondientes)5. Se ejecuta la rutina de servicio a la interrupción6. Se borra el flag relacionado con la interrupción atendida.7. Se restauran los registros ≡ POP8. Se ejecuta RETFIE9. Pila->PC y GIE=1

Page 8: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

INTERRUPCIONES

Salvaguarda de W y el registro STATUS, en un rutina de servicio a una interrupción:

Page 9: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

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.

Page 10: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

PUERTOS DE E/S

Puerto de entrada/salida típico:

Page 11: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

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.

Page 12: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

PUERTOS DE E/SPin RA4:

Ejemplo de inicialización del puerto A

Page 13: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

PUERTOS DE E/S

Puerto B:• Puerto de 8 bits bidireccionales

Diagrama de bloquespara RB3:RB0.

Page 14: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

PUERTOS DE E/S

Diagrama de bloquespara RB7:RB4.

Page 15: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

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:

Page 16: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

PUERTOS DE E/SOperaciones 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.

Page 17: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

PUERTOS DE E/S

Operaciones sucesivas sobre un puerto de entrada salida• Operaciones que implican lectura-modificación escritura:

Page 18: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

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.

Page 19: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

TIMER 0REGISTRO OPTION_REG

Bit 7 RBPU’: bit de habilitación de resistencias pull-up1 = Inhibidas0 = habilitadas

Bit 6 INTEDG: bit de selección del flanco activo de la interrupción INT1 = Flanco ascendente0 = Flanco descendete

Bit 5 T0CS: bit de selección de reloj para TMR01 = Transición del pin T0CKI (reloj externo).0 = Reloj interno (CLKOUT).

Bit 4 T0SE: bit de selección de flanco cuando el reloj es externo1 = Flanco de bajada de T0CKI.0 = Flanco de subida de T0CKI

Page 20: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

TIMER 0REGISTRO OPTION_REG

Bit3 PSA: bit de asignación del prescaler1 = Prescaler asignado al WDT.0 = Prescaler asignado al TIMER 0.

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

PS2 TMR0 WDT0 0 0 1:2 1:10 0 1 1:4 1:20 1 0 1:8 1:40 1 1 1:16 1:81 0 0 1:32 1:161 0 1 1:64 1:321 1 0 1:128 1:641 1 1 1:256 1:128

Page 21: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

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.

Page 22: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

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.

Page 23: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

TIMER 0

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

Page 24: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

TIMER 0

Sincronización con reloj externo:

El reloj/prescaler se muestrea en Q2 y Q4

T0CKI debe se 1 al menos 2TOSC

Page 25: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

TIMER 0

Page 26: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

TIMER 0

Page 27: MICROCONTROLADORES PIC INTERRUPCIONES …edii.uclm.es/~miniesta/mc_pic_2.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32 MICROCONTROLADORES PIC INTERRUPCIONES

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

MICROCONTROLADORES PIC

TIMER 0