Displays de 7 segmentos

Olá a todos,
estou fazendo um circuitinho com PIC onde tenho dois displays de 7 segmentos ligados no portB de um 16F628A através de dois 4511 para decodificar o bcd para os displays.Eu estou fazendo contagem de eventos externos através da interrupção externa do PIC, e pretendo mostrar essa contagem nos displays com atualização de 1 segundo. Até ai belezaa!!!
O problema é o seguinte:
O portB do PIC é de 8bits certo !?!?...então se eu ligar dois displays eu fico com 4 bits para cada um.Com 4bits eu consigo ir até 16, mas o display só vai até 9.
A minha dificuldade está sendo pegar a variável da contagem e mostra-la nos displays.
EX:
main()
{
int contagem;
contagem = 0;
while(true)
{
contagem ++;
delay_ms(200);
if(contagem == 25)
{
output_b(contagem); //os displays estão ligados aqui
contagem = 0;
}
}
}
Na hora que este valor é mostrado nos displays ele fica totalmente errado...
ah...O compilador é o CCS.
Alguem poderia me ajudar !?!?
Muito obrigado,
Denis.
estou fazendo um circuitinho com PIC onde tenho dois displays de 7 segmentos ligados no portB de um 16F628A através de dois 4511 para decodificar o bcd para os displays.Eu estou fazendo contagem de eventos externos através da interrupção externa do PIC, e pretendo mostrar essa contagem nos displays com atualização de 1 segundo. Até ai belezaa!!!
O problema é o seguinte:
O portB do PIC é de 8bits certo !?!?...então se eu ligar dois displays eu fico com 4 bits para cada um.Com 4bits eu consigo ir até 16, mas o display só vai até 9.
A minha dificuldade está sendo pegar a variável da contagem e mostra-la nos displays.
EX:
main()
{
int contagem;
contagem = 0;
while(true)
{
contagem ++;
delay_ms(200);
if(contagem == 25)
{
output_b(contagem); //os displays estão ligados aqui
contagem = 0;
}
}
}
Na hora que este valor é mostrado nos displays ele fica totalmente errado...
ah...O compilador é o CCS.
Alguem poderia me ajudar !?!?
Muito obrigado,
Denis.