Display decimal para circuito digital aritmético

Eletrônica Circuitos digitais 17 de Novembro de 2019 às 00:03

Introdução

Nos artigos anteriores foram explicados como os computares realizavam as operações aritméticas de adição e subtração em sua Unidade Aritmética. Além da teoria envolvida, foram elaborados circuitos lógicos reais utilizando o protoboard e circuitos integrados, com o intuito de aumentar a experiencia do aprendizado em eletrônica digital.

Neste artigo será explanado alguns conceitos básicos para implementar um display decimal no circuito de Full Adder/Subtractor da imagem abaixo, como o código BCD, display de 7 segmentos, decodificadores e o BCD Adder para correções nas amostragens.

Full Adder/Subtractor no protoboard realizando a operação de subtração 15 - 9 = 6.

Código BCD

Como podemos observar na imagem acima, o resultado desta operação é apresentada de forma binária utilizando LEDs. Como já vimos nos antigos anteriores, qualquer números decimal pode ser convertido para a base binária, sendo grupos de 0's ou 1's chamado de codificação binária pura.

Os sistemas digitais como computadores e calculadoras, utilizam o sistema binário para realizar seus processos internos, conhecido como linguagem de máquina, mas o mundo externo é decimal por essência. Esse tipo de conversão é realizada frequentemente em interfaces amigáveis, onde os seres humanos interagem com o sistema utilizando displays e teclados. Porém as conversões binário/decimal ou vise-versa são trabalhosas e complexas para números relativamente grandes, diante disso é interessante a metodologia focada em hardware de codificação dos números decimais com elementos binários, chamada de decimal codificado em binário ou BCD (Binary-Coded-Decimal), sendo uma mistura com o mundo das máquinas e dos humanos.

Um digito decimal pode assumir até o valor 9, ou seja, para representar a codificação BCD máxima são necessários 4 bits (nibble) codificando cada digito, na imagem abaixo representada em tabela, podemos visualizar estas conversões entre bases numéricas e a codificação BCD. Lembrando que o código BCD não é um sistema de numeração, e sim uma codificação entre binário e decimal.

Representações dos números decimais para binário, octal, hexadecimal e BCD.

Display de 7 segmentos

O display de 7 segmentos é largamente utilizado em equipamentos eletrônicos, é uma das formas de representar o resultado em decimal para o usuário. O display possui 7 LEDs com o catodo ou anodo interligados, e um LED para o ponto na parte inferior, que são encapsulados em um único componente. Os segmentos são representados por letras do alfabeto, como mostra a imagem abaixo. Realizando as combinações corretas dos segmentos, podemos representar números decimais de 0 ao 9.

Display de 7 segmentos catodo e anodo comum.

Quando um display de 7 segmentos é catodo comum, os LEDs são ligados em modo current source, ou GND. Os displays anodo comum são ligados em modo current sink ou VCC, que no nosso caso estamos trabalhando com +5V. Lembrando que devemos utilizar resistores limitadores de corrente adequados para cada segmento.

Um teste interessante que podemos realizar inicialmente com este display, é ligar segmento por segmento para formar os números válidos. Na montagem abaixo foi utilizado um display catodo comum e 8 resistores de 220 Ohms para formar o número decimal 5 e um ponto.

Display de 7 segmentos com ligação direta formando o número 5.

Decodificador BCD para 7 segmentos

Entendendo o funcionamento do código BCD e do display de 7 segmentos podemos utilizar eles em conjunto para nossos projetos. Para isso devemos decodificar BCD para 7 segmentos utilizando um circuito integrado dedicado a esta função, o CD4511 para displays catodo comum, ou 7447 para displays anodo comum.

Analisando o datasheet do CD4511, as entradas de controle !LT e !BL são ligadas ao 5V, e !LE ao GND. As entradas BCD de D0 ao D3 são conectadas em um circuito que envie um código BCD. As saídas de "a" até "g" são ligadas nos respectivos pinos do display com um resistor. Com estas ligações realizadas podemos escrever números no display utilizando o código BCD, como por exemplo, nas entradas setamos o código 0101 e o número decimal 5 irá aparecer no display.

Pinagem do CD4511.

BCD Adder

Como já sabemos, a montagem do Full Adder/Subtractor realizada no artigo passado só exibe o resultado das operações em binário, mas agora podemos desenvolver um circuito utilizando o código BCD e o display de 7 segmentos decodificado para demonstrar estes resultados em decimal.

O circuito de BCD Adder é capaz realizar as operações de adição de números codificados em BCD. A lógica deste circuito é simples e podemos explicar em alguns passos. Realize a adição binária comum dos códigos BCD utilizando um Full Adder de 4 bits para cada posição de digito decimal. Se o resultado da adição for maior que 9, é gerado um dos seis códigos inválidos do BCD, para contornar este problema é necessário implementar uma correção somando o valor 6 (0110) ao resultado como demonstra a imagem A abaixo, em nível de hardware aplica-se um circuito combinacional com portas lógicas OR e AND e um Full Adder de 4 bits com o padrão 0110 nas entradas B como demonstra a imagem B abaixo.

Para este circuito se integrar totalmente ao nosso projeto, devemos efetuar uma correção extra que seja capaz de ignorar o bit de carry da subtração. Invertendo o estado de CIN do primeiro Full Adder e comparando com o estado de COUT já é o suficiente. A nível de montagem, podemos utilizar um transistor de junção bipolar como inversor para economizar espaço.

Podemos inicializar a montagem seguindo a lista de materiais abaixo, como também o diagrama esquemático do projeto. Lembrando que vamos utilizar o Full Adder/Subtractor do artigo passado.

  • Full Adder/Subtractor de 4 bits
  • 1 Protoboard
  • 1 CI 7408 (4 portas AND de 2 entradas)
  • 1 CI 7432 (4 portas OR de 2 entradas)
  • 1 CI CD4008 ou 74283 (Full Adder 4 bits)
  • 2 CIs CD4511 (Decodificador e Driver BCD para 7 Seg)
  • 2 Displays de 7 segmentos catodo comum
  • 14 resistores de 220 Ohms
  • 1 Resistor de 1K
  • 1 Resistor de 10K
  • 1 Transistor BC547 NPN
  • 5 Capacitores poliéster/cerâmico de 100nF
  • Fios
  • 1 Fonte de alimentação 5V ou módulo de fonte para protoboard - Faça a sua agora!
Esquema do BCD Adder com correção para Full Adder/Subtractor.

Com a montagem pronta podemos realizar os mesmos cálculos de adição e subtração, mas agora com uma interface mais amigável utilizando um conjunto de displays decimais capazes de mostrarem resultados de até 19.

Referências

  1. MALVINO, A. P; BROWN, J. A; Digital computer electronics. 3 ed. McGraw-Hill, 1999.
  2. TOCCI, R, J; WIDMER, N. S; MOSS, G. L; Sistemas digitais: princípios e aplicações. 10 ed. Pearson Prentice Hall, 2008.