Sie sind auf Seite 1von 27

LOS TIMER DE LOS 16F87x

MICROCONTROLADORES PIC

TEMA
EL TIMER 1

CCFF D.P.E. MÓDULO DE PROYECTOS 1


LOS TEMPORIZADORES Diagrama de Bloques del TIMER1

CCFF D.P.E. MÓDULO DE PROYECTOS 2


INTRODUCCIÓN
El módulo TIMER1 es un temporizador/contador de
LOS TEMPORIZADORES

16 bits, está formado por la unión de dos registros


TMR1H y TMR1L, de 8 bits cada uno.
Ambos registros se pueden leer y escribir.
El par de registros TMR1 (TMR1H:TMR1L),
(TMR1H:TMR1L) se
incrementan desde 0000h a FFFFh, para volver a
comenzar desde 0000h.
Si la interrupción de TMR1 está habilitada, cuando
el contador pasa de todo 1 a todo 0, se activará,
señalándose esta circunstancia en el flag
correspondiente, TMR1IF (PIR1<0>).

CCFF D.P.E. MÓDULO DE PROYECTOS 3


La interrupción del TMR1 puede ser habilitada o
enmascarada, poniendo a 1 ó 0 el bit TMR1IE
(PIE1<0>).
LOS TEMPORIZADORES

El TIMER1 pueden operar de dos modos:

• Como temporizador
• Como contador

El modo de funcionamiento se determina por el


origen de los pulsos a contar, mediante el bit,
TMR1CS (T1CON<1>).

CCFF D.P.E. MÓDULO DE PROYECTOS 4


A.- En el modo temporizador, el TIMER1 se
incrementa con cada ciclo de instrucción (Fosc/4).
LOS TEMPORIZADORES

B.- En el modo contador, el TIMER1 se


incrementa con cada flanco ascendente de un
reloj externo.

El Timer1 puede ser activado/desactivado,


poniendo a 1/0 el bit TMR1ON (T1CON<0>).

El Timer1 posee un reset interno, este “RESET”,


puede ser generado por cualquiera de los dos
módulos CCP que posee el PIC.

CCFF D.P.E. MÓDULO DE PROYECTOS 5


Cuando el oscilador del Timer1 está habilitado
(T1OSCEN es 1), los pines RC1/T1OSI/CCP2 y
RC0/T1OSO/T1CKI son entradas, y el valor de
LOS TEMPORIZADORES

TRISC<1:0>es ignorado, y la lectura de estos


pines da ‘0’.

CCFF D.P.E. MÓDULO DE PROYECTOS 6


El Registro T1CON
T1CON es el registro de control del TIMER1, y
LOS TEMPORIZADORES

contiene los bits de: modo de funcionamiento


del módulo temporizador/contador,
habilitación del oscilador del timer1,
programación del preescaler etc.

Ocupa la dirección 10h de memoria RAM

CCFF D.P.E. MÓDULO DE PROYECTOS 7


El Registro T1CON
TMR1ON: ACTIVACIÓN/PARADA del TIMER1
LOS TEMPORIZADORES

– 1: Habilita el timer
– 0: El timer no funciona (valor por defecto)

TMR1CS: Bit de selección de la fuente del reloj


(modo de funcionamiento)

91:Reloj externo; ( contador) por el pin


RC0/T1OSO/T1CKI (en el flanco de subida)
90: Reloj interno (FOSC/4) valor por defecto

CCFF D.P.E. MÓDULO DE PROYECTOS 8


El Registro T1CON
#T1SYNC: BIT DE CONTROL DE LA
SINCRONIZACIÓN DE LA SEÑAL DE
LOS TEMPORIZADORES

ENTRADA (en modo contador).


Hay que comprobar el valor de TMR1CS,
Si TMR1CS=1
– 1: No sincroniza la entrada de reloj externo.
– 0: Sincroniza la entrada de reloj externa
Si TMR1CS=0
No se tiene en cuenta el valor de T1SYNC, ya
que la señal activa para el timer1 es interna
(modo temporizador) y ya está sincronizada.

CCFF D.P.E. MÓDULO DE PROYECTOS 9


El Registro T1CON
• T1OSCEN: Bit de habilitación del oscilador del
LOS TEMPORIZADORES

TIMER1, cuando se utiliza un oscilador externo,


