TEMPORIZADORES DE LOS PIC16F84A -PIC16F877A
©ATE-Universidad de Oviedo
1
Módulos de Temporización
CARACTERÍSTICAS GENERALES DE LOS TEMPORIZADORES
• Un temporizador, en general, es un dispositivo que marca o indica el
transcurso de un tiempo determinado
•Los PIC16F87X tienen 3 módulos temporizadores denominados TIMER0
(TMR0), TIMER1 (TMR1) y TIMER2 (TMR2).
• Los módulos temporizadores en losmicrocontroladores PIC se emplean
para contabilizar intervalos de tiempo o para contar flancos que aparecen en
pines externos del micro, esto último lo pueden hacer TMR0 y TMR1 pero no
TMR2
• Cuando trabajan como temporizadores, utilizan como patrón de cuenta un
reloj que se genera a partir del oscilador del microcontrolador
• Cada módulo puede generar una interrupción para indicar que algún eventoha ocurrido (que se ha sobrepasado el valor máximo de cuenta de un
temporizador –overflow- o que se ha alcanzado un valor dado)
©ATE-Universidad de Oviedo
2
Módulos de Temporización
T0CKI
Entrada de flancos
para TMR0 en modo
contador
T1CKI
Entrada de flancos
para TMR1 en modo
contador
TMR0: temporizador/contador
TMR1: temporizador/contador
TMR2: temporizador©ATE-Universidad de Oviedo
La configuración de los
temporizadores se realiza
mediante la carga de
ciertos registros
presentes en RAM
3
Módulos de Temporización
Temporizador TMR0
• Se basa en un contador ascendente de 8 bits al que se accede mediante un
registro en RAM denominado TMR0 (posiciones 01h-101h).
• Dicho registro se puede leer (p.e. movf TMR0,W) y se puede escribir
(movwfTMR0) desde la CPU del microconrtolador.
• Puede utilizar un prescaler o divisor de frecuencia previo de 8 bits cuyo
valor de división es configurable por software.
• Se puede seleccionar como fuente de reloj: un reloj interno (fosc/4) como
temporizador o uno externo que entre a través del pin RA4/T0CKI como
contador
• Permite solicitar interrupciones cuando se produce un desbordamiento(overflow) del registro TMR0. Es decir cuando pasa del valor 0xFF al 0x00.
• Para el caso de cuenta de pulsos de un reloj externo, se puede seleccionar
en qué flanco (de subida o de bajada) se realiza la cuenta.
©ATE-Universidad de Oviedo
4
Módulos de Temporización
Diagrama de Bloques del TEMPORIZADOR TMR0
Bus de datos
CLKOUT (fOSC/4)
0
RA4 / T0CKl
M
P
X
1
T0SE
1
0T0CS
0
Watchdog
Habilitación
de WDT
M
P
X
1
M
P
X
SYNC
2
ciclos
8
TMR0
Pone flag
T0IF a 1
al desbordar
PSA
Prescaler de 8 bits
8
Mpx 8:1
PS2:PS0
PSA
0
1
MPX
PSA
Temporización del WDT
©ATE-Universidad de Oviedo
5
Módulos de Temporización
TEMPORIZADOR TMR0 y WATCHDOG (WDT)
• Los bits de configuración que aparecen en elanterior diagrama de bloques
están en el registro OPTION (denominado OPTION_REG en elfichero de
inclusión de etiquetas de
registros y bits P16F877.INC
para distinguir el registro
de la antigua instrucción
OPTION)
• El divisor de frecuencia
se le asigna bien al TMR0
ó bien al WDT mediante
el bit PSA.
• Si PSA=1, entonces
el prescaler es utilizado
por el WDT y TMR0
contabilizadirectamente los
flancos sin división alguna
©ATE-Universidad de Oviedo
6
Módulos de Temporización
TEMPORIZADOR TMR0
La fuente de reloj para el TIMER0 se selecciona mediante el bit T0CS
(OPTION).
•Si TOCS=0, el TMR0 cuenta flancos a partir del reloj interno
(frecuencia base fosc/4).
•Si T0CS=1, el TMR0 cuenta como base flancos que entran al
microcontrolador por el pin RA4/T0CKI.
Si secuentan pulsos del pin RA4/T0CKI, el bit T0SE (OPTION) permite
seleccionar el flanco de la señal en el que se produce el incremento de la
cuenta (entrada de la puerta EXOR)
•Si T0SE=0, se selecciona el flanco de subida.
•Si T0SE=1, se selecciona el flanco de bajada.
©ATE-Universidad de Oviedo
7
Módulos de Temporización
TEMPORIZADOR TMR0
Cuando se carga un valor en el registro TMR0...
Regístrate para leer el documento completo.