Visores de sete segmentos são unidades de exibição importantes em Eletrônica e amplamente usados para exibir números de 0 a 9. Ele também pode exibir alguns caracteres do alfabeto, como A, B, C, H, F, E etc. Neste tutorial, vamos aprender como fazer a interface de um display de 7 segmentos com o microcontrolador 8051. Estamos usando o microcontrolador AT89S52 da série 8051.
Antes de fazer a interface, devemos aprender sobre a exibição de 7 segmentos. É a unidade mais simples de exibir números e caracteres. Ele consiste apenas 8 LEDs, cada LED utilizado para iluminar um segmento de unidade e o 8 th diodo emissor de luz utilizada para iluminar DOT em 7 de exibição segmento. Podemos nos referir a cada segmento como uma LINHA, pois podemos ver que existem 7 linhas na unidade, que são usadas para exibir um número / caractere. Podemos referir cada linha / segmento "a, b, c, d, e, f, g" e para o caractere de ponto usaremos "h". Existem 10 pinos, nos quais 8 pinos são usados para se referir a a, b, c, d, e, f, geh / dp, os dois pinos do meio são ânodo / cátodo comum de todos os LEDs. Esses ânodo / cátodo comuns estão em curto interno, portanto, precisamos conectar apenas um pino COM.
Existem dois tipos de visores de 7 segmentos: ânodo comum e cátodo comum:
Ânodo comum: Neste todos os terminais negativos (cátodo) de todos os 8 LEDs são conectados entre si (ver diagrama abaixo), denominado como COM. E todos os terminais positivos são deixados sozinhos.
Cátodo Comum: Neste todos os terminais positivos (Anodos) de todos os 8 LEDs são conectados juntos, denominados como COM. E todas as térmicas negativas são deixadas sozinhas.
Diagrama de circuito e expansão de trabalho
Aqui, estamos usando o tipo de ânodo comum de 7 segmentos porque precisamos conectar os LEDs ao contrário. Como sabemos que o microcontrolador não fornece energia suficiente para acender o LED, precisamos conectar o cátodo do LED ao pino do microcontrolador e o ânodo do LED à fonte de alimentação. Você pode entender esse conceito de lógica negativa neste artigo “Interface de LED com microcontrolador 8051”. Você também deve ler este artigo para entender a conexão básica de microcontroladores como o cristal e os circuitos de reset.
Conforme mostrado acima, o diagrama de circuito para interface do display de 7 segmentos com o microcontrolador 8051, conectamos a, b, c, d, e, f, g, h aos pinos 2.0 a 2.7 significa que estamos conectando 7 segmentos à porta 2 do microcontrolador. Agora, suponha que queremos exibir 0, então precisamos acender todos os LEDs, exceto o LED que pertence à linha "g" (consulte o diagrama acima), então os pinos 2.0 a 2.6 devem estar em 0 (deve ser 0 para LIGAR o LED como por lógica negativa) e os pinos 2.7 e 2.8 devem estar em 1 (deve ser 1 para DESLIGAR o LED de acordo com a lógica negativa). Assim, os LEDs conectados aos pinos 2.0 a 2.6 (a, b, c, d, e, f) estarão LIGADOS e os LEDs conectados a 2.7 e 2.8 (ge h) estarão DESLIGADOS, o que criará um "0" em 7 segmento. Portanto, precisamos do padrão de bits 11000000 (o pino 8 é o bit mais alto, começando de P2.7 a P2.0), e o código HEX para o binário 11000000 é “C0”. Da mesma forma, podemos calcular para todos os dígitos. Aqui, devemos observar que estamos mantendo "ponto / h" sempre DESLIGADO,então precisamos dar LÓGICA “1” a ele todas as vezes. Uma tabela é fornecida abaixo para todos os números ao usar o segmento 7 do ânodo comum.
Dígito para exibir |
hgfedcba |
Código hexadecimal |
0 |
11000000 |
C0 |
1 |
11111001 |
F9 |
2 |
10100100 |
A4 |
3 |
10110000 |
B0 |
4 |
10011001 |
99 |
5 |
10010010 |
92 |
6 |
10000010 |
82 |
7 |
11111000 |
F8 |
8 |
10000000 |
80 |
9 |
10010000 |
90 |
Explicação do código
Criamos a função ms_delay para fornecer o atraso em milissegundos, esse atraso geralmente é fornecido em qualquer programa de microcontrolador para que o microcontrolador possa completar sua operação interna.
Em seguida, criamos uma matriz de códigos hexadecimais de 0 a 9 (consulte a tabela acima) e, finalmente, enviamos os códigos hexadecimais para a porta 2, que está conectada ao segmento de ânodo 7 comum. Portanto, desta forma, os números são mostrados no display de 7 segmentos.
Agora temos apenas 4 portas no microcontrolador e se quisermos mostrar os dados em mais de quatro 7 segmentos ?? Para resolver este problema, a técnica de multiplexação entra em cena. Precisamos multiplexar várias unidades de 7 segmentos. Leia também a interface do display de 7 segmentos com o microcontrolador AVR.