Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2019 A PARTE 03 Interrupciones Timers PDF
2019 A PARTE 03 Interrupciones Timers PDF
Sistema de Interrupciones
Una interrupción consiste en que la CPU deja de ejecutar el programa principal y pasa a
ejecutar la rutina de servicio de interrupción (ISR)
La ISR comienza en la dirección 0X0004 y termina en la instrucción de retorno de
interrupción (RETFIE).
Habilitador
Fuente Evento Bandera
Local
Timer 0 Desbordamiento del Timer 0 INTCON,5(T0IE) INTCON,2(T0IF)
RB0 Flanco en RB0 INTCON,4(INTE) INTCON,1(INTF)
RB7-RB4 Cambio en el nibble alto del puerto B INTCON,3(RBIE) INTCON,0(RBIF)
Transmisor
Buffer de transmisión vacío PIE1,4(TXIE) PIR1,4(TXIF)
del USART
Receptor
Buffer del receptor lleno PIE1,5(RCIE) PIR1,5(RCIF)
del USART
Proceso
1. La CPU termina la ejecución de la instrucción actual.
2. Se desactiva el bit GIE (GIE=0)
3. Se hace el llamado a la ISR:
a. La dirección de retorno se guarda en la pila.
b. Se ejecuta el salto a la dirección 0x0004 que se denomina vector de interrupción
y es el inicio de la ISR.
c. En algunos casos es necesario que se salve el contexto: Registro STATUS, registro
W, registro PCLATH (en caso de usar las páginas 1, 2 o 3)
d. En la ISR se determina la fuente de interrupción consultando las banderas de
interrupción.
e. En la ISR se borra la bandera que solicitó la interrupción para evitar que se repita
la interrupción.
4. Se realiza el retorno de la ISR mediante la instrucción RETFIE:
a. Se activa el bit GIE (GIE=1)
b. Se recupera de la pila la dirección de retorno para regresar al programa
principal.
Interrupción Externa RB0/INT
La interrupción externa RB0/INT se dispara por flanco:
2. El Timer 0
Características
1. Temporizador/contador de 8 bits
2. Permite lectura y escritura
3. Pre-escalador programable de 8 bits
4. Fuente de reloj seleccionable externa o interna
5. Puede producir interrupción por desbordamiento (Cambio de FFh a 00h)
6. Flanco seleccionable para el reloj externo
Esquema Descriptivo
4
Curso: Microcontroladores y Microprogramación – Clases Prácticas
Registro OPTION_REG
5
Curso: Microcontroladores y Microprogramación – Clases Prácticas
3. El Timer 1
Características
1. Temporizador/contador de 16 bits
2. Permite lectura y escritura
3. Fuente de reloj seleccionable externa o interna
4. Puede producir interrupción por desbordamiento (Cambio de FFFFh a 0000h)
5. Se puede reinicializar desde los módulos CCP
Modos de operación
• Con reloj interno
• Con reloj externo
• Con reloj externo y circuito oscilador
6
Curso: Microcontroladores y Microprogramación – Clases Prácticas
Esquema Descriptivo
Registro T1CON
7
Curso: Microcontroladores y Microprogramación – Clases Prácticas
4. El Timer 2
El Timer 2 es de 8 bits con pre-escalador, post-escalador y un registro de periodo.
Cuando en el pre-escalador y post-escalador se colocan los valores máximos, el
intervalo de tiempo generado es el mismo que el de un timer de 16 bits.
8
Curso: Microcontroladores y Microprogramación – Clases Prácticas
TOUTPS3 - TOUTPS0 – Bits de selección del factor del post-escalamiento del Timer2
5. El Módulo CCP1
CCPR1H CCPR1L - Registro de 16 bits
6. Registro de 16 bits de captura
7. Registro de 16 bits de comparación
8. Registro de ciclo de trabajo de señal PWM
9
Curso: Microcontroladores y Microprogramación – Clases Prácticas
CCP1CON Register
DC1B1, DC1B0 – Bits menos significativos del ciclo de trabajo (número de 10 bits).
CCP1M3 - CCP1M0 – Bits de selección del modo del módulo CCP1.
CCP1M3 - CCP1M0 Modo
0000 Módulo CCPx inhabilitado (Resetea al módulo)
0100 Modo captura, cada flanco de bajada
0101 Modo captura, cada flanco de subida
0110 Modo captura, cada 4to flanco de subida
0111 Modo captura, cada 16avo flanco de subida
Modo comparación, inicializa el pin CCP en nivel bajo, en la
1000
igualdad de la comparación setea el pin CCP (CCPIF es seteado)
Modo comparación, inicializa el pin CCP en nivel alto, en la igualdad
1001
de la comparación resetea el pin CCP (CCPIF es seteado)
Modo comparación, Genera interrupción en la igualdad de la
1010
comparación (CCPIF es seteado, el pin CCP no es afectado)
Modo comparación, Disparador de Evento Especial (CCPIF es
1011
seteado)
11xx Modo PWM
Modo Captura
Modo Comparación
10
Curso: Microcontroladores y Microprogramación – Clases Prácticas
Disparador de
Evento Especial
Modo PWM
11
Curso: Microcontroladores y Microprogramación – Clases Prácticas
Periodo PWM
TPWM = [(PR2) + 1] • 4 • TOSC • M
(PR2) – Valor del registro de periodo
TOSC – Periodo de la señal de reloj del microcontrolador
1/M - Valor del pre-escalador de TMR2
𝑇𝑃𝑊𝑀 𝐶𝑇𝑃𝑊𝑀
𝑃𝑅2 = − 1 = 224 𝐶𝑇 = = 225 = 11100001
4 ∙ 𝑇𝑜𝑠𝑐 ∙ 𝑀 𝑇𝑜𝑠𝑐 ∙ 𝑀
El valor inicial decimal calculado para PR2 El valor inicial decimal calculado para
es: 224 CCPR1L es: 56
Los dos bits menos significativos son: 01
Para el Timer 0: Para el Timer 1:
𝑇 ∙ 𝐹𝑜𝑠𝑐 𝑇 ∙ 𝐹𝑜𝑠𝑐
𝑁= = 156.25 ≈ 157 𝑁= = 50000
4∙𝑀 4∙𝑀
VI=256-157=99 VI=65536-50000=15536
El valor inicial decimal calculado es: 99 El valor inicial decimal calculado es: 15536
12
Curso: Microcontroladores y Microprogramación – Clases Prácticas
13