top of page

DISPLAY DE 7 SEGMENTOS

Introdução.


Os displays frequentemente estão presentes. A era digital se enquadra muito bem nesses pequenos componentes que nada mais são que 7 segmentos de LEDs responsáveis por mostrar números de 0 a 9 e até mostrar algumas letras. Enfim, vamos aprender como fazer ligações e programar para que não precisemos utilizar nenhum decodificador para o funcionamento deste display.

 

Bits e números binários
 

Para compreender essa aula devemos entender um pouco sobre números digitais e bits. Os bits são números que são compreendidos por um microcontrolador ou um computador para execução de uma ação. Os números 0 e 1 são bits reconhecíveis por um sistema digital. Nestes sistemas, o número 0 é geralmente utilizado para ser compreendido como desligado, nível baixo, coisas semelhantes, enquanto o número 1 é geralmente utilizado para ser compreendido como ligado, nível alto, enfim. Os números digitais são formados por bits e podem ter tamanhos diferentes. Os mais comuns são os números de 8,16 e 32 bits e para compreendê-los é usado o sistema binário.
 

Para entender melhor você pode estar estudando assuntos a respeito que são facilmente encontrados na internet.
 

Conhecendo o display de 7 segmentos.
 

Enfim pessoal, deixa de conversa e vamos conhecer o display de 7 segmentos.
No mercado existem dois tipos de display, os de catodo comum e os de anodo comum. A diferença é onde ligamos os pinos 3 e 8 do display. Para o primeiro tipo os pinos 3 e 8 são ligados ao Ground e os demais pinos devem ser alimentados com um resistor para limitar a corrente nos LEDs. O segundo tipo tem os pinos 3 e 8 ligados ao VCC por meio de resistores e os outros são ligados livremente sem a necessidade de novas resistências.

 

Cada segmento do display é ligado enviando um sinal de nível alto para o pino correspondente. Vejamos a pinagem do display de 7 segmentos catodo comum:

























































Não se confunda, o display anodo comum é a mesma coisa, a diferença está na ligação dos pinos 3 e 8. A contagem dos pinos começa do pino “e” e se percorre até o “g” sendo este o pino de número 10. Assim temos que:



1 – e       3 – CATODO OU ANODO     5 – PONTO        7 – a                                      9 – f
2 – d       4 - c                                      6 – b                  8 – CATODO OU ANODO     10 – g


Dessa forma fica fácil saber como mostrar o número 0, por exemplo. Para isso devemos mandar um sinal de nível alto nos segmentos “a” “b” “c” “d” “e” e “f”. Para mostrar o número 1 é só mandar um sinal de nível alto nos segmentos “b” e “c”. Simples assim!


Compreendendo as coisas com o PIC.


Em um microcontrolador podemos utilizar um conjunto de portas que serão responsáveis pelo funcionamento do display. Nosso microcontrolador vai ser o PIC 16F628A e vamos usar o conjunto de portas B.

 

Algumas coisas são importantes para sabermos como deixar o nosso display funcionando. Primeiramente é conhecer o comando mais viável  para ligarmos o nosso display.
 

Podemos usar o comando Output_high(PIN_   ), no entanto se torna inviável pois nosso código ficaria imenso e tomaria muito espaço da nossa memória ROM.
 

Temos um comando chamado Output_b(   ), onde enviamos algum valor para as portas do conjunto B que é o nosso caso. Dentro desses parênteses nós enviamos bits (0 ou 1) se temos somente um bit, o microcontrolador entende que esse bit será enviado ao pino B0 do PIC. Se temos dois bits, o primeiro será para o pino B0 e o segundo bit para o pino B1 e assim sucessivamente. O que nós podemos fazer é enviar um conjunto de bits que sejam responsáveis por acenderem os segmentos do nosso display. Podemos fazer o seguinte conjunto:
 

SEGMENTOS:  A  B  C  D  E  F  G

NUMERO 0:      1  1   1  1   1  1   0  //Acendemos todos com exceção do G
NUMERO 1:      0  1   1  0   0   0  0  //Acendemos os segmentos B e C

 

Diante desse conjunto de bits podemos fazer o seguinte:
 

Output_b(0b1111110); //Mostramos o número 0 no display. O “0b” é
                                 //sempre necessário para informar um número
                                 //binário ao PIC.

 

Enviando esse conjunto de bits nós informamos que os pinos B0 a B5 receberão nível alto e só o pino B6 receberá nível baixo. Essa é a forma mais viável de programar um PIC para trabalhar com displays de 7 segmentos.
 

Bom, mas claro que existe uma ligação correta para essa programação. Quando fazemos esses esquemas nós admitimos que o pino B0 estará ligado ao segmento A, o pino B1 estará ligado ao segmento B e assim por diante.
 

Interface e programação do PIC.
 

Veja a ligação a ser feita entre o PIC e o display:



































Perceba que nesse exemplo utilizamos um display anodo comum para darmos uma economizada em resistores e organizar melhor nossas ligações.

Vamos a nossa programação?


Depois de feita todas as nossas configurações, nossa programação que fica assim:


void main()
{


   //Declaração de vetores e variáveis.
   int tabela [] = { 0b1111110, //0
                         0b0110000, //1
                         0b1101101, //2
                         0b1111001, //3
                         0b0110011, //4
                         0b1011011, //5
                         0b1011111, //6
                         0b1110000, //7
                         0b1111111, //8
                         0b1110011  //9
                       };
    Int i = 0;



    //Aqui fica as configurações gerais do PIC.


    //Programa principal:

 
    While(TRUE)
    {
       Output_b(tabela[i]);
       Delay_ms(400);
       i++;
       if(i==10)
             i=0;
    }
}

 

Agora você pode compilar e carregar esse código em seu PIC e vê-lo funcionando perfeitamente como havíamos planejado. Bons estudos!

































































bottom of page