Nro. LABORATORIO MICROCONTROLADORES Página 1 de 10 MICROCONTROLADORES LABORATORIO N° 10 Timer e Interrupciones Part
Views 51 Downloads 0 File size 853KB
Nro.
LABORATORIO MICROCONTROLADORES
Página 1 de 10
MICROCONTROLADORES LABORATORIO N° 10
Timer e Interrupciones
Participantes(s)
Foto:
Nombres: % participación:
Grupo Ciclo 4C5 Fecha de entrega
Choque Ccoa Jonathan Joel
Cayo Huerta Gianpiero Anthonny
55%
45% A Electrónica y Automatización – Microcontroladores 27/01/2021
Nro.
LABORATORIO MICROCONTROLADORES
Página 2 de 10
I.COMPETENCIAS ESPECÍFICAS DE LA SESIÓN
Usar adecuadamente el software y las instrucciones del programa. Conocer el funcionamiento y la configuración del Timer 0. Programar el Módulo Timer 0 y aplicaciones prácticas.
II.CONTENIDOS A TRATAR
Instrucciones, módulos internos del microcontrolador, entradas y salidas Configuración y utilización de módulo Timer 0.
III.MATERIALES Y EQUIPO
CCS Compiler instalado. Entrenador de PICS PIC16F877A PC con Software de simulación.
IV.FUNDAMENTO TEÓRICO
Para la realización de este laboratorio se requiere haber realizado y aprobado la EVALUACIÓN DE LA FASE ASÍNCRONA La lectura previa de la información proporcionada para el curso, como el texto y el manual del fabricante. Revise la bibliografía recomendada en la FASE ASÍNCRONA.
V.SEGURIDAD EN LA EJECUCIÓN DEL LABORATORIO Tener cuidado con el tipo y niveles de voltaje con los que trabaja. Antes de utilizar el multímetro, asegurarse que está en el rango y magnitud eléctrica adecuada. Tener cuidado en la conexión y en la desconexión de los equipos utilizados
Nro.
LABORATORIO MICROCONTROLADORES
VI.
Página 3 de 10
EXPERIENCIA 1 – EXPERIENCIA # 1: GENERAR TEMPORIZADOR DE 1 SEGUNDO CON TIMER 0 1. Vamos a realizar un programa que genere una interrupción por desbordamiento del Timer cada segundo. La función de interrupción cambiará el estado de una salida conectada a un Led y al mismo tiempo incrementará el valor de una variable. Este valor se mostrará en un display LCD.
2. El código a utilizar se muestra en la imagen respectiva, además se hace un paralelo con su respectivo PSEUDOCÓDIGO:
Directivas
Declaración de variables Función de Interrupción por Desbordamiento del Timer 0 Se incrementan las centésimas, si llegan a 100 (un segundo), se cambia el estado de la salida B1 y se incrementa valor. Se reinicia cuenta del Timer 0 desde el número 61 FUNCIÓN PRINCIPAL: Se inicializa LCD Se configura TIMER0 como Temporizador y PREESCALER de 256. Se escribe 61 en Timer Se habilita interrupción del Timer y Global. Se envía mensaje inicial
Nro.
LABORATORIO MICROCONTROLADORES
Página 4 de 10
BUCLE INFINITO: Se envía valor de variable a pantalla LCD.
3. Como EVIDENCIA, capturamos la pantalla de PROTEUS mostrando la ventana PIC CPU Source Code: (incluir NOMBRES DE LOS INTEGRANTES).:
Nro.
LABORATORIO MICROCONTROLADORES
VII.
Página 5 de 10
EXPERIENCIA 2 – RELOJ MM:SS UTILIZANDO EL TIMER 0 1. Esta vez vamos a mostrar en la pantalla LCD un RELOJ de minutos – segundos, cuya temporización de 1 segundo (base de tiempo) será generada por el Timer 0
4. El código a utilizar se muestra en la imagen respectiva, además se hace un paralelo con su respectivo PSEUDOCÓDIGO: (mismas Directivas anteriores) Declaración de variables FUNCIÓN INTERRUPCIÓN TIMER0 Se incrementa centésimas Si llega a 100 (1 segundo), se incrementa segundos y se reinicia centésimas en 0. Si segundos llega a 60, se incrementa minutos y se reinicia los segundos. Si se cumples 3 minutos con 10 segundos, se deshabilita Timer0 y se activa PIN C5. Se reinicia cuenta de Timer0 desde 61.
FUNCIÓN PRINCIPAL: Inicialización de LCD Se configura Timer 0 como TEMPORIZADOR y con un PREESCALER de 256. Se inicia cuenta desde 61 Se habilita Interrupción de Timer 0 y la interrupción Global. Se envía mensaje inicial
Nro.
LABORATORIO MICROCONTROLADORES
Página 6 de 10
BUCLE INFINITO: Mostramos minutos y segundos en el LCD
5. Como EVIDENCIA, capturamos la pantalla de PROTEUS mostrando la ventana PIC CPU Source Code: (incluir NOMBRES DE LOS INTEGRANTES).:
VIII.
RETO DE PROGRAMACIÓN:
Nro.
LABORATORIO MICROCONTROLADORES
Página 7 de 10
1. A partir del código mostrado, realice los cambios necesarios para realizar un programa que CUENTE EN FORMA DESCENDENTE, (temporizador regresivo), bajo las siguientes condiciones: Al presionar pulsador en D0, incrementar MINUTOS. el temporizador aún no debe estar contando el tiempo. (sirve para configurar tiempo de cuenta).
Al presionar pulsador en D1, iniciar CUENTA REGRESIVA desde los minutos previamente configurados. Si la cuenta llega a 00:00, congelar la cuenta y sonar BIP 3 veces. Para verificar que una variable de tiempo (digamos “minutos”) llegó a cero, hacerlo con la instrucción “if (minutos==-1)”
Video demostrativo: https://www.loom.com/share/e445a2ce645f40bb943bbe535ab23dd2 2. Como EVIDENCIA 1, grabe un video de su simulación en PROTEUS utilizando la aplicación LOOM o YOUTUBE y coloque el LINK en el recuadro siguiente. En la simulación debe visualizarse los nombres de los integrantes claramente. El video NO debe durar más de 2 minutos.
https://www.youtube.com/watch?v=drVwbw9zvtA&feature=youtu.be
3. Como EVIDENCIA 2, pegue en el recuadro siguiente el CÓDIGO EN MODO TEXTO: #include #use delay (clock=20M) #fuses HS, NOPROTECT, NOWDT
Nro.
LABORATORIO MICROCONTROLADORES
void main () { lcd_init();
Página 8 de 10
Nro.
LABORATORIO MICROCONTROLADORES
Página 9 de 10
4. Como EVIDENCIA 3, pegue en el recuadro siguiente la captura de pantalla de su explorador mostrando el archivo COF y HEX generado, mostrando además día y hora de generación (ejemplo como la imagen):
IX.OBSERVACIONES Y CONCLUSIONES: (Deben estar convenientemente redactadas)
Nro.
LABORATORIO MICROCONTROLADORES
Página 10 de 10
OBSERVACIONES: Cuando el contador va llegando a cero se detiene en 00:001. El timer 0 es un registro de 8 bits. La cuenta del timer 0 depende de un pin externo cuando está en modo contador. Los pulso pasan por un pre escalador, este es encargado de dividir los pulsos. CONCLUSIONES: El timer 0 se adecua mediante fórmulas, se debe de tomar en cuenta la frecuencia del cristal. Existen dos modos de pulso, modo contador y modo temporizador. Cuando el pulso esta en modo temporizador El timer 0 en modo temporizador viene del oscilador interno. El timer 0 en modo contador viene de un pin externo.