temporizadores

UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE EXTENSIÓN LATACUNGA Tema: Temporizadores Nombre: Diego Chuquitarco Fecha: 23 de

Views 264 Downloads 4 File size 540KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE EXTENSIÓN LATACUNGA Tema: Temporizadores Nombre: Diego Chuquitarco Fecha: 23 de enero de 2017 Nivel: Séptimo “B” Carrera: Mecatrónica Abstract Los temporizadores en los microcontroladores son elementos que permiten trabajar con la variable tiempo. Un temporizador contador PIC es un registro que aumenta su valor en una unidad con cada 4 ciclos de reloj al cual se encuentre funcionando el microcontrolador PIC. Son utilizados para generar señales de una determinada frecuencia, para medir la duración de una señal o simplemente para llevar la fecha y hora. El temporizador contador PIC es utilizado para obtener medidas de tiempos muy precisas, de ahí que se le da el nombre de temporizador.

Desarrollo Cada

uno

de

los

temporizadores

timer0 y timer1 tienen solamente un pre-

disponibles en un PIC de clase media

divisor; el timer2, en cambio, dispone de

tiene, como elemento esencial, un

un pre-divisor y post-divisor. [1]

contador sincrónico ascendente de 8 a 16 bits. Estos contadores se pueden programar para contar pulsos internos o externos. El numero almacenado en cada contador se puede leer o modificar mediante la lectura o escritura de registros

de

funciones

Ilustración 1. Esquema general de los temporizadores de los PICs de clase media Tabla 1. Características principales de los temporizadores de los PICs de clase media.

especiales

asociados al temporizador en cuestión. Los temporizadores pueden disponer de un contador asincrónico auxiliar. Este contador auxiliar se inserta en el camino de los pulsos, antes del contador principal, en cuyo caso funciona como

Timer0

un pre-divisor o después del contador

El

principal, funcionando entonces como

contador de 8 bits, el registro TMR0 es

un post-divisor. Los temporizadores

el temporizador contador timer0 en sí,

timer0

PIC es

un

temporizador

es donde se guardan los valores del

El bit5 T0CS este es el bit que en este

timer0 PIC, cuando es utilizado como

caso interesa, al poner este bit a 1 se

temporizador sus valores aumentaran

elige

de uno en uno entre 0 y 255 con cada 4

contador, si se le pone a 0 se elige

ciclos de reloj. [2]

utilizar el timer0 PIC como temporizador.

Timer0 AVR como contador

El bit4 T0SE con este bit se elige si se

Para

el

PIC16F877A el

registro TMR0 del

timer0

PIC está

formado por 8 bits por lo que se puede contar desde 0 hasta 255, al utilizar timer0

PIC como contador

este

no

aumentará sus valores o su cuenta con cada ciclo de instrucción, en este caso el

timer0

estará

conectado

al

utilizar

el

timer0

PIC como

quiere que el timer0 PIC cuente por flanco de subida, esto es cuando la señal que llega por el pin T0CKI pase de 0 a 1, o que cuente por flanco de bajada, esto es cuando la señal que llega por el pin T0CKI pase de 1 a 0, si T0SE=1 se contará por flanco de bajada, si T0SE=0 se contará por flanco de subida.

pin T0CKI por donde se le hará llegar

El bit3 es para la utilización del prescaler

una señal, la cual al cambiar de estado

para el timer 0, el prescaler se le puede

hará que el timer0 PIC se incremente en

asignar al timer0 o al WDT mediante

una unidad, estos incrementos en su

este bit.

cuenta pueden ser por cada flanco de subida o cada por flanco de bajada de la señal, el flanco a utilizar se elige por programa. La programación del Timer0 PIC como contador se hace mediante el bit5

o

el

bit T0CS del

registro OPTION_REG.

Los bits 2, 1 y 0 son para elegir el prescaler

a

utilizar,

mediante

las

