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 Abst Ab st r act 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 disponibles en un PIC de clase media tiene, como elemento esencial, un 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 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 un pre-divisor o después del contador principal, funcionando entonces como un post-divisor. Los temporizadores
timer0 y timer1 tienen solamente un predivisor; el timer2, en cambio, dispone de un pre-divisor y post-divisor. [1]
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 c lase media.
Timer0
El timer0 PIC es un temporizador contador de 8 bits, el registro TMR0 es el temporizador contador timer0 en sí,
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 co ntador
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
El bit7 al poner este bit a 0 se activan unas resistencias pull up internas que el microcontrolador tiene en el puerto B.
PIC como temporizador, normalmente el registro TMR0 del
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 tomar el valor de 1, 2, 4, 8, 16, 32, 64,
Timer1
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: =
El
tiempo
Timer1 AVR como cont ador
Para
4 ∗
que
tardará
ahora
el
temporizador en aumentar una unidad será la inversa de este valor, a lo que se le
conoce
como
cada 4 ciclos de reloj. [4]
periodo
del
temporizador:
el
registro TMR1 del
PIC16F877A el 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
El valor inicial adecuado a cargar en el registro TMR0 para obtener el tiempo buscado está dado por: 0 = 28 − ∗
de un bajo a un alto, esto es por flanco de subida, hará que el timer1 PIC se incremente en una unidad, estos incrementos en su cuenta serán siempre
por cada flanco de subida.
4 ∗
−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 prescaler 1, 2, 4 u 8.
temporizador,
normalmente
registro TMR1 del
timer1
el
PIC
irá
aumentando su valor en una unidad con cada
ciclo
de
instrucción del
microcontrolador PIC, 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 este bit está a 0 el timer1 PIC estará desactivado. Temporizador contador PIC: Timer1 como temporizador.
Ilustración 4.TIMER2 CONTROL REGISTER
El bit7 no se utiliza por lo que se le pone a 0. 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].