Atividade de Eletronica Digita - Técnico em Eletrotécnica
1. Universidade de Brasília - Faculdade do Gama
Alexandre Henrique Pires Rocha - Matrícula: 16/0022916
Ana Paula Gomes de Matos - Matrícula: 16/0023629
Adriane Alves da Silva - Matrícula: 16/0047595
Profº Renato Vilela Lopes
Teoria de Eletrônica Digital 1 - Turma A
Projetos e Simulações
Brasília, 2017
2. 1. INTRODUÇÃO
Portas lógicas são dispositivos que operam um ou mais sinais para produzir
uma única saída, dependendo da função implementada no circuito. São utilizadas,
em geral, em circuitos eletrônicos, por causa das situações que os sinais podem
apresentar: presença (ou “1”) ou ausência (ou “0”) de sinal. O casos ‘verdade” e
“falso” são estudados pela Lógica Matemática ou Lógica Booleana e seu
comportamento é conhecido pela tabela verdade.
Já os Circuitos Lógicos Combinacionais são constituídos do conjunto de
portas lógicas que são combinadas, de tal forma a obter valores de saídas que são
diretamente ligados aos valores das entradas. Os circuitos lógicos processam
informações que podem ser especificadas por meio de um conjunto de equações
Booleanas.
Figura 1 - Diagrama genérico de um circuito combinacional. Fonte: www.cear.ufpb.br.
Além dos Circuitos Combinacionais, há também os sequenciais. A diferença é
que o primeiro não armazena informação diferentemente do segundo. O foco deste
trabalho consiste nos Circuitos Combinacionais, onde o valor da saída depende
apenas dos valores das entradas atuais, somente.
1.1. OBJETIVOS
Um dos objetivos da realização deste trabalho é a aquisição de mais
conhecimentos sobre sistemas digitais como um todo, uma vez que este é muito
importante para a formação acadêmica e consequentemente para a vida
profissional. Outro objetivo é o reconhecimento de circuitos combinacionais,
3. permitindo que o aluno esteja apto a analisar, montar a tabela-verdade e a
expressão lógica dos mesmos.
2. PROJETOS
2.1. EXERCÍCIO 1
A Figura abaixo representa o cruzamento entre a rua A e B. Deseja-se
instalar, neste cruzamento, um sistema automático para os semáforos com as
seguintes características:
1ª - Quando houver carros transitando somente na Rua B, o semáforo 2 deverá
permanecer verde para que estas viaturas possam trafegar livremente.
2ª - Quando houver carros transitando somente na Rua A, o semáforo 1 deverá
permanecer verde pelo mesmo motivo.
3ª - Quando houver carros transitando nas Ruas A e B, deveremos abrir o semáforo
para a Rua A, pois é preferencial.
Solução:
Para iniciar o raciocínio, considerarei o sinal Verde do semáforo como nível
lógico alto (1) e o sinal Vermelho como nível lógico baixo (0). A e B serão as
4. entradas para esse problema e S1, (saídas) semáforos 1 da Rua A e S2, (saídas)
semáforos 2 da Rua B.
Quando não houver carros transitando em A o sinal verde ficará aberto para a
Rua A, pois é preferencial, logo se A e B recebem ‘0’ as saídas em S1 (semáforos
da rua A) recebem sinal ‘1’. Se não houver carros em A, mas houver em B, logo B
terá os semáforos com sinal verde.
a) Tabela-verdade
Entradas Entradas
A B S1 S2
0 0 1 0
0 1 0 1
1 0 1 0
1 1 1 0
Desta tabela tiramos duas expressões lógicas (uma para cada semáforo):
Semáforo 1 -> 1 = + +
1 = ( + ) +
1 = +
Semáforo 2 -> 2 =
b) Código VHDL
------------------------------------------------------------------------------------------------
-- Exercício 1 de TED - Exercício do Semáforo
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity TED_Exercicio_1 is
port ( A: in STD_LOGIC;
B: in STD_LOGIC;
S1: out STD_LOGIC; -- Semáforo da Rua A
S2: out STD_LOGIC); -- Semáforo da Rua B
end TED_Exercicio_1;
architecture Behave of TED_Exercicio_1 is
begin
5. S1 <= (not B) or (A and B); -- Expressão lógica que determina o funcionamento de S1.
S2 <= (not A) and B; -- Expressão lógica que determina o funcionamento de S2.
end Behave;
------------------------------------------------------------------------------------------------
c) Forma de Onda
d) Diagrama Esquemático
O diagrama esquemático foi gerado no software VIVADO e é uma versão que
pode se chamar de compacta uma vez que o software, em função do código,
arranjou as entradas de forma que o mesmo circuito gerasse as saídas S1 e S2.
e) Simulação 1 (com o diagrama esquemático)
A = 0; B = 0; S1 = 1; S2 = 0;
f) Simulação 2 (com o diagrama esquemático)
6. A = 0; B = 1; S1 = 0; S2 = 1;
2.2. EXERCÍCIO 2
Deseja-se utilizar um amplificador para ligar
três aparelhos: um toca-fitas, um toca-discos e
um rádio FM. Deve-se elaborar um circuito
lógico que permita ligar os aparelhos,
obedecendo às seguintes prioridades:
1ª Prioridade: toca-discos (Será a entrada A);
2ª Prioridade: toca-fitas (Será a entrada B);
3ª Prioridade: rádio FM (Será a entrada C);
Isso significa que quando não ligarmos nem o toca-discos nem o tocafitas, o rádio,
se ligado, será conectado à entrada do amplificador. Se ligarmos o toca-fitas,
automaticamente o circuito conectá-lo-á à entrada do amplificador, pois possui
prioridade sobre o rádio. O mesmo acontece com o toca-discos que tem prioridade
1. Projete este circuito.
a) Tabela-verdade
O nível lógico alto foi tomado como momento em que o usuário ligue o equipamento
(seja o toca-fitas, o toca-discos ou rádio FM).
Entradas Saídas
A B C Sa Sb Sc
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 0
0 1 1 0 1 0
1 0 0 1 0 0
7. 1 0 1 1 0 0
1 1 0 1 0 0
1 1 1 1 0 0
Desta tabela-verdade podemos extrair as seguintes expressões lógicas para ligar o:
Toca-discos -> = + + +
= ( + ) + ( + )
= +
= ( + )
=
É claramente possível perceber que a saída Sa só depende de A, isso porque o
amplificador sempre dá prioridade ao toca-discos em detrimento dos outros
equipamentos, ou seja, basta ligar a entrada do toca-discos à saída para amplificá-
lo.
Toca-fitas -> = +
= ( + )
=
Se o toca-fitas tem prioridade sobre a rádio FM (entrada C), logo a saída Sb
independe de C, por isso esta entrada não aparece na equação.
Rádio FM -> =
Como a rádio FM é a última na lista de prioridades do amplificador, a saída Sc
depende do valor de todas as outras entradas para que seu valor lógico seja 1.
b) Código VHDL
------------------------------------------------------------------------------------------------------------
-- Exercício 2 de TED - Exercício do amplificador
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity TED_Exercicio_2 is
port ( A: in STD_LOGIC;
B: in STD_LOGIC;
C: in STD_LOGIC;
Sa: out STD_LOGIC;
Sb: out STD_LOGIC;
8. Sc: out STD_LOGIC);
end TED_Exercicio_2;
architecture Behave of TED_Exercicio_2 is
begin
Sa <= A; -- Para amplificar o toca-discos
Sb <= (not A) and B; -- Para amplificar o toca-fitas
Sc <= C and (not A and (not B)); -- Para amplificar a rádio FM
end Behave;
------------------------------------------------------------------------------------------------------------
c) Forma de Onda
d) Diagrama Esquemático
e) SImulação 1
A = 0; B = 0; C = 1; Sa = 0; Sb = 0; Sc = 1;
f) Simulação 2
9. A = 0; B = 1; C = 1; Sa = 0; Sb = 1; Sc =0;
g) Simulação 3
A = 1; B =1;C =1; Sa = 1; Sb =0; Sc =0;
2.3. EXERCÍCIO 3
Projetar um circuito lógico que controla uma porta de elevador em um prédio de três
andares. O circuito deve ter 4 entradas. M é um sinal lógico que indica quando o
elevador está em movimento (M=1) ou parado (M=0). F1, F2 e F3 são os sinais
indicadores dos andares que são normalmente nível baixo, passando para nível alto
apenas quando o elevador estiver posicionado em um determinado andar. Por
exemplo, quando o elevador estiver no segundo andar, F2=1 e F1=F3=0. A saída do
circuito é o sinal ABRIR que normalmente é nível baixo e vai para nível alto quando
a porta do elevador tiver que ser aberta. Desconsidere possíveis erros de medida
nos sensores.
a) Tabela-verdade
Entradas Saída
F1 F2 F3 M S
0 0 0 0 0
0 0 0 1 0
10. 0 0 1 0 1
0 0 1 1 0
0 1 0 0 1
0 1 0 1 0
0 1 1 0 0
0 1 1 1 0
1 0 0 0 1
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
1 1 1 1 0
Desta tabela podemos extrair a seguinte expressão lógica:
Elevador -> = 1 2 3 + 1 2 3 + 1 2 3
= ( 1 2 3 + 1 2 3 + 1 2 3)
b) Código VHDL
------------------------------------------------------------------------------------------------------------
-- Exercício 3 de TED - Exercício do Elevador
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity TED_Exercicio_3 is
port ( F1: in STD_LOGIC; -- 1 andar
F2: in STD_LOGIC; -- 2 andar
F3: in STD_LOGIC; -- 3 andar
M: in STD_LOGIC; -- Elevador parado ou em movimento
S: out STD_LOGIC);
end TED_Exercicio_3;
architecture Behave of TED_Exercicio_3 is
begin
11. S <= (not M) and ((not F1 and (not F2 and F3)) or (not F1 and (F2 and (not F3))) or
(F1 and (not F2 and (not F3))));
end Behave;
------------------------------------------------------------------------------------------------------------
c) Forma de Onda
d) Diagrama Esquemático
e) Simulação 1
F1 = 1; F2 = 0; F3 = 0; M = 0; S = 1;
f) Simulação 2
12. F1 = 0; F2 = 1; F3 = 0; M = 0; S = 1;
g) Simulação 3
F1 = 0; F2 = 0; F3 = 1; M = 1; S = 0;
2.4. EXERCÍCIO 4
Considere uma votação de 4 juízes (A, B, C e D). O juiz A tem direito a voto de
qualidade, no qual o seu voto vale o equivalente a 3 votos simples, enquanto que os
juízes restantes têm direito apenas a um voto simples cada. Neste cenário existem
três possibilidades a saber: uma decisão a favor por unanimidade, uma decisão a
favor por maioria (quando o número de votos a favor é maior do que 50%) e uma
decisão contra. Com base nesta situação projete um circuito que seja capaz de
mostrar o resultado da votação.
a) Tabela-verdade
15. A = 0; B =1; C =1; D = 1; S = 0;
f) Simulação 2
A = 1; B =0; C = 1; D =; S =1;
2.5. EXERCÍCIO 5
Projete um circuito para, em um conjunto de três chaves, detectar um número par
destas ligadas. Considere que chave fechada equivale a nível lógico baixo (“0”).
Quando detectar um número par de 0’s, o circuito terá saída 1.
a) Tabela-verdade
Entradas Saída
A B C S
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
Desta tabela é possível extrair a seguinte expressão lógica:
-> = + + +
= ( + ) + ( + )
16. b) Código VHDL
------------------------------------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity TED_Exercicio_5 is
port (A: in STD_LOGIC;
B: in STD_LOGIC;
C: in STD_LOGIC;
S: out STD_LOGIC);
end TED_Exercicio_5;
architecture Behave of TED_Exercicio_5 is
begin
S <= ( (not A) and ( (not B and C) or (not C and B) ) ) or ( A and ( (not B and
(not C) ) or (B and C) ) );
end Behave;
------------------------------------------------------------------------------------------------------------
c) Forma de Onda
18. f) Simulação 2
A = 1; B = 0; C = 1; S = 0;
2.6. EXERCÍCIO 6
Projete um circuito lógico para abastecer 3 tanques (T1, T2 e T3) de glicose em
pavimentos distintos em um indústria de balas e biscoitos, através do controle de
duas bombas, conforme esquematizado na figura abaixo. O abastecimento principal
é feito por caminhão tanque que fornece o produto diretamente ao T1 disposto no
piso térreo localizado à entrada da empresa. a) Desenvolva o projeto supondo que o
nível máximo de T1 seja
controlado pelo caminhão,
coloque os sensores de
controle nas caixas,
convencione as variáveis e
desenhe o circuito final. b)
Análise e faça a interpretação
prática das expressões
obtidas;
19. a) Tabela-verdade
Entradas Sáidas
T2 T3 B1 B2
0 0 1 1
0 1 1 0
1 0 0 1
1 1 0 0
Para essa questão tomei os sensores presentes nos tanques que detectam o
nível máximo como T2 no tanque 2 e T3 no tanque 3. As saídas que indicam se as
bombas vão continuar enchendo ou não os tanques levam os nomes dos mesmos,
B1 e B2. O nível máximo detectado pelos sensores é ‘1’ e se não o atingiu, o sensor
envia ‘0’ como entrada. As bombas permanecem funcionando se recebem os valores
de entrada ‘0’ o que significa que os tanques estão vazios e a saída portanto é ‘1’
que indica que a bomba mantém o funcionamento, porém se os valores de entrada
enviados pelos sensores é igual a ‘1’, significa que os tanques estão na capacidade
máxima e portanto as bombas devem parar de funcionar, logo a saída será ‘0’.
Desta tabela extraímos a seguinte expressão lógica:
1 = 2 3 + 2 3 e 2 = 2 3 + 2 3
1 = 2( 3 + 3) e 2 = 3( 2 + 2)
1 = 2 e 2 = 3
b) Código VHDL
------------------------------------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity TED_Exercicio_6 is
port (T2: in STD_LOGIC;
T3: in STD_LOGIC;
B1: out STD_LOGIC;
B2: out STD_LOGIC);
end TED_Exercicio_6;
architecture behave of TED_Exercicio_6 is
begin
B1 <= not T2;
B2 <= not T3;
21. e) Simulação 1
T2 = 0; T3 = 1; B1 = 1; B2 = 0
f) Simulação 2
T2 = 1; T3 = 0; B1 = 0; B3 = 1
2.7. EXERCÍCIO 8
Elabore um circuito lógico para encher ou esvaziar um tanque industrial por meio de
duas eletroválvulas, sendo uma para a entrada do líquido e outra para o escoamento
de saída. O circuito lógico, através da informação de um sensor de nível máximo no
tanque e de um botão interruptor de duas posições, deve atuar nas eletroválvulas
para encher o tanque totalmente (botão ativado) ou, ainda, esvaziá-lo totalmente
(botão desativado).
22. a) Tabela-verdade
A tabela-verdade desse problema já foi dada pelo exercício. Agora podemos
tirar a expressão lógica dele:
= e = +
= ( + )
=
b) Código VHDL
------------------------------------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity TED_Exercicio_8 is
port (I: in STD_LOGIC;
A: in STD_LOGIC;
Eve: out STD_LOGIC;
Evs: out STD_LOGIC);
end TED_Exercicio_8;
architecture behave of TED_Exercicio_8 is
begin
Eve <= not A and I;
Evs <= not I;
end behave;
------------------------------------------------------------------------------------------------------------
c) Forma de Onda