Você está na página 1de 5

UNIVERSIDADE FEDERAL DA FRONTEIRA SUL

CAMPUS CHAPECÓ

DISCIPLINA: CIRCUITOS DIGITAIS


DOCENTES: LUCIANO LORES CAIMI, GEOMAR ANDRE SCHREINER
DISCENTES: JOÃO VITOR GOMES, VALÉRIA FACCIN

Apresentação

O presente relatório tem por objetivo relatar as etapas de resolução do


projeto Jogo de Batalha Naval. O projeto Jogo de Batalha Naval foi proposto na
disciplina de Circuitos Digitais, do curso de Ciências da Computação da
Universidade Federal da Fronteira Sul, campus Chapecó; ele consistia na
realização de uma simulação do jogo Batalha Naval, no qual, através de um
tabuleiro em matriz 4x4 único para cada grupo, era necessário criar um
codificador para ler a posição de dois navios no tabuleiro, além de um atirador
para adivinhar a posição de cada navio. Cada navio e atirador possuiriam 4
chaves que serviriam como valores de entrada para sua posição no tabuleiro, o
papel do codificador seria interpretar os valores de entrada e localizar qual
posição do tabuleiro corresponde aos valores de entrada.

Desenvolvimento

Para realizar a simulação do jogo Batalha Naval, foi necessário iniciar


montando a Tabela Verdade do circuito para fazer a interpretação dos valores da
entrada dos navios e do atirador para os valores do tabuleiro. Como o tabuleiro
consistia em uma matriz 4x4, com colunas e linhas que variavam de 00 para 11,
os valores variavam de 0000 até 1111, ou 0 até 15 em decimal. Juntos, os dígitos
da linha e coluna apontavam para uma casa no tabuleiro que seria em algum
valor entre 0000 e 1111 em binários, mas que não correspondiam ao valor exato
linha/coluna. Assim, considerando cada digito das linhas e colunas como quatro
entradas (A, B, C e D), seria possível fazer uma correlação com os 4 dígitos da
saída – ou posição no tabuleiro – (A0, B0, C0 e D0). Seguindo essa lógica e a
ordem de Codificação do tabuleiro número 20, obteve-se a seguinte Tabela
Verdade:
Após montar a Tabela Verdade, era necessário montar as expressões de
cada bit de saída (A0, B0, C0 e D0), para isso, foi usado o método de
simplificação de Mapas de Karnaugh:

A0 = ⌐A⌐B + AC⌐D + AC⌐D + AB⌐CD

cd
ab 00 01 11 10
00 1 1 1 1
01 0 0 1 0
11 0 1 0 1
10 0 0 0 1

B0 = ⌐AC⌐D + BC⌐D + ⌐BCD + ⌐A⌐CD + ⌐AB⌐C

cd
ab 00 01 11 10
00 0 1 1 1
01 1 1 0 1
11 0 0 0 1
10 0 0 1 0
C0 = ⌐BC⌐D + ⌐AC + ⌐ABD + A⌐B⌐C

cd
ab 00 01 11 10
00 0 0 1 1
01 0 1 1 1
11 0 0 0 0
10 1 1 0 1

D0 = AB⌐C + BC⌐D + ⌐BCD + A⌐BD + A⌐BC

cd
ab 00 01 11 10
00 0 0 1 0
01 0 0 0 1
11 1 1 0 1
10 0 1 1 1

Através das simplificações obteve-se as expressões:

A0 = (⌐A⋅⌐B) +( C⋅(A⊕D)) + (A⋅B⋅⌐C⋅D)

B0 = ((C⊕D)⋅ ⌐A) + ((B⊕D)⋅C) + (⌐A⋅B⋅⌐C)

C0 = (⌐B⋅C⋅⌐D) + (⌐A⋅C) + (A⋅⌐B⋅⌐C) + (⌐A⋅B⋅D)

D0 = (A⋅(B⊕C)) + ((D⊕B)⋅C) + (A⋅⌐B⋅D)

Com as expressões de cada bit montadas foi possível montar o circuito


