sexta-feira, 23 de abril de 2021

Codificadores e decodificadores (com desenvolvimento de um codificador decimal/BCD)

Olá a todos! Espero que estejam todos bem.

No post de hoje veremos um assunto muito interessante: codificadores e decodificadores.

Os codificadores e os decodificadores são circuitos eletrônicos que possuem funções muito parecidas. Na realidade, a diferença entre os dois é praticamente nula e se encontra principalmente na perspectiva. Este conceito pode parecer bastante confuso no início, porém irá fazer mais sentido no decorrer neste post. Um codificador é um circuito responsável por transformar um código conhecido em um código desconhecido, enquanto um decodificador faz o processo contrário (transforma um código desconhecido em um código conhecido). É neste ponto que entra a parte da perspectiva. Vamos imaginar um circuito que transforma números decimais em números binários. Do ponto de vista humano, se trata de um circuito codificador, pois faz a conversão de números decimais (muito utilizado e conhecido pelos seres humanos) em números binários (muito conhecido e utilizado por computadores). Porém, do ponto de vista do computador, se trata de um circuito decodificador, pois transforma os decimais (desconhecidos para os computadores) em binário. Neste exemplo, parece ser bem claro que o circuito se trata de um codificador, pois conhecemos muito bem os números decimais e não temos tanta proximidade com códigos binários, porém, ao trabalhar com códigos que não costumam ser muito utilizados por humanos, esta confusão fica ainda mais clara. Por este motivo, costumamos considerar os codificadores como sendo os componentes que tem mais entradas, enquanto o decodificador é o componente com mais saídas.

Anteriormente já foi mencionado o exemplo de conversores responsáveis por fazer a conversão de números decimais em binários. Anteriormente neste mesmo blog, tivemos a oportunidade de aprender a fazer este tipo de conversão manualmente. Também vimos, a alguns posts atrás, como desenvolver circuitos eletrônicos. Juntando estes conhecimentos, se torna possível desenvolver um circuito responsável por fazer este processo de conversão automaticamente. Neste post em específico, será criado um circuito responsável por transformar números decimais em binários de 4 bits, podendo converter números de 0 até 9. Este código é chamado de BCD e já foi apresentado em posts anteriores deste blog.

O primeiro passo é desenvolver nossa tabela verdade. Ela ficará assim:

EB1B2B3B4
00000
10 001
20010
30011
40100
50101
60110
70111
81000
91001

Podemos perceber que temos apenas uma entrada e várias saídas. Pode parecer complicado no início, mas na realidade, isso irá facilitar nosso trabalho. Podemos perceber, por exemplo, que a entrada “0” não aciona nenhuma saída. Sendo assim, não precisaremos ligá-la em nada. Também é possível notar que a saída “B4” é acionada apenas pelas entradas 1, 3, 5, 7 e 9. Sendo assim, podemos usar uma porta OR conectada a essas entradas e com a saída conectada em B4, pois qualquer uma dessas entradas deve acionar a saída B4.



 A saída B3 deve ser acionada quando as entradas 2, 3, 6 e 7 receberem sinais, então podemos ligar estas saídas a algumas portas OU também.



 Repetiremos este processo para todas as entradas. Ao final do processo, este é o circuito encontrado:

 


É possível perceber que a entrada “0” não está conectada a nada. Neste exemplo, foram usadas portas OU de duas e três entradas, para que seja possível perceber como várias portas lógicas podem ser usadas em conjunto, apresentando a mesma função que uma porta com mais entradas. Podemos perceber que este circuito é capaz de executar sua função corretamente:


 














Como podemos ver, com todos os conhecimentos que acumulamos até agora, já é possível criarmos coisas bastante interessantes. Com este código BCD da saída, podemos utilizar, por exemplo, outro codificador para mostrar o número decimal selecionado em um display de 7 segmentos, ou então utilizar um somador para somar vários valores decimais que seriam transformados em binário utilizando um circuito parecido com este.

Como sempre, espero que este post tenha sido interessante. Até a próxima! :)

Nenhum comentário:

Postar um comentário

Projeto utilizando lógica sequencial e combinacional: Garra automática

Olá a todos! A postagem de hoje aqui no blog será um pouco diferenciada. Hoje iremos utilizar todos os nossos aprendizados para desenvolver ...