#include <16f886.h>
#fuses NOLVP, PUT, NOWDT, EC_IO, NOFCMEN, NOBROWNOUT, NOWRT, BORV40
#use fast_io(A)
#use fast_io(B)
#use delay (clock = 4000000)
void actualizar_digito(const int digito)
{
const int tbl_disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x98};
output_A = 0xFF;
output_B = tbl_disp[digito];
}
void actualizar_display(const int contador)
{
actualizar_digito(contador%10);
output_low(PIN_A1);
delay_ms(4);
actualizar_digito(contador/10);
output_low(PIN_A0);
delay_ms(4);
}
void main(void)
{
int db_cnt, cont = 0;
setup_adc_ports(NO_ANALOGS);
set_tris_A(0b00100000);
set_tris_B(0b00000000);
while(1)
{
for (db_cnt = 0; db_cnt < 10;)
{
db_cnt = (input(PIN_A5) == 0) ? db_cnt + 1 : 0;
actualizar_display(cont);
}
if (input(PIN_A5) == 0)
cont = (cont < 99) ? cont + 1 : 0;
for (db_cnt = 0; db_cnt < 10;)
{
db_cnt = (input(PIN_A5) == 0) ? 0 : db_cnt + 1;
actualizar_display(cont);
}
}
}
while(1)
{
if (cont < 99)
cont++;
else
cont = 0;
output_A = 0xFF;
output_B = tbl_disp[cont/10];
output_low(PIN_A1);
delay_ms(4);
output_A = 0xFF;
output_B = tbl_disp[cont%10];
output_low(PIN_A0);
delay_ms(4);
}
#include <16f886.h>
#fuses NOLVP, PUT, NOWDT, EC_IO, NOFCMEN, NOBROWNOUT, NOWRT, BORV40
#use fast_io(A)
#use fast_io(B)
#use delay (clock = 4000000)
void main(void)
{
int estado_pulsador = 0, cont = 0;
setup_adc_ports(NO_ANALOGS);
set_tris_A(0b00100000);
set_tris_B(0b00000000);
const int tbl_disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x98};
while(1)
{
if (input(PIN_A5) == 0)
{
delay_ms(10);
if ((input(PIN_A5) == 0) && (estado_pulsador == 0))
estado_pulsador = 1;
}
if ((input(PIN_A5) == 1) && (estado_pulsador == 1))
{
delay_ms(10);
if (input(PIN_A5) == 1)
{
estado_pulsador = 0;
if (cont < 99)
cont++;
else
cont = 0;
}
}
output_A = 0xFF;
output_B = tbl_disp[cont/10];
output_low(PIN_A1);
delay_ms(4);
output_A = 0xFF;
output_B = tbl_disp[cont%10];
output_low(PIN_A0);
delay_ms(4);
}
}