proteus não funfa nem com reza ... alguém poderia testar ai pra mim , ou
tentar “enxergar” oquê poderia estar errado ?
ps , nas propriedades do display , marque "edit all properties as text" e colocar : {NOINVERT=1,2,3,4} , pois o programa foi feito para acionar transistores que acionam cada display .

Aqui vai o codigo em CCs , lembrando que aqui na bancada está funcionando , o problema eh com o proteus , e eu já testei com duas versões dele e dá na mesma ..
#include <16F819.h>
#device adc=10
#fuses HS,NOWDT,PUT,NOBROWNOUT,NOLVP,NOMCLR
#use delay(clock=20000000)
#include <d:\Projetos_CCS\devices\regs_16.h>
#byte adcon1 = 0x9f
#byte adcon0 = 0x1f
#use fast_io(a)
#use fast_io(b)
unsigned int16 valor , valor1;
unsigned int unidade=0,dezena=0,centena=0,milhar=0;
unsigned int const num [10] = {0b00111111, // número 0
0b00000110, // número 1
0b01011011, // número 2
0b01001111, // número 3
0b01100110, // número 4
0b01101101, // número 5
0b01111101, // número 6
0b00000111, // número 7
0b01111111, // número 8
0b01101111}; // número 9
void escreve_display (void)
{
portb= num [unidade];
porta =2;
delay_ms(4);
portb= num[dezena];
porta=4;
delay_ms(4);
portb= num[centena];
porta=8;
delay_ms(4);
portb= num[milhar];
porta=16;
delay_ms(4);
}
void separa_digitos (void)
{
unidade=valor1%10;
dezena=(valor1%100)/10;
centena=(valor1%1000)/100;
milhar = valor1/1000;}
void main (void)
{
trisa=1;
trisb=0;
portb=0;
setup_adc_ports( RA0_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
set_adc_channel(0);
delay_ms(100);
while (true)
{
valor=read_adc();
valor1=valor/5;
valor1=valor1*5;
separa_digitos();
escreve_display();
}
}
Abs
Geraldo