LAB 9 - Funcionamiento de los Timer en el PIC
FUNCIONAMIENTO DE LOS TIMER EN EL PIC
SIMULACIÓN EN PROTEUS
// TIMER 0
#include <16f877a.h> // Incluimos archivo con PIC a utilizar
#device adc=8 // Utilizamos 8 bits de RESOLUCION de lectura
#use delay (clock=20M) // Indicamos al compilador que trabajaremos a 20Mhz
#fuses HS, NOPROTECT, NOWDT // Configuración básica de los fusibles
#include <lcd.c> // Incluimos librería para manejar Pantalla LCD
int centesimas=0,segundos=0,minutos=2;
#int_TIMER0 // FUNCION DE INTERRUPCION POR
void TIMER(VOID) // DESBORDAMIENTO DEL TIMER 0
{
++centesimas; // incrementar una centésima
if (centesimas>99)
{
++segundos; // si llegamos a 100, incrementar un segundo
centesimas=0;
}
if (segundos>59)
{
++minutos; // si llegamos a 60, incrementar un minuto
segundos=0;
}
if (minutos==3) // si llegamos a 3 minutos, hacer alguna acción
{
minutos=0;
disable_interrupts (INT_TIMER0); //habilita interrupcion de timer0
// agregar cualquier otra acción necesaria.
}
set_timer0 (61); //reinicar cuenta desde 61
}
void main ()
{
lcd_init () ; // Inicializamos pantalla LCD
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256); //configuracion del timer0
set_timer0 (61); // interrupción cada centésima
enable_interrupts (INT_TIMER0); //habilita interrupcion de timer0
enable_interrupts (GLOBAL); //todas las interrupciones activadas
printf (lcd_putc, "\f***CRONOMETRO***") ; // Mandamos mensaje por única vez
WHILE (true)
{
lcd_gotoxy(2,2);
Printf(lcd_putc,"Tiempo %02u:%02u",minutos, segundos);
}
}
--------------------------------------------------------------------------------------------------------------------
RETO DE LA SEMANA
A partir del codigo mostrado, realice los cambios necesarios para realizar un programa que cuente en forma descendente.(temporizador regresivo ), bajo las siguiente condiciones.
a. Al presionar pulsador en A0, incrementar minutos , el temporizador aun no debe estar contando el tiempo.(sirve para configurar tiempo de cuenta).
b. Al presionar pulsador en A1, iniciar cuenta regresiva desde los minutos previamente configurados.
c. si la cuenta llega a 00:00, congelar la cuenta y sonar BIP 3 veces. Salida en RB0.
SIMULACIÓN EN PROTEUS
CODIGO MODIFICADO EN EL COMPILADOR
Comentarios
Publicar un comentario