se teu chip tiver 2 ports sobrando e se uma interrupção duns 400Hz num incomodar o sistema, creio ser + mió de bão. Voce pode até mesmo usar o sinal de dígito pra ler um teclado de 8 teclas. Mas vejamos...
dei uma leitura superficial no ds. gostei do xip. dá um pra mim? pelo que entendi voce tem apenas que montar a palavra com endereço/dado para o bixo. desconsideremos os modos decode, intensity, scan limit, shutdown, display test.
p.ex.
- Código: Selecionar todos
#define cs RB0
#define clk RB1
#define din RB3
void desloca8(unsigned char dado)
for (i=0;i<8;i++)
{
if (dado&0b10000000) din=1;else din=0;
clk=1;asm("nop");clk=0;
dado<<=1;
}
void putdig(unsigned char dado, unsigned char end)
{
unsigned char i;
cs=clk=0;
desloca8(end);
desloca8(dado);
cs=1;asm("nop");cs=0;
}
escrevendo H no 4º dígito
- Código: Selecionar todos
putdig(0b0110111,3);
para deslocar
- Código: Selecionar todos
for (i=0;i<8;i++)
{
putdig(0b0110111,i);
delay(xx);//sou contra delay mas...
}
obviamente deverá fazer uma tabela com o padrão de dígito desejado
Se este chip tiver no proteus, de repente faço uma simulação... ou não... (cara, to tendo um dejavu). Mas antes é bom saber se compensa investir em voce. mostre o que já fez.
Claro, são concepções pscóticas/délicas teóricas do sistema. Exatamente como está, não espero que não lhe seja totalmente inútil e que não funcione ... ou ao contrário.
sucessos