#include <16f84a.h>
#FUSES xt,NOWDT,NOPROTECT,NOPUT //funcionamiento
#use delay (clock=4000000)
#use fast_io(a)
#use fast_io(b)
byte CONST seg_u[10]={0x5b,0x06,0x3f};
byte CONST seg_d[10]={0x66,0x4f,0x5b,0x06,0x3f};
byte CONST seg_d2[10]={0x67,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f};
void main()
{
//inicializacion
byte unid=0,dec=0;
set_tris_a(0b00000000);
set_tris_b(0x00);
output_a(0);
output_b(0);
//procesp
for(;;)
{
for(dec=0;dec<3;dec++)
{
output_a(0b00001000);
output_b(seg_u[dec]);
delay_ms(500);
if(seg_u[dec]==0x5b)
{
for(unid=0;unid<5;unid++)
{
output_a(0b00000100);
output_b(seg_d[unid]);
delay_ms(500);
}
}
else
if(seg_u[dec]==0x06)
{
for(unid=0;unid<10;unid++)
{
output_a(0b00000100);
output_b(seg_d2[unid]);
delay_ms(500);
}
}
}
}
}
hola angelgris beuno no he implementado tu respuesta xq me quedan algunas dudas por el ejemplo en la funcion que dice muestra unidad iria algun for o algo parecido a lo que tengo en mi programa,
tambein en donde pones incremento contador es un comentario que pones al entrar al if o en realidad tengo que poner un contador y beuno lo del if me supongo que cuando tomo y llamo la funcion muestra unidad activo el catodo correspondiente a ese display y lo mismo hago con e muestra decena
mm mi pregunta es al hacer eso no se me apagaria el otro display ya que despues entro al if y demoro mas de lo previsto (1 seg) gracias por la colaboracion