TIMERS
description
Transcript of TIMERS
![Page 1: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/1.jpg)
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
![Page 2: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/2.jpg)
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
![Page 3: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/3.jpg)
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)
![Page 4: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/4.jpg)
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)
![Page 5: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/5.jpg)
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…….
![Page 6: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/6.jpg)
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
![Page 7: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/7.jpg)
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
![Page 8: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/8.jpg)
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
![Page 9: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/9.jpg)
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
![Page 10: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/10.jpg)
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
![Page 11: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/11.jpg)
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)
![Page 12: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/12.jpg)
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
![Page 13: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/13.jpg)
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
![Page 14: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/14.jpg)
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
![Page 15: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/15.jpg)
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
![Page 16: TIMERS](https://reader036.fdocumento.com/reader036/viewer/2022082712/56813ff4550346895dab1590/html5/thumbnails/16.jpg)
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.