Sie sind auf Seite 1von 4

1

Practica #3 Uso del Timer0 y Timer1 como


temporizador y contador para medir frecuencia.
Jose David Minchala
jminchala@est.ups.edu.,ec
Cristiana Peafiel
cpeafielu@est.ups.edu.ec
Universidad Politcnica Salesiana (sede Cuenca)
Sistemas Microprocesados 2

ResumenEn el presente informe se dar de conocer la


utilizacin del TMR0, TMR1 mediante manejo de interrupciones
para lo cual se har el diseo del circuito y programacin para
un frecuencimetro mediante la utilizacin de un software que es
MicroC.

Frecuencia mxima de reloj 40 Mhz. Hasta 10 MIPS


Pila de 32 niveles Mltiples fuentes de interrupcin
Perifricos de comunicacin avanzados (CAN y USB
Pines de Pic18F450

Index TermsInterrupcin, Frecuencimetro

I.

I NTRODUCCIN

Un frecuencmetro es un instrumento que sirve para medir la


frecuencia, contando el nmero de repeticiones de una onda en
la misma posicin en un intervalo de tiempo mediante el uso
de un contador que acumula el nmero de periodos. Dado que
la frecuencia se define como el nmero de eventos de una clase
particular ocurridos en un perodo, su medida es generalmente
sencilla y segn el sistema internacional el resultado se mide
en Hertzios con el smbolo Hz. En el frecuencmetro digital
el valor contado se indica en un display y el contador se
pone a cero, para comenzar a acumular el siguiente periodo de
muestra. La mayora de los contadores de frecuencia funciona
simplemente mediante el uso de un contador que acumula el
nmero de eventos por unidad de tiempo.
II.
II-A.

O BJETIVOS

Objetivos Generales
Disear el Algoritmo de programa un que pueda captar
la seal de un frecuencimetro
III.

III-A.

M ARCO TERICO

Pic 16F877A

El microcontrolador Pic 16F877A se destaca por su gran


versatilidad, velocidad, bajo costo y gran disponibilidad de
herramientas para su programacin
Las principales caractersticas de PIC son
Arquitectura RISC avanzada Harvard: 16 bits con 8 bits
de datos
77 instrucciones
Desde 18 a 80 pines
Hasta 64K bytes de programa (hasta 2 Mbytes en ROMless)
Multiplicador Hardware 8x8 Hasta 3968 bytes de RAM
y 1KBytes de EEPROM

Figura 1. Pines de Pic16F877A

III-A1. INTERRUPCIONES: La caractersticas ms importante es que tienen el Pic es la posibilidad de manejar


interrupciones, y se trata de un acontecimiento que hace que
el micro deje de lado lo que se encuentra realizando, atienda
ese suceso y luego regrese y contine con lo suyo.
Pues eso son las interrupciones, pero veamos, hay dos
tipos de interrupciones posibles, una es mediante una accin
externa (es decir por la activacin de uno de sus pines), la
otra es interna (por ejemplo cuando ocurre el desbordamiento
de uno de sus registros)
III-A2. Timer0
: El Timer0 es un dispositivo puede funcionar conceptualmente de dos formas: como contador de pulsos externos o como
temporizador para calcular intervalos de tiempo. En el caso
que dicha seal provenga del reloj interno de instrucciones
el Timer0 se utiliza para generar interrupciones peridicas
a travs de una cuenta programada. Ya que conocemos la
frecuencia de funcionamiento y en base a un valor cargado
en el contador del timer (lo veremos mas adelante) podemos
temporizar eventos, La frecuencia vara en funcin de la Pre-

escalador. [1][2[3]]El desbordamiento activa un flag y puede


provocar interrupcin (si est habilitada).
La principales caractersticas de TMR0 son las siguientes
1. Temporizador/contador de 8 bit o 16 bit
2. Capacidad de Lectura/Escritura
3. Software de 8 bits con Preescaler programable
4. Seleccin de Reloj Interno o externo
5. Interrupcin por desbordamiento TMR0
6. Seleccin del Borde (de subida o bajada) para el reloj
externo
Para el calculo de el TMR0 se utiliza la siguiente formula
T d = P rescaler T cy(216 T M R0)

(1)

Donde
TMR0 Temporizador
Td=Tiempo Dado
Prescaler podemos ver en la siguiente tabla 1 desde
cuanto a cuanto va

Cuadro I
P ERCALER TMR0[4]

T cy = 4T osc
T osc =

1
f osc

Diagrama de Bloques TMR0


La siguiente figura muestra el esquema del temporizador
Timer0 con todos los bits que determinan su funcionamiento.
Estos bits se almacenan en el registro T0C0N.

Figura 2. Diagrama de bloque Pic[4]

Registro T0CON
TMR0ON : Bit de puesta en marcha del Temporizador 0
T08BIT : Bit de configuracin del modo 8-bit/16-bit:
T08BIT=0: Modo 16-bit
T08BIT=1: Modo 8-bit
T0CS : Bit de configuracin del modo contador/temporizador
T0CS=0: Modo temporizador (TMR 0 se incrementa
en cada ciclo de instruccin FOSC/4)
T0CS=1: Modo contador (TMR0 se incrementa en cada
transicin de la lnea RA4/T0CKI)
T0SE : Bit de seleccin de flanco en modo contador
T0SE=0: TMR0 se incrementa en los flancos de subida
de la lnea RA4/T0CKI
T0SE=1: TMR0 se increment a en los flancos de bajada
de la lnea RA4/T0CKI
PSA : Bit de activacin del pre-escalar
PSA=0: Pre-escalar activado
PSA=1: Pre-escalar no activado
T0PS2..T0PS0 : Bits de seleccin del pre-escalar del Temporizador 0:
Temporizador 0 en modo de 16 bits. La parte alta del TMR0
no es accesibl e directamente. Se accede a ella a travs de
TMR0H para que funcione como buffer.
Cuando se lee el valor de TMR0L, el valor de la parte
alta de TMR0 pasa al TMR0H. Por tanto para leer el
valor de TMR0 primero leemos TMR0L y luego leemos
TMR0H.
Cuando se escribe en TMR0L, el valor del re gistro
TMR0H pasa a la parte alta de TMR0. Por tanto para
escribir en TMR0 pr imero escribimos el valor de la parte
alta en TMR0H y luego escribim os el valor de la parte
baja en TMR0L
III-A3. Timer1
: Caracteristicas fundamentales
configuracion como temporizador o contador de 16 bit
Dispone de un oscilador propio que puede funcionar cono
fuente exterena o interna
Pre-escaler de 3 bit programble
Interrupcion por desbordamiento
El TMR1 es asocioan al registro T1C0N
DR16: bit de seleccion de modo de lectrua o escritura
RD16 =0 lectura o escritura de TMR1 en 8 bit
RD16 =0 lectura o escritura de TMR1 en 16 bit
T1RUN: bit de monitorizacion de la funte de reloj principal
del sistema
T1RUN = 0 : Reloj principal no derivado del osilador
del Temporizador 1
T1RUN = 1: Reloj principal derivado del osilador del
Temporizador 1
T1CKS1....T1CKS0 : bit de seleccion del Pre-escalar del
Temporizador 1
T1OSCEN: Bit de habilitacion del oscilador del TMR1
T1OSCEN =0 : osilador del TMR1 desactivado
T1OSCEN=1:osilador del TMR1 activado
T1SYNC : Bit de sincronizacion de la seal de reloj

T1SYNC=0 : Se sincroniza la entrada de la seal del


reloj
T1SYNC=1 no sincroniza la entrada de la seal del
reloj
TMR1CS : bits de selecion de la fuente de incfemeto del
TMR1
TMR1CS=0 : Pre-escales dr TMR1 se incrementa con
cada ciclo de intruccion Fosc/4
TMR1CS=1 Pre-escales dr TMR1 se incrementa con
cada flanco de subida de la linea RC0/T10SO
TMR1ON: bit de puesto en marcha de Temporizador

20000000 67108864 = 1024T M R0

T M R = (651088864)/(1024)T M R0 = 460005
Convertimos el valor del TMR0 a hexadecimal
T M R0 = B3B5
Para cual vamos a re calcular con el valor aproximado de
TMR2 para saber cual es el error

Diagrama de Bloques TMR0


La siguiente figura muestra el esquema del temporizador
Timer con todos los bits que determinan su funcionamiento.
Estos bits se almacenan en el registro T1C0N.

TDtmrx = T cy P rescaler(65536 T M R2)

TDtmrx =

4
256 (65536 460005)
20M Hz

TDtmrx = 1,0012s

Error =

Error =

Figura 3. Diagrama de bloque Pic[4]

IV.
IV-A.

1s 1,0012
1s

D ESARROLLO
Error = 0,12 %

Clculos de tiempo

IV-A1.
: Datos

V real V deseado
vreal

Calculo TMR0
V.

L ISTA DE M ATERIALES

T d = 100mS
P recales = 1 : 256
f osc = 20M Hz
Con la ecuacin 1 procedemos a calcular el TMR0 para
poder colocar el el cdigo
T d = P rescaler T cy(65536 T M R0)
T osc =

1
20M Hz

T cy =

4
20M Hz

100ms = 256

4
(65536 T M R0)
20M Hz

20000000 = 4 (65536 T M R0) 256

Cuadro II
L ISTA DE M ATERIALES

VI.
Protoboar
Grabador de Pic PiK2
Fuente 5V
Generador de funciones

E QUIPOS

VII.

D ESCRIPCIN .

En el presente programa se obtiene la frecuencia mediante


el conteo de repeticiones de los francos de subida que denotan
un ciclo por unidad de tiempo en este caso cada segundo
para lo cual se utiliz el timer 0 como temporizador con un
preescaler de 255 configurando los bits respectivos en 111,
y un cuarzo de 20 mega Hertz que tiene un error de 12
micro segundos por cada segundo con el que se capturaba
el nmero de repeticiones capturadas por el timer 1 en el que
se configuro como contador y con franco de subida que es
el que almacenaba los datos tanto en alto como en bajo y
con los que se calcula la frecuencia, en este una vez que se
llenaba el estado en bajo suma uno a la variable en alto que
significaba que se cumpli 255 ciclos por lo que para obtener
la frecuencia se multiplicaba el valor de la variable en alto
por 255 y ms lo que aun este almacenado en la variable en
bajo pero esto limita el frecuencmetro al mximo de los 16
bits pero al usar la interrupcin por desbordamiento del timer
y un contador cada vez que esta se ejecuta se puede aumentar
la frecuencia mxima que puede medir el frecuencmetro al
sumar a lo anterior el nmero de veces que se desborda en un
segundo por el valor mximo lo
que permite obtener en el frecuencmetro un valor de
hasta 1.7 mega Hertz que est limitado por la velocidad de
conmutacin del transistor al ingreso, que permite ingresar
cualquier tipo de seal y que ser convertida en cuadrada.
VIII.

C ONCLUSIONES Y R ECOMENDACIONES

El cuarzo utilizado tambin influye en los clculos lo


que hace que tenga un error al intentar obtener el tiempo
exacto.
Para la obtencin de un segundo exacto para la captura
de la frecuencia es necesario usar el cuarzo definido para
el reloj de tiempo real.
El error obtenido con un cuarzo de 20 megahercios es de
12 micro segundo que no afecta la obtencin de valores
aproximados de las frecuencias que recibe del generador
de funciones para frecuencias bajas pero en frecuencias
por encima de los 100 kilohertzios se tiene un error que
va de 1 a 5 Hertz.
El valor mximo est limitado por la velocidad de conmutacin del transistor que realiza el cambio de cualquier
seal a una forma de onda cuadrada.
El circuito de entrada que realiza el cambio de cualquier
tipo de seal a seal cuadrada garantiza que el micro
reciba solo seales en el rango adecuado y evita posibles
daos.
La seal de ingreso debe ser como mnimo un voltio para
polarizar el transistor de manera adecuada y obtener un
funcionamiento correcto.
Para el manejo de las interrupciones hay que tener en
cuenta la prioridad de estas en el pic 18 ya que si no
se configura de manera adecuada no se obtendr la el
tiempo de muestreo correcto.
La seleccin del prescaler puede ayudar tambin a tener
un error menor en la aproximacin del clculo para la
obtencin de un tiempo de un segundo.

La configuracin de los puertos y los bits del timer 0 y el


timer 1 se deben realizar de manera adecuada para evitar
conflicto entre estos.
El uso de los retardos puede afectar la visualizacin
correcta del dato adquirido debido a que puede causar
que se muestre un valor mientras se estn adquiriendo
los datos y no el valor final.
Conclusions and Recommendations:
The quartz used in the calculations also influences what
makes having an error trying to get the exact time.
To obtain an exact second to capture the frequency is
necessary to use quartz defined for the real time clock.
The error obtained with a 20 megahertz quartz is 12
micro second it does not affect obtaining approximate
values of the frequencies received from the function
generator for low frequencies, but at frequencies above
100 kilohertz has an error that it goes from 1-5 Hertz.
The maximum value is limited by the switching speed of
the transistor which performs the change of any signal
into a square waveform.
The input circuit performs the change of any type of
square wave signal ensures that the micro receives signals
only in the proper range and prevents damage.
The input signal must be at least one volt to bias the
transistor properly and proper operation.
For interrupt handling must take into account the priority
of these in pic 18 because if it is not configured properly
you will not get the correct sampling time.
prescaler selection can also help to have less error in the
approximation calculation for obtaining a second time.
must perform configuration ports and bits of timer 0 and
timer 1 so as to avoid conflict between these.
The use of delays can affect the proper display of the
acquired data because it can cause a value to be displayed
as they are acquiring the data and not the final value.
R EFERENCIAS
[1] MikroElectronikaMicrocon trolador PIC18f450 - Microcontroladores
PIC Disponible en http://www.mikroe.com/chapters/view/81/capitulo-3microcontrolador-PIC18f450/#c3v6
[2] TUTORIAL
MICROCONTROLADORES
PIC
,
MIGUEL
TORRES
TORRITI
Disponible
http://web.ing.puc.cl/~mtorrest/downloads/pic/tutorial_pic.pdf
[3] Descripcin
del
PIC
PIC18f450Disponible
en
la
http://www.monografias.com/trabajos18/descripcion-pic/descripcionpic.shtml
[4] MICROCHIP Technology Inc. Datasheet PIC18f450 folha de dados do
PIC18f450 (publicao) DS40044A, 2002.

Das könnte Ihnen auch gefallen