de cada uma utilizando o Logisim. Assim, o conjunto dos circuitos de cada bit
formaria o Codificador, e seria possível simular o jogo da Batalha Naval no
Logisim, criando 4 entradas conectadas ao Codificador para cada navio e para
o atirador, completando a interpretação e conversão dos valores da entrada para
a saída correspondente do tabuleiro 20. Cada bit de saída do Codificador de
cada navio estaria conectado em uma porta XOR com o bit de saída do
Codificador do atirador, então as saídas negadas das 4 portas XOR de cada
navio estariam ligadas em uma porta AND de 4 entradas, e a saída de cada porta
AND correspondente a cada navio estariam em uma porta OR, e assim a
verificação dos valores de entradas seria feita, e ao apertar o botão, um led verde
se acenderá se os valores de entrada de algum dos dois navios bater com os
valores de entrada do atirador, simbolizando que um navio foi encontrado, caso
contrário, um led vermelho se acenderá, simbolizando que nenhum navio foi
afundado.

Após finalizar o circuito no Logisim, ele foi montado novamente no


Tinkercad. Cada bit do Codificador (A0, B0, C0 e D0) foi montado em uma
protoboard e o jogo de Batalha Naval com a verificação dos valores e o botão foi
montado com apenas um navio e atirador.

Apresentação Codificador do jogo Batalha Naval:

https://www.tinkercad.com/things/iEcYiDwhoO6

Apresentação jogo Batalha Naval:

https://www.tinkercad.com/things/0JAXd8WbzaZ

Apresentação do circuito no Logisim e Tinkercad:

https://drive.google.com/file/d/15m-
e41mJSZc12UVlbjRrF0qKlBJrVOP8/view?usp=sharing

Ao finalizar a montagem do circuito no Tinkercad, iniciou-se a montagem


do circuito de um bit do Codificador na protoboard. O bit escolhido foi o menos
significativo, D0. A montagem foi iniciada com o posicionamento do botão
(consideramos a ordem das entradas 1, 2, 3 e 4 como os bits A, B, C e D
respectivamente) e das portas lógicas 7486 (porta XOR – duas entradas), 7408
(porta AND – duas entradas), 7404 (porta NOT), 7411 (porta AND – três
entradas) e 7432(porta OR – duas entradas), e em seguida foi realizada a
alimentação positiva dos seus respectivos VCC e negativa dos seus GND assim
como a alimentação positiva das 4 entradas utilizadas no botão. 4 resistências
de 1000Ω foram ligadas das saídas do botão para a alimentação negativa e uma
resistência de 620Ω foi ligada ao led ao final do circuito. Depois das primeiras
etapas de posicionamento dos principais elementos do circuito na protoboard,
iniciou-se a ligação das portas lógicas do circuito, seguindo o mesmo esquema
da expressão:
D0 = (A⋅(B⊕C)) + ((D⊕B)⋅C) + (A⋅⌐B⋅D)

Assim, iniciando pela porta XOR 7486, posicionamos B e C em duas


entradas e D e B em outras duas entradas, as duas saídas utilizadas seriam
ligadas na porta AND 7408 com A e C respectivamente. A porta NOT 7404, foi
utilizada para negar B, e sua saída ligada na porta AND 7411 junto com A e D.
As saídas da porta and 7408 foram ligadas na porta OR 7432, cuja saída foi
ligada junto com a saída da porta AND 7411, e o resultado da OR entre essas
duas saídas seria ligada diretamente no led como a saída final do circuito.

Apresentação do circuito:

https://drive.google.com/file/d/1Dya9K2fGrUn2n6nEQ5pysbIxgtGFxdIU/view?us
p=drive_link

Conclusão

Ao final do projeto o objetivo do jogo Batalha Naval foi concluído, todas as


etapas foram realizadas, a construção da Tabela Verdade, das expressões e
suas simplificações, a construção do circuito no Logisim para o Codificador e
para a simulação do jogo, a construção do Codificador no Tinkercad e a
simulação do jogo e por fim a construção presencial de um bit do Codificador,
D0, com funcionamento correto.

Você também pode gostar