combinaciones de estos bits se tienen diferentes valores para el prescaler, el que a su vez dependerá de a quien se le a asignado el prescaler mediante el bit3, tal como se ve en la imagen. [3] Timer0 PIC como temporizador. Se verá en este caso el uso del timer0

Ilustración 2. OPTION_REG REGISTER

PIC como temporizador, normalmente el registro TMR0 del

El bit7 al poner este bit a 0 se activan unas resistencias pull up internas que el microcontrolador tiene en el puerto B.

timer0

PIC

irá

aumentando sus valores con cada ciclo de instrucción del microcontrolador PIC, y para estos microcontroladores a cada

El bit6 es para cuando se utilice una

ciclo de instrucción le toma 4 ciclos del

interrupción externa por el pin INT.

oscilador

que

se

esté

utilizando.

Como el registro TMR0 es de 8 bits este

aumentará desde 0 o desde algún valor

timer0 PIC, Fosc es la frecuencia

que se le ponga como valor inicial hasta

oscilador o del cristal utilizado, y

un máximo de 255. El prescaler del

prescaler será el prescaler elegido. [3]

time0 PIC para el PIC16F877A puede

Timer1

tomar el valor de 1, 2, 4, 8, 16, 32, 64, 128 o 256; estos valores se eligen

El timer1 PIC es un temporizador

mediante las combinaciones de los bits

contador de 16 bits, el registro TMR1 es

0, 1 y 2 del registro OPTION_REG.

el temporizador contador timer1 PIC en si, es donde se guardan los valores del timer1 PIC, cuando es utilizado como temporizador, sus valores aumentaran de uno en uno entre 0 y 65535 con

La

frecuencia

de

trabajo

del

temporizador Ftemp será de: 𝐹𝑡𝑒𝑚𝑝 =

cada 4 ciclos de reloj. [4] Timer1 AVR como contador

𝐹𝑂𝑆𝐶 4 ∗ 𝑝𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟

Para

el

PIC16F877A el

registro TMR1 del El

tiempo

que

tardará

ahora

el

temporizador en aumentar una unidad será la inversa de este valor, a lo que se le

conoce

como

periodo

del

temporizador:

timer1

PIC está

formado por 16 bits por lo que se puede contar desde 0 hasta 65535, al utilizar timer1

PIC como contador

este

no

aumentará sus valores o su cuenta con cada ciclo de instrucción, en este caso

𝐹𝑡𝑒𝑚𝑝 =

4 ∗ 𝑝𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟 𝐹𝑂𝑆𝐶

el

timer1

estará

conectado

al

pin T1CKI por donde se le hará llegar una señal, la cual al cambiar de estado de un bajo a un alto, esto es por flanco

El valor inicial adecuado a cargar en el registro TMR0 para obtener el tiempo buscado está dado por: 𝑇𝑀𝑅0 = 28 − 𝑇𝑟𝑒𝑡𝑎𝑟𝑑𝑜 ∗

de subida, hará que el timer1 PIC se incremente

en

una

unidad,

estos

incrementos en su cuenta serán siempre 𝐹𝑂𝑆𝐶 4 ∗ 𝑝𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟

por cada flanco de subida.

−1 Donde TMR0 es el valor inicial a cargar en

este

registro

para

obtener

la

temporización buscada, 28 porque el timer0 PIC es de 8 bits, Tretardo es el tiempo que se quiere temporizar con el

Ilustración 3. TIMER1 CONTROL REGISTER.

Los bits 7 y 6 no se utilizan por lo que se

Se verá en este caso el uso del

les pone a 0.

temporizador contador pic timer1 como

Los bits 5 y 4 son para elegir un prescaler, mediante las combinaciones de estos bits se pueden elegir los

temporizador, registro TMR1 del

timer1

el

PIC

irá

aumentando su valor en una unidad con cada

prescaler 1, 2, 4 u 8.

normalmente

ciclo

microcontrolador

de PIC,

instrucción del y

para estos

El bit3 es para cuando se quiere

