TIMERS
description
Transcript of TIMERS
TIMERS
Modelo Básico : 2 Timers/Contadores de 16 bits (T0 y T1)
Derivados: 3 Timers/Contadores de 16 bits (T0, T1 y T2)
Timers: Cuentan ciclos de Máquina (1 cuenta cada 12 clocks)
Contadores:
•Cuentan Flancos descendientes de entradas externas P3.4 External Input T0P3.5 External Input T1Para que cuente tiene que estar 1 ciclo de máquina en cada estado (fck / 24 ¡optimista!)
Registros: Cada uno posee: dos registros de 8 bits R/W
TH0, TL0 y TH1, TL1
Timers
• Registros de Control:
• TMOD (0x89)
•
• TCON (0x88)
C/T: 1 Contador 0 Timer
TF1, TF0: Flags de OverflowCuentan hacia arriba (up), Overflow 0xFFFF 0x0000Si está habilitada dan IRQ
M1, M0: Modos de funcionamiento
C/T M1 M0 Gate C/T M1 M0
Timer 1 Timer 0
Gate
TR1 TF0 TR0 IE1 IT1 IE0 IT0TF1
Timers
Clock / 12
1
23
1 2 1
23
TLiTHi TFiTi
INTi
TRi
Gate
C/T
0
1
(P3.2- P3.3)
(P3.4- P3.5)
Timers
• M1=0, M0=0: Modo 0Contador o Timer de 13 bits (compatible 8048) [No Usar]
• M1=0, M0=1: Modo 1Contador o Timer de 16 bits
• M1=1, M0=0: Modo 2Contador o Timer de 8 bits (Tli) con auto recarga de Thi sobre Tli en overflow
• M1=1, M0=1: Modo 3T0 en Modo 3 : 2 Contadores o Timers de 8 bits (TL0 y TH0)TL0 con los bits de control de TMOD para T0 (puede dar IRQ)TH0 con los bits de control de TMOD para T1 (puede dar IRQ)Con T0 en Modo 3 se pierde control de T1 y este no dá IRQT1 en Modo 3 : detenido, conservando su cuenta
T0 en Modo 3 y T1 en modo 1 : T0 2 Contadores o Timers de 8 bits (TL0 y TH0) T1 Generador de Baud Rate (no da IRQ)
Tiempos Largos y Precisos
• Por ejemplo: quiero hacer algo cada tres minutos:
• ;clock = 12 Mhz• dseg at 0x20• mseg: ds 1• seg: ds 1• min: ds 1 • mseg50 equ 0x10000-50000 ;50 mseg
• Tmseg equ 20 ;1 seg
• Tseg equ 60 ;1 minuto
• Tmin equ 3 ;cant.de minutos
• cseg at 0000• mov mseg,#Tmseg• mov seg ,#Tseg• mov min ,#Tmin• mov TH1 ,#HIGH(mseg50);cargo el
timer 1
• mov TL1 ,#LOW(mseg50)• mov TMOD,#00010000B ; Modo 1
• mov IE ,#10001000B ;Habilito IRQ de T1
• setb TR1 ; arranco el timer
• ;.......................
• IRQT1:• push Acc• push psw• clr TR1 ; paro el
timer
• mov A,#LOW mseg50 ; 2 cm.
• clr C ; 1 cm
• subb A,TL1 ; 2 cm
• subb A,# Ciclos ; 2 cm
• mov TL1,A ; 2 cm
• mov A,#HIGH mseg50 ; 2 cm.
• subb A,#0 ; 2 cm
• mov TH1,A ; 2 cm
• setb TR1 ; 2 cm
• ;Ciclos = 17
• Ciclos equ 17
• ;Comienza la rutina…….
Tiempos Largos y Precisos
• ;Comienza la Rutina:
• dec mseg Mov A, mseg Jnz fin Mov mseg, #Tmseg Dec seg Mov A,seg Jnz fin Mov seg, #Tseg Dec min Mov A, min Jnz fin mov min, #Tmin Lcall HagaLoQueTengaQueHacerFin: pop PSW pop Acc reti
Timer 2
• Patas:P1.0 T2 entrada de pulsos para contadorP1.1 T2EX entrada de control up/down
• RegistrosTH2 y TL2 PROPIOSRCAP2H y RCAR2L CAPTURAT2CON, T2MOD CONTROL DEL TIMER
• T2CON
• T2MOD
EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2TF2
DCENT2OE
Timer 2
• C/T2 Contador o Timer
• TF2 Flag de Overflow
• EXF2 Flag Overflow
• MODOS
RCLK TCLK CP/RL2 TR2 MODO
0 0 0 1 16 BITS AUTORELOAD
0 0 1 1 16 BITS CAPTURE
1
0
1
0
1
1
X 1 BAUD RATE GENERATOR
X X 0 0 OFF
Timer 2
• Modos de Funcionamiento
Baud Rate Generator
Para Tx, o Rx, o ambas, se selecciona con RCLK y TCLK, la no seleccionada puede tener el Baud Rate dado por T1 en Modo 1 o 3
T2 se incrementa a Fclk / 2
En este modo no genera interrupción
Se recarga con el contenido de RCAP2
)265536(32 RCAP
FclkBaudRate
Timer 2
• AUTORELOAD
Se activa con CP/RL2 = 0
En Overflow se recarga con RCAP2H / L
Submodos dependen de DCEN (T2MOD), EXEN2 (T2CON) y T2EX (P1.1)
DCEN EXEN T2EX Cuenta Recarga en Recarga con Flag
0 0 - UP Overflow RCAP2H / L TF2
0 1 - UP Overflow RCAP2H / L TF2
0 1 T2EX UP T2EX RCAP2H / L EXF2
1 - 0 DOWN TH/L2 = RCAP2H/L
0XFFFF TF2
1 - 1 UP Overflow RCAP2H / L TF2
Timer 2
• CAPTURA
EXEN = 0 TIMER NORMAL En OV TF2 = 1 (debe clerearse por soft y puede generar IRQ)
EXEN = 1 TIMER NORMAL CON CAPTURA En OV TF2 = 1 (debe clerearse por soft y puede generar IRQ) Con T2EX (P1.1) se copia TH/L2 a RCAP2H/L,
se setea EXF2 (puede generar IRQ)
• INTERRUPCIONES
• Se habilitan con IE.5 (ET2)• La prioridad es la menor de todas• Se puede cambiar el nivel de Prioridad con IP.5 (PT2)• Vector en 0x002B (tanto para TF2 como para EXF2)
Timer 2
• CLOCK OUT
• El timer 2 puede ser configurado como Clock para dispositivos externos.
• Para configurarlo:
C/T2 (T2CON.1) = 0 T2OE (T2MOD.2) = 1 TR2 (T2CON.2) = 1 arranca, = 0 para Clock sale por P1.0 No genera IRQ Se puede usar como Baud Rate Generator y Clock Out
simultaneamente (a la misma frecuencia).
4 65536 2 /
FclkFrecuenciaClock Salida
RCAP H L
Métodos de Recuperación de errores
• Watch Dog
Mov DPTR, #0x80FE
Se codifica como:
1000 901001 80 sjmp1002 FE -21003 …..
Q5PNP
Reset
+ C122 uF
R2
10k
VCC
R7
100k
VCC + C222 uF
R6
10k
Px.y
R410k R8
100k74HC132
1
23
R1
1k
Q4NPN BCE
Métodos de Recuperación de errores
• Watch Dog Interno (…52 y sucesivos)
• WDT Contador de 14 bitsWDTRST SFR de Control
• Luego del Reset el WDT queda deshabilitado
• Para habilitarlo:
mov WDTRST, # 0x1Emov WDTRST, # 0xE1
• No se puede deshabilitarPara resetearlo:
mov WDTRST, # 0x1Emov WDTRST, # 0xE1
• Cuenta ciclos de máquina. Máximo tiempo 16368 seg
Métodos de Reducción de Energía
• IDLE
En activo el C consume 25 mA (AT89S52) En IDLE consume 6,5 mA. Los timers, Interrupciones, Serial Port, etc están activos, la CPU no recibe
clock.
Se ingresa pormedio de PCON, poniendo IDL = 1
Se sale con cualquier IRQ habilitada o con ResetLa instrucción que se ejecuta es la siguiente a:mov PCON, # 1
GF1 y GF0 son bits de Usuario
- - - GF1 GF0 PD IDLSMOD
Métodos de Reducción de Energía
• POWER DOWN
El consumo en este estado es de 50 A
Se entra poniendo: mov PCON, # 2
Solo se sale con ResetLos registros se inicializanLa RAM interna se preservaLos ports conservan su valor, ALE y PSEN wuedan en 0
En modelos más modernos, se sale con IRQ esterna habilitada.