hay que poner este bit a 1, EL TIMER1 PUEDE
TRABAJAR A UNA FRECUENCIA TOTALMENTE
INDEPENDIENTE DEL SISTEMA.
– 1: Habilita el oscilador.
– 0: Deshabilita el oscilador.
El inversor de entrada al oscilador se desconecta
para disminuir el consumo.

CCFF D.P.E. MÓDULO DE PROYECTOS 10


El Registro T1CON
• T1CKPS1:T1CKPS0: Bits de selección del
rango del preescaler, que actúa sobre la señal
LOS TEMPORIZADORES

de reloj del TIMER1.

TCKPS1 Valor del


TCKPS0 preescaler
0 0 1:1
0 1 1:2
1 0 1:4
1 1 1:8

Bits 7:6 Bits no implementados se leen como “0”.

CCFF D.P.E. MÓDULO DE PROYECTOS 11


EL TIMER 1 Como Temporizador
Este modo de funcionamiento se selecciona
poniendo a “0” el bit TMR1CS (T1CON<1>).
LOS TEMPORIZADORES

En este modo de trabajo el origen de los pulsos a


contar es interno, y proceden del reloj del sistema
siendo su frecuencia FOSC/4.

Evidentemente en este caso el bit T1SYNC no tiene


sentido ya que no existe señal a sincronizar.

CCFF D.P.E. MÓDULO DE PROYECTOS 12


EL TIMER 1 Como Contador

Este modo de funcionamiento se selecciona


LOS TEMPORIZADORES

poniendo a 1 el bit TMR1CS (T1CON<1>).

En este modo de trabajo el origen de los pulsos a


contar es externo, siendo el flanco activo
siempre el de subida.

Después de que el TIMER1 se ha configurado


como contador se debe producir un flanco de
bajada para que se empiece a contar.

CCFF D.P.E. MÓDULO DE PROYECTOS 13


LOS TEMPORIZADORES EL TIMER 1 Como Contador

Dentro del modo contador se distinguen dos


clases de contador:

™ Contador síncrono
™ Contador asíncrono
CCFF D.P.E. MÓDULO DE PROYECTOS 14
EL TIMER 1 Como Contador Síncrono

Para seleccionar este modo de


LOS TEMPORIZADORES

funcionamiento en primer lugar


deberemos tener TMR1CS a 1 (modo
contador) y además T1SYNC estar a “0”.
Así, la señal externa es sincronizada con
la fase del reloj interno. La sincronización
se hace con la señal de salida del
preescaler, por lo tanto en la entrada del
preescaler, el reloj externo es asíncrono.

CCFF D.P.E. MÓDULO DE PROYECTOS 15


EL TIMER 1 Como Contador Síncrono

La señal de reloj es por el pin


LOS TEMPORIZADORES

RC1/T1OSI/CCP2, si el bit T1OSCEN está a


“1”, o por el pin RC0/T1OSO/T1CKI, cuando el
bit T1OSCEN es “0”.

En esta configuración, y durante el modo SLEEP


mode, el Timer1 no se incrementa aunque el
reloj externo esté presente, sin embargo el
preescaler si que sigue incrementándose.

CCFF D.P.E. MÓDULO DE PROYECTOS 16


EL TIMER1 Como Contador Asíncrono

Para seleccionar este modo de funcionamiento, se


LOS TEMPORIZADORES

debe poner a “1” el bit TMR1CS (modo


contador), y además T1SYNC debe encontrarse
a 1 también.
En estas condiciones, la señal de reloj externa no
se sincroniza con el reloj interno. El contador
continúa incrementándose si el microcontrolador
se encuentra en el modo SLEEP y puede
generar una interrupción si se produce el
desbordamiento y despertar al procesador.
Cuando se trabaja con el TIMER1 en modo
contador asíncrono, éste no pude utilizarse
como base de tiempos para el módulo CCP.
CCFF D.P.E. MÓDULO DE PROYECTOS 17
Lectura Y Escritura En El TIMER1 Cuando Se
Trabaja En Modo Contador Asíncrono
LOS TEMPORIZADORES

Se puede leer TMR1H o TMR1L, mientras el


