0% encontró este documento útil (0 votos)
193 vistas9 páginas

Lab 10 Timer e Interrupciones V2

Este documento presenta un laboratorio sobre el uso del timer 0 e interrupciones en un PIC16F877A. Se describen 3 experiencias: 1) generar un temporizador de 1 segundo usando el timer 0, 2) mostrar un reloj MM:SS usando el mismo timer, y 3) un reto para implementar un temporizador regresivo. El laboratorio muestra el código en CCS y simulaciones en Proteus como evidencia. Se concluye que el timer 0 permite temporización y el uso de interrupciones mejora el rendimiento de los programas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
193 vistas9 páginas

Lab 10 Timer e Interrupciones V2

Este documento presenta un laboratorio sobre el uso del timer 0 e interrupciones en un PIC16F877A. Se describen 3 experiencias: 1) generar un temporizador de 1 segundo usando el timer 0, 2) mostrar un reloj MM:SS usando el mismo timer, y 3) un reto para implementar un temporizador regresivo. El laboratorio muestra el código en CCS y simulaciones en Proteus como evidencia. Se concluye que el timer 0 permite temporización y el uso de interrupciones mejora el rendimiento de los programas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

Nro.

LABORATORIO MICROCONTROLADORES
Página 1 de 9

MICROCONTROLADORES

LABORATORIO N° 10

Timer e Interrupciones

Participantes(s)

Foto:

Ccotahuana Huarca Luza Guillen Edilson Lupaca Magaño


Nombres:
Dilman Rodrigo franis
%
100% 100% 100%
participación:
Grupo
Ciclo 4C5 Electrónica y Automatización – Microcontroladores
Fecha de entrega
Nro.
LABORATORIO MICROCONTROLADORES
Página 2 de 9

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
Página 3 de 9

VI. 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 medio 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. Mostrar los APELLIDOS de los integrantes en lugar de “Timer 0 con
PIC”

2. Como EVIDENCIA, mostramos el programa en PIC C COMPILER y capturamos la pantalla de


PROTEUS mostrando la ventana PIC CPU Source Code: (incluir NOMBRES DE LOS
INTEGRANTES en ambos casos).:
Captura de PIC C COMPILER
Nro.
LABORATORIO MICROCONTROLADORES
Página 4 de 9

Captura de esquemático en Proteus

Captura de PIC CPU Source Code de Proteus


Nro.
LABORATORIO MICROCONTROLADORES
Página 5 de 9

VII. 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.

Cambiar la condición de tal manera que si transcurre 1 minuto con 15 segundos, suene
el Buzzer. Mostrar los APELLIDOS de los integrantes en lugar de “Reloj con TIMER 0”

3. Como EVIDENCIA, mostramos el programa en PIC C COMPILER y capturamos la pantalla de


PROTEUS mostrando la ventana PIC CPU Source Code: (incluir NOMBRES DE LOS
INTEGRANTES en ambos casos).:

Captura de PIC C COMPILER


Nro.
LABORATORIO MICROCONTROLADORES
Página 6 de 9

Captura de esquemático en Proteus

Captura de PIC CPU Source Code de Proteus


Nro.
LABORATORIO MICROCONTROLADORES
Página 7 de 9

VIII. RETO DE PROGRAMACIÓN:

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.

IMPORTANTE!!! En el video el estudiante debe mostrar su rostro mediante webcam y


presentarse a sí mismo y a sus compañeros antes de iniciar la explicación, de lo contrario NO
tendrá validez.

https://www.youtube.com/watch?v=SwpTo2hfL_Q
Nro.
LABORATORIO MICROCONTROLADORES
Página 8 de 9

3. Como EVIDENCIA 2, pegue en el recuadro siguiente el CÓDIGO EN MODO TEXTO:

//Integrantes
//Ccotahuana Huarca Dilman
//lupaca magaño
//luza guillen

