Está en la página 1de 8

REPUBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACION


ESCUELA TECNICA INDUSTRIAL ROBINSONIANA LARA

TEM. PRACTICA III. LAPSO II.

MICROCONTROLADORES: CONTADOR DE FRECUENCIA CON


MICROCONTROLADOR PIC

1) PREPARACION TEORICA:

- Investigue la tabla de instrucciones de programación del microcontrolador


PIC16F628A
- Investigue sobre los puertos de entrada y salida del PIC16F628A
- Repase arquitectura interna y configuración de memoria interna del
PIC16F628A
- Estudie lo referente al funcionamiento del Temporizador/Contador (TMR0)
del PIC16F628A
- Estudie lo referente al funcionamiento del Temporizador/Contador (TMR1)
del PIC16F628A

2) INTRODUCCION:

¿Qué es la Frecuencia?

La frecuencia es la tasa de recurrencia (repetición) de un evento cíclico o periódico.


En física, usted puede observar periodicidad en rotación, oscilaciones y ondas. En
una forma de onda análoga o digital, usted puede invertir el periodo de la señal para
obtener la frecuencia. A menor sea el periodo, mayor será la frecuencia y viceversa.
Esto se ilustra en la Figura, donde la forma de onda superior tiene la menor
frecuencia y la forma de onda inferior tiene la mayor frecuencia.

La frecuencia se representa usualmente mediante la frecuencia angular ω en


radianes/segundo, o como ƒ en segundos-1, también conocido con la unidad de
hertz (Hz). Usted también puede representar la frecuencia mediante pulsaciones
por minuto (BPM) y revoluciones por minuto (RPM). La frecuencia angular ω
(rad/seg) y ƒ (Hz) se relacionan mediante la siguiente fórmula: ω =2πƒ.

Las señales análogas periódicas en las aplicaciones reales son complejas y rara
vez pueden ser representadas por una sinusoide simple. Los componentes de
frecuencia que constituyen una de estas señales son normalmente las propiedades
de interés, y su análisis es conocido como dominio de la frecuencia o análisis
espectral. Este tipo de análisis es requerido principalmente para sonido y
vibraciones.

Obtener la frecuencia de una señal digital, por otro lado, es muy sencillo. Para una
simple señal digital, como la descrita en la siguiente figura, el periodo es
directamente el tiempo entre flancos de subida, o entre flancos de bajada. Si el
tiempo entre flancos de subida o de bajada varia ligeramente, usted puede
promediarlos sobre un gran número de muestras para determinar la frecuencia.

¿Cómo realizar una medición de frecuencia?

Para una adquisición de frecuencia digital, el proceso es bastante simple. Para


señales de baja frecuencia, es suficiente emplear un contador o un tiempo base. El
flanco de subida de la señal de entrada dispara el número de veces que el tiempo
base debe ser contado. Ya que el tiempo base es de una frecuencia conocida,
usted puede calcular fácilmente la frecuencia de la señal de entrada

Cuando la frecuencia de la señal digital es muy alta o varía, es mejor emplear uno
de los métodos de dos contadores descritos abajo. Obsérvese que la misma
limitación de hardware aplica para ambos métodos con dos contadores. Esto es, la
frecuencia que usted está midiendo no puede exceder la máxima frecuencia de
entrada soportada por el contador, aunque puede exceder la del tiempo base.

Método de Medición de Alta Frecuencia con Dos Contadores


Para una señal de alta frecuencia, usted requiere de dos contadores. Un contador
apareado (dos contadores) genera un tren de pulsos con un periodo definido por el
usuario, “Tiempo de Medición” (ver Figura ), mucho más largo que el de la señal
que usted está midiendo, pero lo suficientemente pequeño para prevenir un
desbordamiento del contador.

El tiempo de medición de esta Señal Interna debe ser un múltiplo del Tiempo Base
Interno, o, en otras palabras, debe ser divisible por él. El número de eventos de la
Señal de Entrada se cuentan sobre el periodo de tiempo conocido provisto por la
Señal Interna. Al dividir el número de eventos por el tiempo conocido de medición
se obtiene la frecuencia de la Señal de Entrada. Nuestro circuito “Contador de
Frecuencia”, basa su funcionamiento en este esquema de trabajo. En la próxima
figura puede observarse un diagrama básico del contador de Frecuencia.

Programa Frec5:

Como ya se menciono, se basa en el método de los dos contadores. La base de


tiempo interna se genera mediante la señal de interrupción (desbordamiento, es
decir, la transición del contador desde 255 0) del TMR0 (8 Bits). Recuerde que la
secuencia de conteo de TMR0 es 0 255 0 y que cada transición de 255 a 0
genera una bandera o señal de interrupción. Habiéndose seleccionado un pre-
escalador de 16, cada desbordamiento ocurrirá cada:

Td = 1 uSeg*16*256 = 4096 uSeg = 4,096 mSeg (Base de Tiempo), es decir, una


interrupción o desbordamiento del TMR0 ocurre cada 4,096 mSeg.

Para lograr un Tiempo de Medición de 1 Seg. Necesitamos aproximadamente

Tm = 1 Seg/ 0,004096 Seg = 244.14  244 Interrupciones.

En nuestro caso, nuestro “Registro Adicional” (Q en el Programa) debe acumular


244 para lograr la base de tiempo de 1 segundo.

Simultáneamente, a través del Pin RB6, se aplica la señal a medir. Esta es


procesada por el TMR1 (16 Bits), trabajando como contador no sincronizado. Así,
contando el número de pulsos que ingresan por RB6 durante un segundo,
obtenemos directamente la frecuencia de esa señal.

