Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porEsmeralda Chavis Modificado hace 10 años
1
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 T0 P3.5 External Input T1 Para 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
2
Timers Registros de Control: TMOD (0x89) TCON (0x88) C/T:1 Contador0 Timer TF1, TF0:Flags de Overflow Cuentan hacia arriba (up), Overflow 0xFFFF 0x0000 Si está habilitada dan IRQ M1, M0:Modos de funcionamiento C/TM1M0 Gate C/TM1M0 Timer 1Timer 0 Gate TR1TF0TR0 IE1 IT1IE0IT0TF1
3
Timers
4
M1=0, M0=0: Modo 0 Contador o Timer de 13 bits (compatible 8048) [No Usar] M1=0, M0=1: Modo 1 Contador o Timer de 16 bits M1=1, M0=0: Modo 2 Contador o Timer de 8 bits (Tli) con auto recarga de Thi sobre Tli en overflow M1=1, M0=1: Modo 3 T0 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á IRQ T1 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)
5
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 movmseg,#Tmseg movseg,#Tseg movmin,#Tmin movTH1,#HIGH(mseg50); cargo el timer 1 movTL1,#LOW(mseg50) movTMOD,#00010000B ; Modo 1 movIE,#10001000B ; Habilito IRQ de T1 setbTR1 ; 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 equ17 ;Comienza la rutina…….
6
Tiempos Largos y Precisos ;Comienza la Rutina: decmseg MovA, mseg Jnzfin Movmseg, #Tmseg Decseg MovA,seg Jnzfin Movseg, #Tseg Decmin MovA, min Jnzfin movmin, #Tmin LcallHagaLoQueTengaQueHacer Fin: pop PSW popAcc reti
7
Timer 2 Patas: P1.0T2 entrada de pulsos para contador P1.1T2EX entrada de control up/down Registros TH2 y TL2 PROPIOS RCAP2H y RCAR2L CAPTURA T2CON, T2MOD CONTROL DEL TIMER T2CON T2MOD EXF2RCLKTCLK EXEN2 TR2C/T2CP/RL2TF2 DCENT2OE
8
Timer 2 C/T2Contador o Timer TF2 Flag de Overflow EXF2 Flag Overflow MODOS RCLKTCLKCP/RL2TR2MODO 000116 BITS AUTORELOAD 001116 BITS CAPTURE 101101 011011 X1BAUD RATE GENERATOR XX00OFF
9
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
10
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) DCENEXENT2EXCuentaRecarga enRecarga conFlag 00-UPOverflowRCAP2H / LTF2 01-UPOverflowRCAP2H / LTF2 01 T2EX UP T2EXRCAP2H / LEXF2 1-0DOWNTH/L2 = RCAP2H/L 0XFFFFTF2 1-1UPOverflowRCAP2H / LTF2
11
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)
12
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).
13
Métodos de Recuperación de errores Watch Dog Mov DPTR, #0x80FE Se codifica como: 100090 100180sjmp 1002FE-2 1003…..
14
Métodos de Recuperación de errores Watch Dog Interno (…52 y sucesivos) WDT Contador de 14 bits WDTRST SFR de Control Luego del Reset el WDT queda deshabilitado Para habilitarlo: movWDTRST, # 0x1E movWDTRST, # 0xE1 No se puede deshabilitar Para resetearlo: movWDTRST, # 0x1E movWDTRST, # 0xE1 Cuenta ciclos de máquina. Máximo tiempo 16368 seg
15
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 Reset La instrucción que se ejecuta es la siguiente a: movPCON, # 1 GF1 y GF0 son bits de Usuario --- GF1 GF0PDIDL SMOD
16
Métodos de Reducción de Energía POWER DOWN El consumo en este estado es de 50 A Se entra poniendo: movPCON, # 2 Solo se sale con Reset Los registros se inicializan La RAM interna se preserva Los ports conservan su valor, ALE y PSEN wuedan en 0 En modelos más modernos, se sale con IRQ esterna habilitada.
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.