INTEGRANTES
José Berenguel Vera P.
Gianlui Suca Motta
Sebastian Pilares Sosa
FASE 3: Manejo del Timer y las Interrupciones
I. COMPETENCIA ESPECIFICA DE LA SECION
- Conocer el funcionamiento y la configuración de las Interrupciones.
- Conocer el funcionamiento y la configuración del Timer cero.
- Aplicar estos conocimientos en la realización de un cronómetro.
II. PROCEDIMIENTO
1. Descripción y funcionamiento de las interrupciones y los temporizadores de un PIC.
Descripción
Esta característica es muy importante a la hora de trabajar con sensores, debido a que estos entregan valores de tensión para reflejar la variable física que está midiendo.
El CAD conversor analógico digital PIC (no todos los PIC lo tienen, para nuestro laboratorio se utilizará el PIC16F877A), permite medir señales analógicas en forma digital, para ello el PIC cuenta con pines por donde le llegará la señal analógica, estos pines deben configurarse como entradas analógicas, el conversor analógico digital PIC cuenta con un circuito que carga un condensador interno al PIC con la tensión analógica que le está llegando a la entrada analógica, luego la tensión almacenada en el condensador lo convierte en un número binario de 10 bits que representará la tensión almacenada en el condensador, este número binario se guarda en sus registros ADRESH y ADRESL de 8 bits cada uno pero estos actúan como un solo registro de 16 bits, en el registro ADRESH se guardan los bits más significativos y en el registro ADRESL se guardan los bits menos significativos, el número que representa la tensión almacenada en el condensador y guardado en forma binaria dentro de estos registros será de 10 bits para el PIC16F877A, la cantidad de bits de este número depende del conversor analógico digital PIC del microcontrolador PIC utilizado.
Funcionamiento
En estas entradas se pueden sensar valores de 0 a 5 V y se pueden representar (según el PIC) con diferentes resoluciones, como por ejemplo 256 valores, 1024 (revisar datasheet).
Así si trabajamos con una resolución de 256 tendremos para 0V una salida de 0 y para los 5V veremos el número 255, lo mismo con otras resoluciones y valores intermedios.
Para configurar las entradas analógicas debemos utilizar el CSS compiler y seleccionar que entradas ocuparemos para nuestros propósitos, por ejemplo pueden configurarse A0, A1 y A3 con el siguiente comando.
setup_adc_ports(AN0_AN1_AN3);
2. Realice la simulación de los siguientes proyectos guiados
Transcriba el siguiente código para simular y probar el funcionamiento de nuestro CAD de nuestro PIC 16F877A.
Se transcribió el código proporcionado y se compilo con el CCS Compiler, obteniendo lo siguiente:
El funcionamiento del código se puede apreciar en el siguiente video:
Realizar los siguientes cambios en el código anterior para que cuente de forma descendente (temporizador regresivo):
a) Al presionar pulsador en A5, incrementar MINUTOS. el temporizador aún no debe estar contando el tiempo. (sirve para configurar tiempo de cuenta).
b) Al presionar pulsador en D0, iniciar CUENTA REGRESIVA desde los minutos previamente configurados.
c) Si la cuenta llega a 00:00, congelar la cuenta y sonar BIP 3 veces
Nota: Para verificar que una variable de tiempo (digamos “minutos”) llegó a cero, hacerlo con la instrucción “if (minutos==-1)”
El código ejecutado con los las condiciones señaladas líneas arriba, sería el mostrado a continuación:
Realizar los siguientes cambios en el código anterior para que cuente de forma descendente (temporizador regresivo):
a) Al presionar pulsador en A5, incrementar MINUTOS. el temporizador aún no debe estar contando el tiempo. (sirve para configurar tiempo de cuenta).
b) Al presionar pulsador en D0, iniciar CUENTA REGRESIVA desde los minutos previamente configurados.
c) Si la cuenta llega a 00:00, congelar la cuenta y sonar BIP 3 veces
Nota: Para verificar que una variable de tiempo (digamos “minutos”) llegó a cero, hacerlo con la instrucción “if (minutos==-1)”
El código ejecutado con los las condiciones señaladas líneas arriba, sería el mostrado a continuación:
Se modificó para que cada centésima disminuya un segundo nuestro contador, cuando el contador llega a 0 segundos, figura 59 segundos nuevamente y disminuye 1 minuto en el contador. Se agregó la función BIP para agregar los 3 bips cuando este llegue a 0 segundo y 0 minutos llamándolo en nuestro programa principal. Nuestro pin A5 se usa para subir la cuenta de los minutos y el pin D0 para empezar nuestro conteo regresivo. Se pude apreciar mejor el funcionamiento y su explicación en el siguiente video.
III. OBSERVACIONES
Y CONCLUSIONES
Observaciones
-En la placa
tenemos tres timers uno de 8 bits y dos de 16 bits.
-Cambiamos el pin
c7 por el a0 debido a que en la simulación si funciona el c7 y en la placa el
pin c7 está conectado a otra cosa ya que no está compatible con el lcd.
-Se agregó una
variable llamada “fbip”, para poder obtener los 3 bips al final del contador
descendente.
-Al inicio nuestra
variable minutos debe ser de 1 minuto mínimo para que empiece a contar de forma
descendente.
Conclusiones
-Para colocar la
velocidad del contador se debe tener en cuenta los bits y el clock del PIC, en
el laboratorio pusimos el valor de 61 en el set timer ya que al multiplicar 255
por 0.2 que es el tiempo de respuesta de la placa nos da 51 micro segundos y al
multiplicarlo por 256 nos da 13 mili segundos y lo que queremos es 10 mili
segundos y el valor más aproximado es 61 ya que nos da 9.9 mili segundos.
-Para la
inicialización de nuestro contador usando un pulsador, se debe colocar la
sentencia “enable_interrupts (INT_TIMER0)” debajo de la condición del pulsador
ya que si esta se pone antes, el contador empezara a contar automáticamente.
- Los minutos y
segundos van a -1 en la función de interrupción, ya que si estos son igual a 0,
los segundos contaran solo 58 segundos y minutos solo podría iniciar cuenta
regresiva si está por encima de 1 minuto.
-Para activar la interrupción de cualquier timer, esta
debe estar acompañada siempre por una activación global, la cual habilita todas
las interrupciones






Revisado.
ResponderBorrarLa foto grupal DEBE actualizarce.
Faltó explicar mejor los videos.