falla con display 7 segmentos 2 digitos

buenas, estuve haciendo este código en pic c compiler y al parecer no funciona bien en mi simulación, puesto que el anterior pic que use fue un 16f877a este si me funcionaba bien, ahora estoy usando un 16f684. Aqui les dejo mi codigo para que me indiquen en que estoy fallando.

Utilizo un pulsador para incrementar la cuenta y poder visualizar el funcionamiento del display.

#include<16f684.h>
#use delay(clock=4M)
#fuses XT,nowdt


int tabBCD[10]={0b0000,0b0001,0b0010,0b0011,0b0100,0b0101,0b0110,0b0111,0b1000,0b1001};
int16 centenas=0,decenas=0,unidades=0,valor=0,dato=0;
int enc=0;

void descomp_entero(int16 valor)
{

decenas = (int16) valor / 10; // 2do Dígito o Decenas
valor -= decenas * 10; // y también se lo resto
unidades = (int16) valor; // y por último solo me quedan las unidades
}
void visualizar(void)
{

output_c(tabBCD[unidades]);
output_bit(pin_A1,1);
output_bit(pin_A2,0);
delay_ms(5);

output_c(tabBCD[decenas]);
output_bit(pin_A2,1);
output_bit(pin_A1,0);
delay_ms(5);
}
void main(){

dato=10;
descomp_entero(dato);
visualizar();

while(true){

visualizar();
descomp_entero(dato);

if(input(pin_C4)==1 && enc==0){
dato++;
enc=1;
}
if(input(pin_C4)==0 && enc==1){
enc=0;
}

}
}

este codigo aun no esta terminado pero tampoco puedo avanzar si me da este error
les dejo una imagen en el simulador de proteus.
1577389173809.png
 

D@rkbytes

Moderador
Estuve haciendo este código en pic c compiler y al parecer no funciona bien en mi simulación, puesto que el anterior pic que use fue un 16f877a este si me funcionaba bien, ahora estoy usando un 16f684
¿Qué es lo que no funciona?

Este código aún no está terminado pero tampoco puedo avanzar si me da este error.
¿Cuál error?

Será mejor que expliques el problema y que subas tu proyecto completo dentro de un archivo comprimido.
 

Arriba