Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

24.- Reloj con temporizador visto en display.

#include <16f877a.h>
#fuses hs,nowdt
#use delay(clock=11059200)
int cont=0;
int seg=0;
int min=0;
int hor=0;
int tabla[10]={63,6,91,79,102,109,125,7,127,111};
int h1,h2,m1,m2;
#int_ext
void externa()
{
if(input(pin_b7)==1)
{
min++;
if(min==60)min=0;
}
if(input(pin_b6)==1)
{
hor++;
if(hor==24)hor=0;
}
}
#int_timer1
void segundos(void)
{
set_timer1(8050);//7936
if(cont==6)
{
seg++;
output_toggle(pin_b2);
cont=0;
}
cont++;
}
void main()
{
port_b_pullups(true);
setup_timer_1(t1_internal|t1_div_by_8);
set_timer1(8050); // 7936
ext_int_edge(h_to_l);
enable_interrupts(int_timer1);
enable_interrupts(int_ext);
enable_interrupts(global);
output_low(pin_b2);
while(true)
{
output_d(~1);
output_c(tabla[h2]);
delay_ms(5);
output_d(~2);
output_c(tabla[h1]);
delay_ms(5);
output_d(~4);
output_c(tabla[m2]);
delay_ms(5);
output_d(~8);
output_c(tabla[m1]);
delay_ms(5);
if (min>9)
{
m1=min%10;
m2=min/10;
}
else
{
m2=0;
m1=min;
}
if (hor>9)
{
h1=hor%10;
h2=hor/10;
}
else
{
h2=0;
h1=hor;
}
if(seg>=60)
{
seg=0;
min++;
}
if(min>=60)
{
min=0;
hor++;
}
if(hor>=24)hor=0;
}
}

You might also like