#include <16F877A.h>
#use delay(clock=20M)
#fuses HS, NOPROTECT, NOWDT
#include <lcd.c>
int centesimas=0,segundos,minutos,y;
int v;

#INT_TIMER0
void TIMER(VOID)
{ ++centesimas;
if (centesimas==5)
{ --segundos;
centesimas=0; }

if (segundos==0) {
--minutos;
segundos=59; }

if (minutos==255 && segundos==59)


{ disable_interrupts (INT_TIMER0);
minutos=0;
segundos=0;
output_high(PIN_C5);
delay_ms(500);
output_low(PIN_C5);
delay_ms(500);
output_high(PIN_C5);
delay_ms(500);
output_low(PIN_C5);
delay_ms(500);
output_high(PIN_C5);
delay_ms(500);
output_low(PIN_C5);
delay_ms(500);
set_timer0 (61);
}
}

void main()
{
lcd_init ();
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
set_timer0(61);
printf(lcd_putc,"\fCcotahuana-Luza-Lupaca ");

while (true) {
printf(lcd_putc,"\nTiempo %02u:%02u hrs",minutos, segundos);
if (!input(PIN_E0))
{ delay_ms(500);
minutos=v+1;
v=minutos; }
Nro.
LABORATORIO MICROCONTROLADORES
Página 9 de 9

if (!input(PIN_E1) && v>0)


{ segundos=59;
minutos=y;
y=v-1;
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER0); }
}
}

IX. OBSERVACIONES Y CONCLUSIONES: (Deben estar convenientemente redactadas)

OBSERVACIONES:

➢ En la experiencia 2 se pudo observar que se estableció un tiempo de 3 minutos y 10segundos


para que nuestro temporizador se detenga y realice una acción a través del sonido de una
alarma.
➢ Atreves del reto de programación se observó que el objetivo de dicha experiencia es modificar
lo visto en la experiencia 2 para obtener un temporizador en cuenta descendente
➢ Se pudo observar que el timer 0 en modo temporizador la velocidad de cuenta depende de la
frecuencia del oscilador del PIC
➢ Observamos en el CCS que para la configuración del timer0 que solo son dos, el
setup_timer_0(modo); donde le indicamos si va hacer como contador o como temporizador y
bueno en nuestro laboratorio se hizo como temporizador, como se observa para la experiencia1
usamos el RTCC_INTERNAL
➢ Se observó que la experiencia1 se pueden agrupar las constantes de distintos grupos con “|”

CONCLUSIONES:

➢ Se utilizó el software PIC Timer Calculator and Source Code Generator para hacer los cálculos
y facilitar mejor el desempeño en este laboratorio, y evitar falsos errores
➢ En conclusión, de software PIC Timer Calculator and Source Code Generator cuenta para
configurar la frecuencia del oscilador, el preescaler del timer0 y variar la cuenta de 0 a 255 y una
vez configurado nos genera el tiempo con su frecuencia calculada. Todo eso podemos hacer los
cálculos en el Timer0, y a su vez el software, también cuenta para los cálculos del Timer1 y
Timer2
➢ Si utilizamos la frecuencia del oscilador interno (cristal 20MHz|4MHz) estará en modo
temporizador y si viene de un pin externo está en modo contador. Todo esto pasa por un
preescalador.
➢ El timer0 en resumen es un registro de 8 bits contando de 0-255 bits; cuando supera esa cuenta
pasa a desbordamiento y activa un bit
➢ Concluimos que al momento de escribir el “timer0” se escribía en el PIC COMPILER
“set_timer0(valor);” lo cual el valor era de 8 bits o también se podría escribir “valor = get_timer0
();” ya que ambos son enteros de 8bits.
➢ Concluimos que en la experiencia1 la función “outpout_toggle(BIN_B1)” nos indicamos que el
BIN_B1 ósea el pin B1 si está apagado se va a encender, si en caso este encendido se va a pagar
donde habrá un led que haga la función prendido y apagado cada segundo.

También podría gustarte