MODO DE FUNCIONAMIENTO DE LO TIMERS
El modo de funcionamiento de los timers se selecciona fijando los bits M0 Y M1 del registro TMOD.
La frecuencia de entrada es 1/12 de la frecuencia del oscilador trabajando en modo Temporizador, o la frecuencia de la señal de entrada al pin Tx (1) si trabaja en modo contador (counter).
El Timer funciona en este caso como un contador de 8 bits precedido por un predivisor de 32 . El registro del contador se configura, pues, como un registro de 13 bits: 5 bits en la parte baja para el predivisor (TLx) y 8 bits en la parte alta para la cuenta (THx). Cuando el contador pase de estar los 13 bits a 1, a estar todos a 0, el indicador de interrupción TRx se pone a 1. La entrada de conteo esta habilitada cuando TRx (bit de control del registro TCON) está a 1 y cuando GATE (Bit de modo de TMOD) está a 0, o bien cuando la entrada INTx se encuentra en estado 1.
figura: TIMER 1 EN MODO 0
Para el Timer 0 sería lo mismo pero utilizando los registros correspondientes a este Timer.
En este modo se produce el rebosamiento al contar 2^13=8.192 ciclos máquina o flancos de bajada, hecho que activa el fag de interrupción del timer utilizado.
Los 5 bits de
TLx son de menor peso, y los 3 de mayor peso son indeterminados, por lo que han de ser
ignorados por el programador.
El modo 1 es idéntico al modo 0 excepto porque el registro del contador emplea su capacidad completa (16 bits) sin predivisor, 8 en TLx y otros 8 en THx. El rebasamiento se produce al contar 2^16=65.536 ciclos máquina o flancos de bajada, con lo que se activa el flag de interrupción.
El modo 2 de funcionamiento configura el Timer como un contador de 8 bits con recarga automática. La parte baja TLx sirve de contador. Cuando este contador llega a 0 por desbordamiento, el indicador TFx se pone a 1 y el contenido de THx se carga en el contador TLx. El valor de autorrecarga lo elige el programador según sus cálculos, y el caso de que fuera 00 hexadecimal, entonces se produciría el rebosamiento al contar 2^8=256 ciclos máquina o flancos de bajada.
figura: TIMER/COUNTER (T1) EN MODO 2
Es un modo que proporciona dos contadores de 8 bits independientes, siendo los registros de contaje, el TL0 y el THO. El primero mantiene la estructura del Timer T0, y el segundo (ver figura) permite solamente la cuenta de ciclos máquina, realizándose su control directamente mediante la señal TR1 y activando el flag de interrupción del Timer T1 cuando se produce el rebosamiento.
El modo 3 esta dirigido a las aplicaciones que necesitan un contador adicional de 8 bits. Con el Timer T0 configurado en modo 3, el 8051 posee un timer de 16 bits (T1) y dos timers de 8 bits. Esta característica sólo es utilizable en aplicaciones en las que el Timer T1 no requiera su recurso de interrupción, puesto que en este caso su indicador (TF1) está unido a la salida del contador de 8 bits en que se convierte TH0.
figura: TIMER/COUNTER (T0) EN MODO 3
En modo 3, el
Timer 1 está bloqueado como si su bit de control TR1 estuviera a 0.
(1) Se utiliza el termino "x" haciendo referencia a la utilización tanto del Timer 0 (T0) como del Timer 1 (T1) indistintamente.