1. Los Temporizadores/Contadores
Los Temporizadores/Contadores
Los Temporizadores/Contadores
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Los
Los Timers
Timers/Contadores
/Contadores
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
9
9El 80C51 tiene dos registros de
El 80C51 tiene dos registros de Timers
Timers/
/Contadore
Contadore de 16 bits :
de 16 bits :
El Timer0 y el Timer 1.
El Timer0 y el Timer 1.
9
9Se pueden configurar para operar ya sea como
Se pueden configurar para operar ya sea como Timers
Timers o como contadores de
o como contadores de
eventos.
eventos.
TIMER PUEDE CONTAR EVENTOS O TEMPORIZAR
2. Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Modelo de la operaci
Modelo de la operació
ón de los
n de los Timers
Timers 0 y 1 del 80C51
0 y 1 del 80C51
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Oscilador
interno
Oscilador
interno
fxtal
: 12
: 12
CONTADOR
CONTADOR
fxtal / 12
fosc= fxtal
Conteo inicial
Conteo inicial
TF0
TF0
C/T=1
contador
C/T=0
timer
C / T
C / T
TRx
TRx
GATE
GATE
CLK OVF
Genera
Interrupción
Genera
Interrupción
Xtal1
Xtal1
Xtal2
Xtal2
Tx
Tx
INTx
INTx
3. Configuraci
Configuració
ón de Timer
n de Timer
Oscilador
interno
Oscilador
interno
fxtal = 12 MHz
: 12
: 12
Contador
programable
Contador
programable
fxtal / 12= 1 MHhz
fosc= fxtal = 12 MHz
Conteo inicial
Conteo inicial
1µseg
TF0
TF0
Microcontroladores
M.I. Carlos Canto Quintal
Facultad de Ciencias/UASLP
EL TIMER
Funcionando como Timer, el registro es incrementado cada ciclo d
Funcionando como Timer, el registro es incrementado cada ciclo de
e
m
má
áquina, por lo tanto se puede pensar que opera como un contador
quina, por lo tanto se puede pensar que opera como un contador de
de
ciclos de m
ciclos de má
áquina .
quina .
Ya que un ciclo de m
Ya que un ciclo de má
áquina consta de 12 periodos del oscilador, la rapidez
quina consta de 12 periodos del oscilador, la rapidez
de conteo es de 1/12 la frecuencia del oscilador.
de conteo es de 1/12 la frecuencia del oscilador.
Modelo de los Timer 0 y 1
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
4. Timer 0-1, Registro de control TMOD
GATE
GATE=1, el TIMER x está habilitado solamente cuando su patilla de entrada INTx está
a ‘1’ y el bit TRx del registro TCON está a ‘1’
GATE = 0, el TIMER x está habilitado si TRx está a 1.
C/T
Permite la selección de la función TIMER:
C/T = 0, el TIMER actúa como TEMPORIZADOR
C/T = 1, el TIMER actúa como CONTADOR de los eventos presentes en la
patilla de entrada Tx.
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Timer 0-1,TMOD – Modos de funcionamiento
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
5. Timer 0-1, Registro de control TCON
TF1: Indicador de desbordamiento del TIMER 1. Puesto a 1
automáticamente cuando el contador llega a 0. Si la interrupción
correspondiente está permitida, este indicador automáticamente se vuelve
a poner a 0 cuando se ejecuta la subrutina de interrupción Si se utiliza por
sondeo hay que borrar el flag manualmente
TR1: Bit de arranque del TIMER 1. Se debe poner a 1 por software para
permitir la cuenta en el TIMER y a 0 para detenerla
TF0: Indicador de desbordamiento del TIMER 0 . Mismo funcionamiento
que TF1
TR0: Bit de arranque del TIMER 0. Mismo funcionamiento que TR1
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
7. Timer 0-1,Modo 1: Contador de 16 bits
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Ejemplo del uso del Timer en modo 1
Ejemplo del uso del Timer en modo 1 :
:
Se desea conseguir un retardo de 50
Se desea conseguir un retardo de 50 msegs
msegs con un Timer del
con un Timer del
80C51
80C51
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Tmax=65,536
65,536-50,000=15,536
65,536-50,000=15,536
Tx=15,536 T=50,000
Reset
Para generar un retardo de 50
msegs con un cristal de 12 Mhz
se requiere contar 50,000
pulsos de reloj (ciclos de
máquina)
Para generar un retardo de 50
msegs con un cristal de 12 Mhz
se requiere contar 50,000
pulsos de reloj (ciclos de
máquina)
Inicio de conteo
Inicio de conteo
Cada ciclo de máquina es igual a 1µsegundo tal que:
50 msegs=1µsegundo X 50,000
8. Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
0
0 0
0 1
1 1
1 1
1 1
1 0
0 0
0 1
1 0
0 1
1 1
1 0
0 0
0 0
0 0
0
Timer T0=15,536
TH0=60 TH0=176
15, 536/256=60.6875
60*256=15360
15536-15360=176
15, 536/256=60.6875
60*256=15360
15536-15360=176
Obtenci
Obtenció
ón del Valor Inicial del timer para conseguir el
n del Valor Inicial del timer para conseguir el
conteo de 50,000 pulsos (ciclos de m
conteo de 50,000 pulsos (ciclos de má
áquina)
quina)
Timer 0-1,Modo 2: Contador de 8 bits con
recarga
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
9. FUNCIONALIDAD MODO 2
Generar interrupciones periódicas de periodo:
– Frecuencia Máxima. Cargando en THx=0xFF
– Frecuencia Mínima. Cargando en THx=0x00
Generar la frecuencia de reloj para las comunicaciones serie asíncronas
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Timer 1, Generador de frecuencia de comunicaci
Timer 1, Generador de frecuencia de comunicació
ón
n
serie
serie
Configuración TMOD
Frecuencias comunicación normalizadas
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
10. Timer 0 y 1. Modo 3
Timer 0 y 1. Modo 3
Si se configura el timer 1 en modo 3 este contador detiene su cuenta; tiene
un efecto equivalente a poner TR1= 0 en los modos 0, 1 o
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
FUNCIONAMIENTO DEL MODO 3
FUNCIONAMIENTO DEL MODO 3
FUNCIONAMIENTO DEL MODO 3
Al configurar el timer 0 en modo 3, se convierte en dos timers:
– TL0: temporizador o contador de eventos de 8 bits, se pone en
funcionamiento con TR0. Cuando se produce el desbordamiento activa TF0
– TH0: temporizador de 8 bits, se pone en funcionamiento con TR1. Cuando
se produce el desbordamiento se activa TF1. Estos bits (TR1 y TF1) dejan de
estar asociados al Timer 1
Cuando el timer 0 funciona en modo 3, el Timer 1 puede configurarse
como temporizador o contador en uno de los modos: 0, 1 o 2, estando
siempre funcionando y sin indicador de desbordamiento; para pararlo
hay que configurarlo también en modo 3. El timer 1 se puede emplear,
por ejemplo, para generar la frecuencia de funcionamiento del
dispositivo de comunicaciones serie (UART)
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
11. +5 V
8031
8031
P1.0
P1.0
(1/8) 74LS244
1ms
1ms
fxtal = 12 MHz
2ms
Frecuencia = 500Hz
Microcontroladores
M.I. Carlos Canto Quintal
Facultad de Ciencias/UASLP
EL TIMER
Ejemplo: programa el timer0 para que genere
una onda cuadrada de aproximadamente
500hz
Microcontroladores
M.I. Carlos Canto Quintal
Facultad de Ciencias/UASLP
EL TIMER
Carga de
Conteo
inicial
Carga de
Conteo
inicial
Alcanzó
Conteo
final
Alcanzó
Conteo
final
FC18H
FFFFh
0000h
SI TF0=1
llama a RSI
1000 pulsos contados
Se desea que cuando el
contador rebase su
conteo final FFFFh, no
regrese a ceros sino que
se recargue con el valor
de conteo inicial FC18h
Para timer
TR0=0
Para timer
TR0=0 Arranca timer
TR0=1
Arranca timer
TR0=1
CONTEO INICIAL=FFFFH-CONTEO DESEADO+1
CONTEO DESEADO=1000=03E8H
POR LO TANTO EL CONTEO INICIAL
SERÁ:
FFFFH-03E8H=FC17H+1=FC18H
TF0=0
Conteo inicial
12. Diagrama de flujo para el programa del ejemplo del Timer
Apagar LED en P1.0
Apagar LED en P1.0
Habilita interrupción
de Timer0
Habilita interrupción
de Timer0
Selección Modo
De operación del Timer0
Selección Modo
De operación del Timer0
Cargar conteo inicial
en TH0 y TL0
Cargar conteo inicial
en TH0 y TL0
Arranca Timer0
Arranca Timer0
Espera fin de conteo
Espera fin de conteo
Es TF0=1
?
Es TF0=1
?
Call Rutina de servicio
del Timer 0
Call Rutina de servicio
del Timer 0
No
El Micro realiza
esta parte
automáticamente
El Micro realiza
esta parte
automáticamente
Rutina de servicio
del Timer0
Rutina de servicio
del Timer0
Parar conteo
Parar conteo
Complementa P1.0
Complementa P1.0
Cargar conteo inicial
en TH0 y TL0
Cargar conteo inicial
en TH0 y TL0
Arranca Timer0
Arranca Timer0
Retorna
Retorna
Microcontroladores
M.I. Carlos Canto Quintal
Facultad de Ciencias/UASLP
EL TIMER
TF0 se hace 0
automáticamente
TF0 se hace 0
automáticamente
Configuraci
Configuració
ón como Contador de eventos
n como Contador de eventos
externos
externos
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
CONTADOR
CONTADOR
Conteo inicial
Conteo inicial
TF0
TF0
contador
C / T=1
C / T=1
TRx
TRx
GATE
GATE
CLK OVF
Genera
Interrupción
Genera
Interrupción
Tx
Tx
INTx
INTx
La señal de
reloj
proviene de
algún sensor
del evento
La señal de
reloj
proviene de
algún sensor
del evento
13. Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
En esta función , la entrada externa T0 ó T1, es monitoreada durante S5P2 de cada ciclo de
máquina. Cuando la muestra presenta un alto en un ciclo y bajo en el siguiente el conteo es
incrementado. El valor de la nueva cuenta aparece en el registro durante S3P1 del ciclo
siguiente en donde fue detectada la transición.
Ya que se requieren 2 ciclos de máquina (24 periodos del oscilador) para detectar una
transición de 1 a 0 , la velocidad máxima de conteo es de 1/24 la frecuencia del oscilador . No
hay restricciones en el ciclo de trabajo de la señal de entrada externa , pero se debe asegurar
que un nivel dado se debe muestrear al menos una vez en antes de que cambie , deberá
sostenerse por al menos un ciclo completo
Configuraci
Configuració
ón como Contador de eventos externos
n como Contador de eventos externos
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6
CLK
2 ciclos de máquina= 24 ciclos de reloj
T0
¿
¿ Qu
Qué
é es exactamente un evento ?
es exactamente un evento ?
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Es importante notar que el 80C51 checa la línea P3.4 en cada ciclo
de máquina (12 ciclos de reloj). Esto significa que si P3.4 es bajo, va
a alto y regresa a bajo en 6 ciclos de reloj es probable que no sea
detectado por el 80C51.
Esto también significa que el Contador de eventos del 80C51
solamente es capaz de contar eventos que ocurren a una velocidad
máxima de 1/24 avo la velocidad de la frecuencia del cristal.
Tal que , si la frecuencia del cristal es 12 Mhz se podría contar un
máximo de 500,000 eventos por segundo (12Mhz*1/24=500,000).
Si el evento a contar ocurre a más de 500,000 veces por segundo el
80C51 no será capaz de contarlo con exactitud.
14. Ejemplo
Ejemplo: Determinaci
: Determinació
ón de
n de vol
volú
úmen
men de
de t
tá
áfico
fico vehicular
vehicular
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
JNB P1.0,$
;si un carro no ha levantado la señal, se
queda esperando
JB P1.0,$
;La línea es alta lo cual significa que el carro
está sobre el sensor justo ahora
INC COUNTER
;El carro ha pasado completamente, entoces
lo contamos
Supongamos que tenemos un sensor colocado en el camino, que enviará un
pulso cada vez que un carro pasa por encima de él. Ésto podría ser usado para
determinar el voúmen de tráfico del camino. Podríamos conectar este sensor a
una de las líneas de E/S del 80C51 y monitorearla constantemente, detectando
cuando el pulso es alto y entonces incrementar nuestro contador cuando regresa
al estado bajo. Esta técnica de sondeo no es complicada pero si ineficiente,
supongamos que el sensor está en P1.0 nuestro programa podría ser:
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Lo que el Timer realmente cuenta, hablando a nivel
eléctrico, son las transiciones de 1 a 0 de la línea P3.4.
Esto significa que cuando un carro primero pasa por
encima del sensor, ésto pondrá la entrada a una
condición alta (“1”).
En este momento el 80C51 no contará nada ya que la
transición fue de 0 a 1, pero cuando el carro ya haya
pasado el sensor regresará a su estado bajo (“0“) .
Ésta ya es una transición de 1 a 0 y en ese instante el
contador será incrementado en 1.
15. PROBLEMA DE TAREA:
PROBLEMA DE TAREA:
Implemente un programa para contar el n
Implemente un programa para contar el nú
úmero de autos que
mero de autos que
pasan en un minuto por encima de un sensor de volumen de
pasan en un minuto por encima de un sensor de volumen de
tr
trá
ánsito
nsito
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Ejemplo:
Ejemplo: Medici
Medició
ón de la duraci
n de la duració
ón de un Pulso
n de un Pulso
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Con un sistema basado en el 80C51, se desea medir la duraci
Con un sistema basado en el 80C51, se desea medir la duració
ón de un
n de un
pulso a nivel alto que se produce en la se
pulso a nivel alto que se produce en la señ
ñal
al “
“pulso
pulso”
” tal y como se
tal y como se
muestra en la figura. Supondremos que el microcontrolador tiene
muestra en la figura. Supondremos que el microcontrolador tiene una
una
se
señ
ñal de reloj de 12MHz. Indique qu
al de reloj de 12MHz. Indique qué
é recursos del 80C51 utilizar
recursos del 80C51 utilizarí
ía para
a para
realizar esta aplicaci
realizar esta aplicació
ón y c
n y có
ómo conectar
mo conectarí
ía las se
a las señ
ñales del sistema.
ales del sistema.
Tiempo a medir
Pulso
16. Ejemplo:
Ejemplo: Medici
Medició
ón de la duraci
n de la duració
ón de un Pulso
n de un Pulso
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
Tiempo a medir
Pulso
Oscilador
interno
Oscilador
interno
Fxtal=12Mhz
: 12
: 12
CONTADOR
CONTADOR
fxtal / 12
fosc= fxtal
Conteo inicial
Conteo inicial
TF0
TF0
C/T=0
timer
C / T=0
C / T=0
TRx=1
TRx=1
GATE=1
GATE=1
CLK OVF
Genera
Interrupción
Genera
Interrupción
Xtal1
Xtal1
Xtal2
Xtal2
INTx
INTx
Configuarci
Configuarció
ón
n del Timer para arrancarse por hardware ,al inicio del pulso y p
del Timer para arrancarse por hardware ,al inicio del pulso y pararse al final del mismo
ararse al final del mismo
Controlling the Brightness of an LED
Pulse Width Modulation
17. TIMER_0_INTERRUPT:
• JB F0, HIGH_DONE ; If F0 is set then we just finished the high section of the
LOW_DONE: ; cycle so Jump to HIGH_DONE
• SETB F0 ; Make F0=1 to indicate start of high section
• SETB P1.0 ; Turn off LED
• MOV TH0, R7 ; Load high byte of timer with R7 (our pulse width control value)
• CLR TF0 ; Clear the Timer 0 interrupt flag
• RETI ; Return from Interrupt to where the program came from
HIGH_DONE:
• CLR F0 ; Make F0=0 to indicate start of low section
• CLR P1.0 ; Turn on LED
• MOV A, #FFH ; Move FFH (255) to A
• CLR C ; Clear C (the carry bit) so it does not affect the subtraction
• SUBB A, R7 ; Subtract R7 from A. A = 255 - R7.
• MOV TH0, A ; so the value loaded into TH0 + R7 = 255
• CLR TF0 ; Clear the Timer 0 interrupt flag
• RETI ; Return from Interrupt to where the program came from
• The basic idea of the routine is fairly simple. First it checks to see if it just finished thigh or tlow.
• If it was thigh then it jumps to HIGH_DONE and prepares for the tlow period. We set F0 to 0 to indicate we are
timing tlow. Then we turn on the LED. Next we find the value to load into the 8 bit timer register TH0. Timer 0 will
count up from there. If it was tlow then we continue through LOW_DONE and set F0 to 1 to indicate we are timing
thigh. Then we turn off the LED. Next we load R7 into the 8 bit timer register TH0 and Timer 0 will count up from
there.
• Main Code
• The main part of the code does not have to do anything. In this
example we just move 01 to R7 for the minimum brightness and
then make an infinite loop with
• MOV R7, #001H ; set pulse width control to dim
LOOP:
• AJMP LOOP ;go to LOOP
• The processor just sits there in an endless loop until the Timer 0
interrupt occurs. Then it goes off and goes through the Timer 0
interrupt routine and returns to the endless loop to wait for the next
interrupt. If we had some other processing to do we could put that
code in here in place of the endless loop and the processor could
actually do something useful while it is waiting for the next interrupt.
18. • Using the Timer
• Now we can load a value into the 8 bit timer register, TH0, and it will run
freely until it "overflows". The overflow occurs when it is at its maximum
value of 255 and on the next count goes back to 0. This is the same as what
would happen to the mileage meter in your car when it reaches all 9s and
"flips over" to all 0s. The overflow triggers the Timer 0 interrupt and the
processor stops whatever it is doing and goes to the point 0BH in its
program. (0BH is the hex value 0B which is the 11th memory location) You
can see in the program pwmled2.asm that we have used the ORG
command to put a command in the 0BH location that jumps to our Interrupt
Service Routine (ISR) for Timer 0. This just means that when the interrupt
occurs the processor will go and process some code and then return to
what is was doing before.
• Below is the code that the processor goes through each time the Timer 0
interrupt occurs. Since we are using Timer 0 to time both tlow and thigh, we
use a Flag (which is just a bit) to indicate whether we are currently timing
tlow or thigh. We set the bit to 1 for thigh and 0 for tlow.
El Timer 2
El Timer 2
El Timer 2
Timer/Contadores
Timer/Contadores
Timer/Contadores
MICROCONTROLADORES
MICROCONTROLADORES
Carlos E. Canto Quintal
21. Microcontroladores
Microcontroladores
TIMER 2
Carlos Canto Quintal
T2EX
T2EX
T2
T2
osc
osc
TL2
(8bits)
TL2
(8bits)
TH2
(8bits)
TH2
(8bits) TF2
TF2
EXF2
EXF2
RCAP2L
RCAP2L RCAP2H
RCAP2H
: 12
: 12
_
TR2
C/T2=0
C/T2=1
control
captura
control
Interrupción
del Timer2
Interrupción
del Timer2
TIMER 2 EN MODO CAPTURA
Detector de
transición
EXEN2
Microcontroladores
Microcontroladores
TIMER 2
Carlos Canto Quintal
T2EX
T2EX
T2
T2
osc
osc
TF2
TF2
EXF2
EXF2
: 12
: 12
_
TR2
C/T2=0
C/T2=1
control
Recarga
control
Interrupción
del Timer2
Interrupción
del Timer2
TIMER 2 EN MODO AUTO-RECARGA (cuando DCEN=0)
Con la habilidad de conteo Up/Down desactivada
TL2
(8bits)
TL2
(8bits)
TH2
(8bits)
TH2
(8bits)
RCAP2L
RCAP2L RCAP2H
RCAP2H
Detector de
transición
EXEN2
22. T2EX
T2EX
Microcontroladores
Microcontroladores
TIMER 2
Carlos Canto Quintal
T2
T2
osc
osc
TF2
TF2
EXF2
EXF2
: 12
: 12
_
TR2
C/T2=0
C/T2=1
Valor de recarga en
conteo ascendente
Valor de recarga en
conteo ascendente
control
Interrupción
del Timer2
Interrupción
del Timer2
TIMER 2 EN MODO AUTO-RECARGA (cuando DCEN=1)
Con la habilidad de conteo Up/Down activada
RCAP2L
RCAP2L RCAP2H
RCAP2H
TL2
(8bits)
TL2
(8bits)
TH2
(8bits)
TH2
(8bits)
0FFh
0FFh 0FFh
0FFh
Dirección de conteo
1= Up
0=Down
Valor de recarga en
conteo descendente
Valor de recarga en
conteo descendente
conmuta
Microcontroladores
Microcontroladores
TIMER 2
Carlos Canto Quintal
TIMER 2 EN MODO GENERADOR DE BAUDAJE
T2EX
T2EX
T2
T2
osc
osc : 2
: 2
_
TR2
C/T2=0
C/T2=1
control
control
TL2
(8bits)
TL2
(8bits)
TH2
(8bits)
TH2
(8bits)
RCAP2L
RCAP2L RCAP2H
RCAP2H
Detector de
transición
EXF2
EXF2
Interrupción
del
Timer 2
: 16
: 16
: 16
: 16
_
_
RX Clock
TX Clock
TCLK
RCLK
SMOD
1 0
1 0
1 0
Sobre flujo delTimer 1
: 2
: 2
_
EXEN2
Nota: la frecuencia del
oscilador es dividida entre 2
no entre12
23. Microcontroladores
Microcontroladores
TIMER 2
Carlos Canto Quintal
TIMER 2 EN MODO RELOJ DE SALIDA
T2EX
T2EX
T2
T2
osc
osc : 2
: 2
_
TR2
T2OE (T2MOD.1)
Bit C/T2
TL2
(8bits)
TL2
(8bits)
TH2
(8bits)
TH2
(8bits)
RCAP2L
RCAP2L RCAP2H
RCAP2H
Detector de
transición
EXF2
EXF2
Interrupción
del
Timer 2
EXEN2
Nota: la frecuencia del
oscilador es dividida entre 2
no entre12
P1.1
P1.0
: 2
: 2
_
Salida
de reloj
Microcontroladores
Microcontroladores
TIMER 2
Carlos Canto Quintal
T2CON: REGISTRO DE CONTROL DELTIMER/CONTADOR2
TF2
TF2 EXF2
EXF2 RCLK
RCLK TCLK
TCLK EXEN2
EXEN2 TR2
TR2 C/T2
C/T2 CP/RL2
CP/RL2
(LSB)
(MSB)
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, ocurirá 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.
T2CON.0
CP/RL2
Selección de Timer o contador (Timer2)
0=Timer interno (OSC/12)
1=Contador de eventos externos (disparado en la transición de bajada)
T2CON.1
C/T2
Control de Arranque /Paro del Timer2. Un 1 lógico arranca el Timer2
T2CON.2
TR2
Bandera de habilitación externa, Cuanda está habilitada permite que ocuura 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
T2CON.3
EXEN2
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.
T2CON.4
TCLK
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
T2CON.5
RCLK
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=!)
T2CON.6
EXF2
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
T2CON.7
TF2
NOMBRE Y SIGNIFICADO
POSICIÓN
SIMBOLO
24. Microcontroladores
Microcontroladores
TIMER 2
Carlos Canto Quintal
Auto-recarga (contador Ascendente o Descendente)
El timer 2 puede ser programado para conteo ascendente descendente cuando es
configurado en su modo de recarga de 16 bits. Esta habilidad es invocada con el bit
DCEN (Down Counter Enable ), localizado en el SFR T2MOD: Al resetear el DCEN
está en cero tal que el Timer 2 por default cuenta hacia arriba (Up). Cuando el DCEN
se pone a uno, elk Timer 2 puede contar hacia arriba o hacia abajo, dependiendo del
valor de