contador está funcionando con una señal de
reloj externa. Sin embargo el usuario debe
tener en cuenta que el valor de la cuenta es de
16 bits, y que debe ser leído en dos veces (8
bits cada vez), por lo cual puede ocurrir que se
produzca un overflow entre estas dos lecturas,
con lo cual el valor leído no es el correcto.

CCFF D.P.E. MÓDULO DE PROYECTOS 18


Lectura Y Escritura En El TIMER1 Cuando Se
Trabaja En Modo Contador Asíncrono
LOS TEMPORIZADORES

Para la escritura, se recomienda parar el


contador, y luego proceder a escribir el valor
deseado.
Una escritura mientras el registro está siendo
incrementado por la señal externa (no se ha
parado), produce que que el valor almacenado
en el contador sea impredecible.

CCFF D.P.E. MÓDULO DE PROYECTOS 19


Oscilador Del TIMER1

Se puede conectar un cristal entre los terminales


LOS TEMPORIZADORES

T1OSI (entrada) y T1OSO (salida del


amplificador). Este oscilador se habilita
poniendo a 1 el bit de control T1OSCEN
(T1CON<3>).

CCFF D.P.E. MÓDULO DE PROYECTOS 20


Oscilador Del TIMER1
El oscilador es de bajo consumo, y puede llegar a
LOS TEMPORIZADORES

funcionar hasta con frecuencias de 200kHz, En


estas condiciones , seguirá funcionando incluso
en el modo de bajo consumo (sleep).
Este oscilador fue concebido para funcionar con
un cristal de 32kHz. Y de idéntica manera al
oscilador LP del procesador, al cual es idéntico.
La estructura, así como los condensadores
típicos para el oscilador se muestran en la
siguiente transparencia.

CCFF D.P.E. MÓDULO DE PROYECTOS 21


LOS TEMPORIZADORES

CCFF D.P.E. MÓDULO DE PROYECTOS 22


LOS TEMPORIZADORES Oscilador Del TIMER1

En el anterior circuito hay que observar que a


mayor capacidad, mayor estabilidad del
oscilador, pero también aumenta el start-up.

También se debe indicar que cada cristal/


resonador posee sus propias características. El
usuario debe consultar los valores apropiados
de los componentes externos al cristal.

CCFF D.P.E. MÓDULO DE PROYECTOS 23


Reset Del Timer1, Mediante El Disparo De Los
Módulos CCP

Si alguno de los módulos CCP1 o CCP2 están


LOS TEMPORIZADORES

configurados en modo comparación para generar


un “disparo por evento especial”
(CCP1M3:CCP1M0 = 1011), esta señal puede
resetear el Timer1.

Para aprovechar la anterior característica, el


TIMER1 debe configurarse en modo temporizador
o como contador síncrono, en el tercer modo
(contador asíncrono) no se produce el reset.

CCFF D.P.E. MÓDULO DE PROYECTOS 24


Reset Del Timer1, Mediante El Disparo De Los
Módulos CCP
Nota: El disparo por evento especial en CCP1 y
LOS TEMPORIZADORES

CCP2, no provoca que se ponga a 1 el flag de


interrupción TMR1IF (PIR1<0>).

En este modo de operación, el par de registros


CCPRxH:CCPRxL se reinician para tener el
mismo periodo que el timer 1.

Si el evento especial de CCP1 o CCP2 coincide


con una escritura sobre TMR1, se escribirá el
valor anterior.

CCFF D.P.E. MÓDULO DE PROYECTOS 25


Reset De Los Registros TMR1H Y TMR1L

Los registros TMR1H y TMR1L no se ponen a 00h


LOS TEMPORIZADORES

después de un Power On Reset (POR), o por


cualquier otro RESET, excepto por el disparo por
eventos especiales de CCP1 o CCP2

El registro T1CON, tras unPower-on Reset, o un


Brown-out Reset, se pone a 00h, el timer se para
y el el preescaler es situado con el factor 1:1.
Con los demás reset, el registro no se ve afectado.
El preescaler se resetea siempre que se escribe
sobre el registro TMR1H o TMR1L.
CCFF D.P.E. MÓDULO DE PROYECTOS 26
Registros Asociados Con El
Contador/Temporizador TIMER1
LOS TEMPORIZADORES

CCFF D.P.E. MÓDULO DE PROYECTOS 27

Das könnte Ihnen auch gefallen