El Timer2 del 89C52

Anuncio
Microcontroladores
El
ElTimer
Timer22
El Timer2 del 89C52
Carlos E. Canto Quintal M.C.
Microcontroladores
El
ElTimer
Timer22
El Timer2 del 89C52
El Timer 2 es un Timer/Contador de 16 bits que puede ser operado ya sea
como timer o como contador de eventos.
El tipo de operación es seleccionado por el bit C/T2 el SFR T2CON .
El Timer 2 tiene 3 modos de operación:
• Modo de Captura
• Auto-recarga (conteo ascendente-descendente)
• Generador de Baudaje.
Los modos se seleccionan con los bits del T2CON.
El Timer 2 consiste de dos registros de 8 bits, TH2 y TL2.
La operación del timer 2, tanto como timer como contador de eventos
externos, es similar a la de los Timers 0 y 1.
Carlos E. Canto Quintal M.C.
TIMER 2
Microcontroladores
Microcontroladores
(MSB)
T2CON: REGISTRO DE CONTROL DELTIMER/CONTADOR2
TF2
TF2
EXF2
EXF2
RCLK
RCLK
TCLK
TCLK EXEN2
EXEN2
TR2
TR2
(LSB)
C/T2
C/T2 CP/RL2
CP/RL2
SIMBOLO
POSICIÓN
NOMBRE Y SIGNIFICADO
TF2
T2CON.7
Bandera de sobre flujo del Timer2 se hace 1 con el rebase del Timer y debe hacerse 0 por software.TF2 no se hace 1 cuando RCLK=1
o cuando RCLK=1
EXF2
T2CON.6
Bandera externa del Timer2, se hace 1 cuando ya sea una captura o una recarga sea producida desde el exterior, al ocurrir una
transición negativa en T2EX y además que EXEN2=1. Siempre la interrupción del timer 2 esté habilitada, EXF2=1 hará que la CPU
vectorice a la rutina de servicio del timer 2. EXF2 debe deshabilitarse por software. EXF2 no produce una interrupción en modo
contador Up//Down (DCEN=!)
RCLK
T2CON.5
Bandera del reloj de recepción. Cuando se hace 1, hace que el puerto serie use los pulsos del sobre flujo del timer 2 para el reloj de su
receptor en los Modos 1 , 3 y el timer 1 proporcionará el baudaje del transmisor. RCLK=0 hará que el sobre flujo del Timer 1 sea usado
para el reloj del receptor
TCLK
T2CON.4
Bandera de reloj del transmisor. Cuando está en 1, hace que el puerto serial use los pulsos del sobre flujo del timer 2 para el reloj de su
transmisor en los Modos 1 , 3 y el timer 1 proporcionará el baudaje del receptor. TCLK=0 hará que el sobre flujo del Timer 1 sea usado
para el reloj del transmisor.
EXEN2
T2CON.3
Bandera de habilitación externa, Cuando está habilitada permite que ocurra una captura o una recarga como resultado de una
transición negativa en T2EX si el Timer 2 no está siendo usado para temporizar el puerto serial. EXEN2=0 hace que el Timer2 ignore
los eventos en T2EX
TR2
T2CON.2
Control de Arranque /Paro del Timer2. Un 1 lógico arranca el Timer2
C/T2
T2CON.1
Selección de Timer o contador (Timer2)
0=Timer interno (OSC/12)
1=Contador de eventos externos (disparado en la transición de bajada)
CP/RL2
T2CON.0
Bandera de Captura/Recarga. Cuando está en 1, ocurrirá una captura con una transición negativa en T2EX si EXEN2=1. Cuando está
en cero, ocurrirá una auto recarga ya sea cuando el Timer 2 rebase o una transición negativa en T2EX y que EXEN=1. Cuando ya sea
que RCLK=1 o TCLK=1, este bit es ignorado y el timer es forzado a una auto recarga en el rebase del Timer 2.
Carlos Canto Quintal
TIMER 2
Microcontroladores
Microcontroladores
(MSB)
T2MOD: REGISTRO DE CONTROL DE MODO DEL TIMER/CONTADOR2
(LSB)
----
----
DIRECCIÓ
DIRECCIÓN DEL T2MOD=0C9H
----
----
----
----
NO ES DIRECCIONABLE A BIT
T20E
T20E
DCEN
DCEN
VALOR DE RESET=XXXXX00B
SIMBOLO
POSICIÓN
NOMBRE Y SIGNIFICADO
--
T2MOD.7
NO IMPLEMENTADO , RESERVADO PARA EL FUTURO
--
. T2MOD.6
NO IMPLEMENTADO , RESERVADO PARA EL FUTURO
--
T2MOD.5
--
T2MOD.4
--
T2CON.3
--
T2CON.2
T20E
T2MOD.1
TIMER2 OUTPUT ENABLE BIT (BIT HABILITADOR DE LA SALIDA DEL TIMER2)
DCEN
T2MOD.0
CUANDO SE PONE A “1” , PERMITE QUE EL TIMER2 SE CONFIGURE COMO CONTADOR
CRECIENTE-DECRECIENTE (UP-DOWN)
Carlos Canto Quintal
Microcontroladores
Las
LasInterrupciones
Interrupciones
El
El manejo
manejo de
de las
las Interrupciones
Interrupciones en
en el
el 80C52
80C52
Registro habilitador de las Interrupciones (IE:
Interrupts Enable Register
))
Register))
EA
EA
----
ET2
ET2
ES
ES
ET1
ET1
EX1
EX1
ET0
ET0
EX0
EX0
SIMBOLO
POSICIÓN
FUNCIÓN
EA
IE.7
deshabilita todas las interrupciones
--
IE.6
Reservada
ET2
IE.5
Bit habilitador de interrupción del timer2
ES
IE.4
Habilitador de interrupción del puerto serie
ET1
IE.3
Habilitador de interrupción del timer 1
EX1
IE.2
Habilitador de la interrupción externa 1
ET0
IE.1
Habilitador de interrupción del timer 0
EX0
IE.1
Habilitador de la interrupción externa 0
Carlos E. Canto Quintal
Microcontroladores
Las
LasInterrupciones
Interrupciones
Fuentes
ón en
Fuentes de
de Interrupci
Interrupción
enel
el80C52
80C52
ET2
Carlos E. Canto Quintal
TIMER 2
Microcontroladores
Microcontroladores
MODOS DE OPERACIÓN DEL TIMER2
RCLK+TCLK
CP/RL2
TR2
MODO
0
0
1
0
1
X
1
1
1
Auto-Recarga de 16 bits
Captura de 16 bits
Generador de baudaje
X
X
0
Apagado
Carlos Canto Quintal
Microcontroladores
Microcontroladores
TIMER 2
Modo Auto-recarga (contador Ascendente
o Descendente)
Cuando se configura en su modo de Auto-Recarga de 16 bits, el timer 2
puede ser programado para contar en forma ascendente o
descendente.
Esta habilidad es invocada con el bit DCEN (Down Counter Enable ),
localizado en el SFR T2MOD
Al resetear el CPU, el DCEN está en cero, lo que hace que el Timer 2 por
default cuente hacia arriba (Up).
Cuando el DCEN se pone a uno, el Timer 2 puede contar hacia arriba o
hacia abajo, dependiendo del valor de T2EX
Carlos Canto Quintal
TIMER 2
Microcontroladores
Microcontroladores
TIMER 2 EN MODO AUTO-RECARGA (cuando DCEN=0)
Con la habilidad de conteo Up/Down desactivada
osc
osc
_: 12
: 12
C/T2=0
TL2
TH2
TL2 TH2
(8bits)
(8bits)
(8bits)(8bits)
C/T2=1
T2
T2
control
TR2
TR2
Recarga
RCAP2L
RCAP2H
RCAP2L RCAP2H
Detector de
transición
TF2
TF2
T2EX
T2EX
Interrupción
Interrupción
del
del Timer2
Timer2
EXF2
EXF2
control
EXEN2
EXEN2
Carlos Canto Quintal
Microcontroladores
Microcontroladores
TIMER 2
TIMER 2 EN MODO AUTO-RECARGA (cuando DCEN=0)
Con la habilidad de conteo Up/Down desactivada
• Cuando DCEN=0, el Timer 2 automá
automáticamente realiza un
•
•
•
conteo ascendente.
En este modo se pueden seleccionar dos opciones con el bit
EXEN2 del T2CON.
Si EXEN2 =0, el timer 2 cuenta hasta 0FFFFH y se activa el bit
TF2 con el overflow.
overflow.
El overflow tambié
también hace que los registros del timer sean
recargados con el valor de 16 bits en RCAP2H RCAP2L.
Los valores del timer en modo captura, RCAP2H y RCAP2L son
preestablecidos por programa.
si EXEN2=1, un arecarga de 16 bits puede ser producida ya sea
por un overflow o por una transició
transición de 0 a 1 en la entrada
externa T2EX. Esta transició
transición tambié
también activa el bit EXF2. Tanto
TF2 como EXF2 pueden generar una interrupció
interrupción , si está
está
habilitada
Carlos Canto Quintal
TIMER 2
Microcontroladores
Microcontroladores
Generaci
ón de Interrupciones en el Timer2
Generación
• La interrupción del Timer 2 es generada por un OR
lógico entre los bits TF2 y EXF2 del registro T2CON.
•
Ninguna de estas dos banderas son limpiadas por
hardware cuando la rutina de servicio es invocada. De
hecho, la Rutina de Servicio debe determinar cual de
las dos banderas, TF2 o EXF2, fue la que generó la
interrupción, y ese bit será limpiado en el programa.
TF2
TF2
Interrupción
Interrupción
del
del Timer2
Timer2
EXF2
EXF2
Carlos Canto Quintal
TIMER 2
Microcontroladores
Microcontroladores
TIMER 2 EN MODO AUTO-RECARGA (cuando DCEN=1)
Con la habilidad de conteo Up/Down activada
Valor
Valor de
de recarga
recarga en
en
conteo
conteo descendente
descendente
0FFh
0FFh
0FFh
0FFh
conmuta
EXF2
EXF2
osc
osc
_: 12
: 12
C/T2=0
TL2
TH2
TL2 TH2
(8bits)
(8bits)
(8bits)(8bits)
C/T2=1
T2
T2
TF2
TF2
control
TR2
Valor
Valor de
de recarga
recarga en
en
conteo
ascendente
conteo ascendente
T2EX
T2EX
Dirección de conteo
1= Up
0=Down
Carlos Canto Quintal
RCAP2L
RCAP2H
RCAP2L RCAP2H
Interrupción
Interrupción
del
del Timer2
Timer2
TIMER 2
Microcontroladores
Microcontroladores
TIMER 2 EN MODO AUTO-RECARGA (cuando DCEN=1)
Con la habilidad de conteo Up/Down activada
• Cuando DCEN=1 , el Timer2 realiza un conteo descendente.
• En este modo la terminal T2EX controla la dirección del conteo .
• Un “1” lógico en T2EX hace que el Timer2 cuente hacia arriba.
– El Timer hará
hará overflow en 0FFFFH y activa la bandera TF2. Este
overflow tambié
también hace que el valor de 16 bits de RCAP2H y RCAP2L
sea recargado en los registros del timer, TH2 y TL2 respectivamente.
respectivamente.
• Un “0” lógico en T2EX, hace al Timer2 contar hacia abajo.
– El timer hace un underflow cuando TH2 y TL2 igualan el valor
almacenado en RCAP2H y RCAP2L. El underflow activa el bit TF2 y
hace los registros del timer sean recargados con 0FFFFh.
0FFFFh.
• El bit EXF2 conmuta siempre que el Timer2 haga ya sea overflow
o underflow y puede ser usado como el 17avo bit de resolución.
• En este modo de operación, EXF2 no invoca una interrupción.
Carlos Canto Quintal
Microcontroladores
El
ElTimer
Timer22
Modo Captura
En el modo captura, hay dos opciones escogidas con el bit EXEN2 del
T2CON.
Si EXEN2=0, el Timer 2 es un timer o contador de 16 bits y cuando hay
desborde de su conteo, habilita la bandera TF2 del T2CON, que puede ser
usada para generar una interrupción.
Si EXEN2=1, el Timer 2 realiza la misma operación, pero una transición de
1 a 0 en la entrada externa T2EX también hace que el valor actual de TH2
y TL2 sean capturados en RCAP2H y RCAP2L, respectivamente.
Además la transición en T2EX hace que el bit EXF2 del T2CON se haga “1”.
El bit EXF2, al igual que TF2, puede generar una interrupción.
Carlos E. Canto Quintal M.C.
TIMER 2
Microcontroladores
Microcontroladores
TIMER 2 EN MODO CAPTURA
osc
osc
_: 12
: 12
C/T2=0
TL2
TH2
TL2 TH2
(8bits)
(8bits)
(8bits)(8bits)
C/T2=1
T2
T2
TF2
TF2
control
Interrupción
Interrupción
del
del Timer2
Timer2
TR2
TR2
Detector de
transición
captura
T2EX
T2EX
RCAP2L
RCAP2H
RCAP2L RCAP2H
EXF2
EXF2
control
EXEN2
EXEN2
Carlos Canto Quintal
Microcontroladores
El
ElTimer
Timer22
Modo Generador de Baudaje
El timer 2 es habilitado como generador de baudaje poniendo en
uno TCLK y/o RCLK en el registro T2CON.
Nótese que el baudaje del transmisor y el del receptor pueden ser
diferentes, si el timer 2 se usa para el baudaje del receptor o para
el del transmisor entonces el Timer 1 se podrá usar para la
función del otro.
El modo generador de baudaje es similar al modo de autorecarga, en el hecho que cuando se rebasa el TH2 hace que los
registros del timer 2 sean recargados con el valor de 16 bits de
los registros RCAP2H y RCAP2L, los ciuales son preestablecidos
por programa.
Carlos E. Canto Quintal M.C.
Microcontroladores
El
ElTimer
Timer22
Modo Generador de Baudaje
La operación del timer 2 es diferente cuando se usa como generador de baudaje .
Normalmente , como timer se incrementa en cada ciclo de máquina (a 1/12 la
frecuencia del oscilador ).
Como generador de baudaje, sin embargo, se incrementa a ½ la frecuencia del
oscilador.
El baudaje se calculará con la formula siguiente:
fB=
fosc
1
32
N
Donde,
Entonces tenemos que:,
N = 65,536-RCAP2H,RCAP2L
fosc
fB =
32
RCAP2H,RCAP2L=65,536 -
1
65,536-RCAP2H,RCAP2L
fosc
32 (fB)
Carlos E. Canto Quintal M.C.
TIMER 2
Microcontroladores
Microcontroladores
TIMER 2 EN MODO GENERADOR DE BAUDAJE
Sobre flujo del Timer 1
Nota: la frecuencia del
oscilador es dividida entre 2
no entre12
osc
osc
_: 2
:2
1
_: 2
:2
0
TL2
TH2
TL2 TH2
(8bits)
(8bits)
(8bits)(8bits)
C/T2=1
T2
T2
1
0
RCLK
control
_: 16
: 16
TR2
TR2
1
RCAP2L
RCAP2H
RCAP2L RCAP2H
Detector de
transición
T2EX
T2EX
EXF2
EXF2
control
EXEN2
EXEN2
Carlos Canto Quintal
SMOD
C/T2=0
Interrupción
del
Timer 2
RX Clock
0
TCLK
_: 16
: 16
TX Clock
TIMER 2
Microcontroladores
Microcontroladores
TIMER 2 EN MODO RELOJ DE SALIDA
Nota: la frecuencia del
oscilador es dividida entre 2
no entre12
osc
osc
TL2
TH2
TL2 TH2
(8bits)
(8bits)
(8bits)(8bits)
_: 2
:2
TR2
TR2
Salida
de reloj
RCAP2L
RCAP2H
RCAP2L RCAP2H
C/T2
C/T2
P1.0
_: 2
:2
T2
T2
P1.1
T2EX
T2EX
EXF2
EXF2
Interrupción
del
Timer 2
T2OE
T2OE(T2MOD.1)
(T2MOD.1)
Detector de
EXEN2
transición EXEN2
Carlos Canto Quintal
Microcontroladores
El
ElTimer
Timer22
Salida de Reloj Programable
Se puede programar la salida de un reloj con un ciclo de trabajo del 50%, en la
terminal P1.0 . Esta terminal, además de ser una terminal regular de E/S, tiene dos
funciones alternas.
Puede ser programada como la entrada de reloj externo para el Timer/Contador 2 o
para emitir un reloj con ciclo de trabajo entre del 50% con un rango de entre 61hz y 4
Mhz con una frecuencia de operación de 16 MHz.
Para configurar el timer 2 como generador de reloj, el bit C/T2 (T2CON.1) debe ser “0”
y el bit T2OE (T2MOD.1) debe ser “1”.
El bit TR2 ( T2CON.2) arranca y para el Timer .
La frecuencia del reloj de salida depende de la frecuencia del oscilador y el valor de
recarga de los registros de captura del (RCAP2H, RCAP2L).
En el modo de salida de reloj, el rebase del conteo del Timer 2 no genera
interrupción.
Frecuencia del oscilador
Frecuencia de salida del reloj =
4 X (65,536-RCAP2H,RCAP2L)
Carlos E. Canto Quintal M.C.
Descargar