Los Temporizadores/ContadoresLos Temporizadores/ContadoresLos Temporizadores/Contadores
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Los Los TimersTimers/Contadores/ContadoresTimer/ContadoresTimer/ContadoresTimer/Contadores
MICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
El 80C51 tiene dos registros de El 80C51 tiene dos registros de TimersTimers//ContadoreContadore de 16 bits :de 16 bits :El Timer0 y el Timer 1.El Timer0 y el Timer 1.
Se pueden configurar para operar ya sea como Se pueden configurar para operar ya sea como TimersTimers o como contadores de o como contadores de eventos.eventos.
TIMER PUEDE CONTAR EVENTOS O TEMPORIZAR
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Modelo de la operaciModelo de la operacióón de los n de los TimersTimers 0 y 1 del 80C510 y 1 del 80C51
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Oscilador interno
Oscilador interno
fxtal
: 12: 12
CONTADORCONTADOR
fxtal / 12fosc= fxtal
Conteo inicialConteo inicial
TF0TF0C/T=1 contador
C/T=0 timer
C / TC / TTRxTRxGATEGATE
CLK OVF
Genera Interrupción
Genera Interrupción
Xtal1Xtal1
Xtal2Xtal2
TxTx
INTxINTx
ConfiguraciConfiguracióón de Timern de Timer
Oscilador interno
Oscilador interno
fxtal = 12 MHz
: 12: 12Contador
programable
Contadorprogramable
fxtal / 12= 1 MHhzfosc= fxtal = 12 MHz
Conteo inicialConteo inicial
1µseg
TF0TF0
Microcontroladores
M.I. Carlos Canto QuintalFacultad de Ciencias/UASLP
EL TIMER
Funcionando como Timer, el registro es incrementado cada ciclo dFuncionando como Timer, el registro es incrementado cada ciclo de e mmáá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 mciclos de mááquina .quina .
Ya que un ciclo de mYa 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 1Timer/ContadoresTimer/ContadoresTimer/Contadores
MICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer 0-1, Registro de control TMOD
GATEGATE=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/TPermite la selección de la función TIMER:C/T = 0, el TIMER actúa como TEMPORIZADORC/T = 1, el TIMER actúa como CONTADOR de los eventos presentes en la patilla de entrada Tx.
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer 0-1,TMOD – Modos de funcionamiento
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
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 TF1TR0: Bit de arranque del TIMER 0. Mismo funcionamiento que TR1
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer 0-1,Modo 0: Contador de 13 bits
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer 0-1,Modo 1: Contador de 16 bits
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Ejemplo del uso del Timer en modo 1Ejemplo del uso del Timer en modo 1 ::Se desea conseguir un retardo de 50 Se desea conseguir un retardo de 50 msegsmsegs con un Timer del con un Timer del
80C5180C51
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Tmax=65,536
65,536-50,000=15,53665,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 conteoInicio de conteo
Cada ciclo de máquina es igual a 1µsegundo tal que:50 msegs=1µsegundo X 50,000
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
00 00 11 11 11 11 00 00 11 00 11 11 00 00 00 00
Timer T0=15,536
TH0=60 TH0=176
15, 536/256=60.687560*256=1536015536-15360=176
15, 536/256=60.687560*256=1536015536-15360=176
ObtenciObtencióó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 mconteo de 50,000 pulsos (ciclos de mááquina)quina)
Timer 0-1,Modo 2: Contador de 8 bits con recarga
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
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/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer 1, Generador de frecuencia de comunicaciTimer 1, Generador de frecuencia de comunicacióón n serieserie
Configuración TMOD
Frecuencias comunicación normalizadas
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer 0 y 1. Modo 3Timer 0 y 1. Modo 3
Si se configura el timer 1 en modo 3 este contador detiene su cuenta; tieneun efecto equivalente a poner TR1= 0 en los modos 0, 1 o
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
FUNCIONAMIENTO DEL MODO 3FUNCIONAMIENTO DEL MODO 3FUNCIONAMIENTO 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 enfuncionamiento 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 configurarsecomo temporizador o contador en uno de los modos: 0, 1 o 2, estandosiempre funcionando y sin indicador de desbordamiento; para pararlohay que configurarlo también en modo 3. El timer 1 se puede emplear,por ejemplo, para generar la frecuencia de funcionamiento deldispositivo de comunicaciones serie (UART)
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
+5 V
80318031
P1.0P1.0
(1/8) 74LS244
1ms
1ms
fxtal = 12 MHz
2ms
Frecuencia = 500Hz
Microcontroladores
M.I. Carlos Canto QuintalFacultad de Ciencias/UASLP
EL TIMER
Ejemplo: programa el timer0 para que genere una onda cuadrada de aproximadamente 500hz
Microcontroladores
M.I. Carlos Canto QuintalFacultad de Ciencias/UASLP
EL TIMER
Carga deConteoinicial
Carga deConteoinicial
AlcanzóConteo
final
AlcanzóConteo
final
FC18H
FFFFh
0000h
SI TF0=1llama 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 timerTR0=0
Para timerTR0=0 Arranca timer
TR0=1
Arranca timerTR0=1
CONTEO INICIAL=FFFFH-CONTEO DESEADO+1
CONTEO DESEADO=1000=03E8HPOR LO TANTO EL CONTEO INICIAL SERÁ:FFFFH-03E8H=FC17H+1=FC18H
TF0=0
Conteo inicial
Diagrama de flujo para el programa del ejemplo del Timer
Apagar LED en P1.0Apagar LED en P1.0
Habilita interrupción de Timer0
Habilita interrupción de Timer0
Selección ModoDe operación del Timer0
Selección ModoDe operación del Timer0
Cargar conteo inicial en TH0 y TL0
Cargar conteo inicial en TH0 y TL0
Arranca Timer0Arranca Timer0
Espera fin de conteoEspera fin de conteo
Es TF0=1?
Es TF0=1?
Call Rutina de serviciodel Timer 0
Call Rutina de serviciodel 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 conteoParar conteo
Complementa P1.0Complementa P1.0
Cargar conteo inicial en TH0 y TL0
Cargar conteo inicial en TH0 y TL0
Arranca Timer0Arranca Timer0
Retorna Retorna
Microcontroladores
M.I. Carlos Canto QuintalFacultad de Ciencias/UASLP
EL TIMER
TF0 se hace 0automáticamente
TF0 se hace 0automáticamente
ConfiguraciConfiguracióón como Contador de eventos n como Contador de eventos externosexternos
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
CONTADORCONTADOR
Conteo inicialConteo inicial
TF0TF0
contador
C / T=1C / T=1TRxTRxGATEGATE
CLK OVF
Genera Interrupción
Genera Interrupción
TxTx
INTxINTx
La señal de reloj
proviene de algún sensor
del evento
La señal de reloj
proviene de algún sensor
del evento
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
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 esincrementado. El valor de la nueva cuenta aparece en el registro durante S3P1 del ciclosiguiente en donde fue detectada la transición.
Ya que se requieren 2 ciclos de máquina (24 periodos del oscilador) para detectar unatransició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 asegurarque un nivel dado se debe muestrear al menos una vez en antes de que cambie , deberásostenerse por al menos un ciclo completo
ConfiguraciConfiguracióón como Contador de eventos externosn como Contador de eventos externos
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6CLK
2 ciclos de máquina= 24 ciclos de reloj
T0
¿¿ QuQuéé es exactamente un evento ?es exactamente un evento ?Timer/ContadoresTimer/ContadoresTimer/Contadores
MICROCONTROLADORESMICROCONTROLADORES
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 velocidadmá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.
EjemploEjemplo: Determinaci: Determinacióón de n de volvolúúmenmen de de ttááficofico vehicularvehicularTimer/ContadoresTimer/ContadoresTimer/Contadores
MICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
JNB P1.0,$;si un carro no ha levantado la señal, se queda esperandoJB P1.0,$;La línea es alta lo cual significa que el carroestá sobre el sensor justo ahoraINC COUNTER;El carro ha pasado completamente, entoceslo 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 paradeterminar 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, detectandocuando el pulso es alto y entonces incrementar nuestro contador cuando regresaal 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/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
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.
PROBLEMA DE TAREA:PROBLEMA DE TAREA:
Implemente un programa para contar el nImplemente 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
trtráánsitonsito
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Ejemplo:Ejemplo: MediciMedicióón de la duracin de la duracióón de un Pulson de un Pulso
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Con un sistema basado en el 80C51, se desea medir la duraciCon 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 sepulso a nivel alto que se produce en la seññal al ““pulsopulso”” 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 seseññal de reloj de 12MHz. Indique qual de reloj de 12MHz. Indique quéé recursos del 80C51 utilizarrecursos del 80C51 utilizaríía para a para realizar esta aplicacirealizar esta aplicacióón y cn y cóómo conectarmo conectaríía las sea las seññales del sistema. ales del sistema.
Tiempo a medirPulso
Ejemplo:Ejemplo: MediciMedicióón de la duracin de la duracióón de un Pulson de un PulsoTimer/ContadoresTimer/ContadoresTimer/Contadores
MICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Tiempo a medirPulso
Oscilador interno
Oscilador interno
Fxtal=12Mhz
: 12: 12
CONTADORCONTADOR
fxtal / 12
fosc= fxtal
Conteo inicialConteo inicial
TF0TF0
C/T=0 timer
C / T=0C / T=0TRx=1TRx=1GATE=1GATE=1
CLK OVF
Genera Interrupción
Genera Interrupción
Xtal1Xtal1
Xtal2Xtal2
INTxINTx
ConfiguarciConfiguarcióónn del Timer para arrancarse por hardware ,al inicio del pulso y pdel 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 LEDPulse Width Modulation
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.
• 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 2El Timer 2El Timer 2
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES
Carlos E. Canto Quintal
Microcontroladores Microcontroladores TIMER 2
Carlos Canto Quintal
T2EX T2EX
T2 T2
oscosc
TL2(8bits)
TL2(8bits)
TH2(8bits)
TH2(8bits) TF2TF2
EXF2EXF2
RCAP2LRCAP2L RCAP2HRCAP2H
: 12: 12_
TR2
C/T2=0
C/T2=1
control
captura
controlInterrupción del Timer2
Interrupción del Timer2
TIMER 2 EN MODO CAPTURA
Detector detransición
EXEN2
Microcontroladores Microcontroladores TIMER 2
Carlos Canto Quintal
T2EX T2EX
T2 T2
oscosc
TF2TF2
EXF2EXF2
: 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)
RCAP2LRCAP2L RCAP2HRCAP2HDetector detransición
EXEN2
T2EX T2EX
Microcontroladores Microcontroladores TIMER 2
Carlos Canto Quintal
T2 T2
oscosc
TF2TF2
EXF2EXF2
: 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
RCAP2LRCAP2L RCAP2HRCAP2H
TL2(8bits)
TL2(8bits)
TH2(8bits)
TH2(8bits)
0FFh0FFh 0FFh0FFh
Dirección de conteo1= Up0=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
oscosc : 2: 2_
TR2
C/T2=0
C/T2=1
control
control
TL2(8bits)
TL2(8bits)
TH2(8bits)
TH2(8bits)
RCAP2LRCAP2L RCAP2HRCAP2HDetector detransición
EXF2EXF2Interrupción
delTimer 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
Microcontroladores Microcontroladores TIMER 2
Carlos Canto Quintal
TIMER 2 EN MODO RELOJ DE SALIDA
T2EX T2EX
T2 T2
oscosc : 2: 2_
TR2
T2OE (T2MOD.1)
Bit C/T2
TL2(8bits)
TL2(8bits)
TH2(8bits)
TH2(8bits)
RCAP2LRCAP2L RCAP2HRCAP2H
Detector detransición
EXF2EXF2Interrupción
delTimer 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
TF2TF2 EXF2EXF2 RCLKRCLK TCLKTCLK EXEN2EXEN2 TR2TR2 C/T2C/T2 CP/RL2CP/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.0CP/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.1C/T2
Control de Arranque /Paro del Timer2. Un 1 lógico arranca el Timer2T2CON.2TR2
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.3EXEN2
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.4TCLK
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.5RCLK
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.6EXF2
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.7TF2
NOMBRE Y SIGNIFICADOPOSICIÓNSIMBOLO
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
Top Related