Ir ao conteúdo
  • Cadastre-se

Como é feito a multiplexação de display 7 seg. em c


Posts recomendados

Bom dia galera, sou iniciante em eletrônica e não tenho menor ideia de como é feito a multiplexação de display 7seg. em "C" já faço algumas coisas em "C" consigo um contador de 0-a-9 com um só display mas quando passa a ser dois ou mais não funciona, se alguém puder me dar um passo-a-passo desde já agradeço. 

Link para o comentário
Compartilhar em outros sites

Use uma porta para enviar o valor do que você quer visualizar em cada display 7 seg.

Use tantos pinos de saída quantos forem os displays de 7 seg.

Suponha que hajam 4 displays. Então use 4 pinos para acessar. Chame-os de D0, D1, D2 e D3.

Para mostrar os displays faça:

1 - Envie o código 7seg do display D0

2 - Acione o display D0. Costuma-se usar um transistor para não carregar muito os pinos D0 a D3.

3 - Mantenha acionado o display D0 por um tempo T0. Depois desligue D0.

4 - Repita os itens 1, 2 e 3 para D1.

5 - Repita os itens 1, 2 e 3 para D2.

6 - Repita os itens 1, 2 e 3 para D3.

7 - Repita os itens de 1 a 6 e mantenha-os em loop contínuo.

Observe que APENAS UM dos displays é acionado por vez. APENAS um dos pinos Ds é mantido em '1' lógico. enquanto os outros se mantém desligados. ISSO é um exemplo de multiplexação no tempo.

Agora vamos determinar T0.

Se o número de displays for N, então:

T0 = 30ms / N.

 

Como você está mostrando cada display por 1 / N do tempo total, deverá aumentar a corrente em cada led do display em, preferivelmente, N vezes o normal. Mas atente para os limites de corrente, determinados pelo transistor e pelos leds.

MOR_AL

Link para o comentário
Compartilhar em outros sites

@elizeu.tce ,

 

voce está postando numa área só para Assembly.... mas já que começou aqui, seguirei aqui também. Mas seria interessante você continuar em outro tópico, fora daqui, digo, na área Geral de Microcontroladores.

 

 

Para entender o processo, dê uma olhada aqui, eu explico a teoria :

 

Os programas apresentados são em Basic, e você pode passar facilmente para o C.

 

Paulo

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

O que o moris disse foi meu 1º projeto funcional em assembly(!!!) com um 8049(!!). Perdi o fonte.. snif.

 

Bom, perceba como o verbo é conjugado nos itens de 1 a 7. Ou seja VOCÊ tem que fazer passo a passo e foi exatamente o que fiz naquela era. Isso incorria num problema: se eu fizesse algo (uma conta, uma leitura ad) entre um evento e outro, vai perder tempo e o display poderia ficar 1/2 doido. Retornando à atualidade...

 

Use uma interrupção de um timer. Algo como 50Hz por display. você vai perceber que 'bastam' os itens 1 e 2 que o moris propôs. O resto é 1/2 automático. O legal é que você vai poder fazer o que quiser dentro do main() pois os displays vão ser atualizados automaticamente. Algo como um coprocessador ou melhor... um mc multitarefas

Mó moleza. A qualquer momento (se você for 1 bom menino) publico parte de algum fonte meu.

 

Ah claro! isto é muito importante! Faça o que o moris sugeriu pra você entender o conceito da coisa em sw. Só depois disso vamos partir pro hw ok? Desculpem por 'atropelar'!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...