un codigo sencillo para esto pero en lenguaje c (no creo q sea dificil traducirlo a basic)
antes deberas definir un vector llamado segs[] donde pongas la codificacion para cada numero de los displays de 7 segmentos donde seg[1] haga q en el display se vea el 1 etc
se pueden usar el puerto c como salida a los puertos y el puerto d como habilitacion de anodos y los primeros bits del puerto b como entradas pa tus dos botones
asumo que sabes como se inicializan los puertos y las variables asi q omito esa parte (y ademas no me acuerdo)
Código:
cont=0; //valor de 0 a 9999, variable int
start=0;
reset=0;
status=0;
num=0;
uni=0;
dec=0;
cen=0;
mil=0;
while(1)
{
//se extrae digito por digitoel contador
mil=cont/1000;
cen=(cont/100)%10;
dec=(cont/10)%10;
uni=cont%10
// va a empezar mostrando el cero e ira aumentando de acuerdo a las cvariables
PORTD=1; //se habilita el primerdisplay
PORTC=segs[uni];//se saca por el display la unidad
PORTD=2; //se habilita el segundodisplay
PORTC=segs[dec];//se saca por el display la decena
PORTD=4; //supongo ya se entiende....
PORTC=segs[cen];
PORTD=8;
PORTC=segs[mil];
//
if (status==1)
{
cont++;
if (cont>9999)
{cont=9999;}
}
start=PORTB&0x01;
reset=PORTB&0x02;
if(start==0x01)
{
status=1;
}
if(reset==0x02)
{
status =0;
cont=0;
}
}