

O maior inimigo do conhecimento não é a ignorância, mas sim a ilusão de que conhecemos. (Stephen Hawking)

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!