Estructura y modo de trabajo del TMR1 con el programa FREC5.ASM

Cuando se cumple el “Tiempo de Medición” (1 Seg.) por software se detiene el


conteo en TMR1 (Se desactiva el Bit TMR1ON en el registro T1CON) y se capturan
los datos contenidos en TMR1H y TMR1L, para ser procesados. Seguidamente se
reinician TMR0 y TMR1 para realizar la próxima medición. Todo este procesamiento
se realiza en el segmento principal del programa (INICIO) y en la Rutina de
Interrupción “ESCALA”.

Ya tenemos el valor de la frecuencia de la señal pero, lamentablemente, lo tenemos


en un valor binario de 16 Bits. Recordemos que el PIC16F628A solo puede
procesar datos de 8 Bits. Ahora debemos convertir ese dato binario de 16 Bits en
dígitos Decimales o BCD (Binary Coded Decimal), que son los que podemos
presentar en los displays de 7 segmentos.

En la Subrutina BIN_BCD se realiza esta conversión, es decir, se procesa el valor


de 16 Bits del TMR1 para descomponerlo en cinco dígitos decimales (aunque dado
nuestro circuito solo usaremos tres), aquí se realizan una serie de “trucos” o
manipulaciones aritméticas para llevar a cabo esta conversión. Recuerde que dada
la limitación en el bus de datos del micro (8 Bits), aquellos datos que sean mayores
a esto se procesan en bloques de 8 Bits. En este caso, el contador TMR1 se
descompone (y realmente opera) como dos registros de 8 Bits concatenados
TMR1H y TMR1L (parte alta y parte baja del contador). Cuando se finaliza un
“Tiempo de Medición”, los valores de estos registros pasan a registros o variables
auxiliares (CONTADOR_H y CONTADOR_L) que son los que realmente se
procesan en la rutina BIN_BCD. Ambos registros se trabajan separadamente para
lograr la conversión.

Numero en base 10 Código BCD (DCBA)


0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

Tabla de Conversión Decimal – BCD

La salida del valor de cada digito, se realiza a través del Puerto A del Micro (Pines
17,18, 1 y 2). El dato (Digito) correspondiente a cada display es enviado al puerto y
simultáneamente se activa el Transistor de conmutación de cada Display. Esta
operación se hace a alta velocidad y el ojo humano no la detecta o diferencia (No
debe haber parpadeos o Flickers en los displays). La salida del puerto, se aplica a
un CI Decodificador (SN7447A) que convierte el valor BCD aplicado a sus Pines (
6, 2, 1 y 7), al código de 7 Segmentos para poder encender los LEDs del Display.

Tabla de Conversión del SN7447A (Código BCD a 7 Segmentos)

La parte llamada “DISPLAY” en el programa principal, controla el despliegue de los


dígitos obtenidos en la conversión hacia cada uno de los Displays de 7 segmentos.

Display de 7 Segmentos
Finalmente la Subrutina “DELAY”, genera un retardo de tiempo para la retención
visual del valor presentado en cada Display.

3) ACTIVIDADES DE LABORATORIO:

El siguiente procedimiento le enseñara a generar los códigos de programación para


los dispositivos PIC de MICROCHIP.

- En el entorno de Windows abra el programa MPLAB.


- Desde el menú FILE seleccione la opción “Open”.
- Seleccione el archivo fuente (.asm). Una vez abierto el archivo .ASM vaya al
menú CONFIGURE y elija la opción “Select Device”. Con esto elegimos el
dispositivo (chip) que vamos a grabar.
- Ir al menú WINDOW y al final del menú desplegable seleccionar la ventana
donde se encuentra nuestro código fuente (.asm)
- Ahora vamos al menú PROJECT y seleccionemos la opción “Quickbuild
xxx.asm”, donde xxx.asm es nuestro código fuente. Mediante esta operación
convertimos el código fuente (.ASM) en código objeto (.HEX).
- Si la conversión es exitosa se presentará el mensaje: BUILD SUCCEEDED.
- Para ver los diferentes programas generados, vamos al menú VIEW y
seleccionamos la opción “Program Memory”. Allí en la parte inferior hay tres
pestañas donde, seleccionando, veremos los diferentes códigos generados.
- Pasamos al menú PROGRAMER. Seleccionando la opción “Select
Programmer”  PICStart Plus
- Regresamos al menú PROGRAMMER y ahora seleccionamos la opción
“Enable Programmer”. Con esto, activamos el programador y se establece
comunicación entre el programador y la PC.
- Inserte el Chip en la base del programador y asegúrelo con el Clip.
- Nuevamente en el menú PROGRAMMER, seleccionar la opción “Program”,
luego de unos instantes debe aparecer en pantalla el mensaje
“Programming Succesful”, indicando que el dispositivo se ha grabado
correctamente.
- Salve el trabajo realizado de la siguiente manera: Vaya al menú FILE y
seleccione la opción “Save Workspace” y elegimos en que carpeta lo vamos
a guardar.
- Inserte el Chip en el circuito y realice las pruebas necesarias.

4) ACTIVIDADES POST-LABORATORIO:

Elabore un informe donde se incluya:


- Investigación teórica, presentando la mayor cantidad de información posible
sobre los tópicos señalados.
- Actividades y procedimientos realizados en el laboratorio.
- Conclusiones individuales de cada uno de los integrantes del grupo de
trabajo.
- El informe se entregará el día Jueves

También podría gustarte