microcontroladores a cada ciclo de

conectar un oscilador independiente al

instrucción le toma 4 ciclos del oscilador

timer1 PIC, este ocilador se debe

que se esté utilizando, si se usa. [4]

colocar entre el pin T1OSO (pin 15) y el pin T1OSI (pin16) para esto hay que poner este bit a 1.

Timer2 El timer2 PIC solo puede ser utilizado

El bit2 es para hacer que el timer1 PIC cuando es programado como contador trabaje en forma sincronizada con el

como temporizador no como contador, consta de 8 bits por lo que sus valores pueden aumentar desde 0 a 255. [5]

sistema interno del pic.

Timer2 PIC como temporizador

El bit1 (TMR1CS), con este bit se elige

T2CON es el registro de control del

si el timer1 PIC será utilizado como

timer2 PIC

contador o como temporizador, al poner este bit a

El temporizador timer2 PIC cuenta con lo que se conoce como prescaler y

1 TMR1CS=1 se elige la opción de

también con un postcaler pero el

utilizar el timer1 PIC como contador, al

postcaler solo hace su trabajo cuando el

ponerlo a 0 se elige la opción de

timer2

utilizarlo

interrupciones esto se ve en la sección

como

temporizador,

el

aumento en las cuentas del timer1 PIC

PIC

es

utilizado

con

de interrupciones con el PIC,

será siempre por flanco de subida de la señal en el pin T1CKI. El bit 0 (TMR1ON) al poner este bit a 1 se habilita el uso del timer1 PIC, cuando

Ilustración 4.TIMER2 CONTROL REGISTER

este bit está a 0 el timer1 PIC estará desactivado.

El bit7 no se utiliza por lo que se le pone a 0.

Temporizador contador PIC: Timer1 como temporizador.

Los bits de 6 al 3 mediante las combinaciones de estos bits se elige el

postcaler, el poscaler puede tener los valores del 1 al 16. El bit2 al poner este bit a 1 se habilita el uso del timer2 PIC, si se pone a 0 el timer2 PIC estará deshabilitado. Los bits 1 y 0 mediante las combinaciones de estos bits se elige el prescaler, el prescaler puede tener los valores del 1, 4 y 16. [5]

Conclusiones 

Los microcontroladores PIC suelen tener varios temporizadores, como por ejemplo el PIC16F877A, el cual tiene 3 temporizadores que son llamados timer0, timer1 y timer2,



El temporizador contador PIC es utilizado para obtener medidas de tiempos muy precisas



El temporizador Timer0 tiene una amplia gama de aplicaciones en la práctica. Es muy conveniente y fácil de utilizar en programas o subrutinas para generar pulsos de duración arbitraria, en medir tiempo o en contar los pulsos externos (eventos) casi sin limitaciones.



Para el uso del temporizador contador PIC se cuenta además con un grupo de registros mediante los cuales se puede lo puede configurar de acuerdo a las necesidades que se tengan.

Bibliografía [1] F. Valdés, Fundamentos y aplicaciones con PIC, España: Marcombo, 2007. [2] «mikroe,» mikroe, 2017. [En línea]. Available: http://learn.mikroe.com/ebooks/microcontroladorespicc/chapter/temporizadortimer0/. [Último acceso: 22 enero 2017]. [3] «microcontroladores-mrelbern,» microcontroladores-mrelbern, 2013. [En línea]. Available: http://microcontroladores-mrelberni.com/timer0-pic/. [Último acceso: 22 enero 2017].

[4] «microcontroladores-mrelbern,» microcontroladores-mrelbern, 2014. [En línea]. Available: http://microcontroladores-mrelberni.com/timer1-pic/. [Último acceso: 22 enero 2017]. [5] «microcontroladores-mrelberni,» microcontroladores-mrelberni, 2015. [En línea]. Available: http://microcontroladores-mrelberni.com/timer2-pic/. [Último acceso: 22 enero 2017].