Los Temporizadores/ContadoresLos Temporizadores/Contadores

24
Los Temporizadores/Contadores Los Temporizadores/Contadores Los Temporizadores/Contadores Timer/Contadores Timer/Contadores MICROCONTROLADORES MICROCONTROLADORES Carlos E. Canto Quintal Los Los Timers Timers /Contadores /Contadores Timer/Contadores Timer/Contadores MICROCONTROLADORES MICROCONTROLADORES Carlos E. Canto Quintal El 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. Se 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

Transcript of Los Temporizadores/ContadoresLos Temporizadores/Contadores

Page 1: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 2: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 3: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 4: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 5: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 6: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 7: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 8: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 9: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 10: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 11: Los Temporizadores/ContadoresLos Temporizadores/Contadores

+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

Page 12: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 13: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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.

Page 14: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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.

Page 15: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 16: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 17: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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.

Page 18: Los Temporizadores/ContadoresLos Temporizadores/Contadores

• 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

Page 19: Los Temporizadores/ContadoresLos Temporizadores/Contadores

Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES

Carlos E. Canto Quintal

Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES

Carlos E. Canto Quintal

Page 20: Los Temporizadores/ContadoresLos Temporizadores/Contadores

Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES

Carlos E. Canto Quintal

Timer/ContadoresTimer/ContadoresTimer/ContadoresMICROCONTROLADORESMICROCONTROLADORES

Carlos E. Canto Quintal

Page 21: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 22: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 23: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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

Page 24: Los Temporizadores/ContadoresLos Temporizadores/Contadores

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