Buscar

Aula 4 - Circuitos Lógicos Sequenciais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

DESCRIÇÃO
Os circuitos sequenciais clássicos e o projeto de máquinas de estado síncronas.
PROPÓSITO
Conhecer os circuitos sequenciais clássicos e projetar máquinas de estado síncronas, objetivando a
compreensão da estrutura de sistemas digitais utilizados para “comandar” muitos dos dispositivos
que usamos diariamente.
OBJETIVOS
MÓDULO 1
Descrever o funcionamento dos circuitos sequenciais clássicos
MÓDULO 2
Projetar máquinas de estado síncronas
APRESENTAÇÃO
Vamos estudar, neste tema, contadores, registradores de deslocamentos e multivibradores
monoestáveis.
O que todos esses circuitos têm em comum?
 RESPOSTA
Todos eles possuem memória, ou seja, suas saídas podem depender, além da entrada atual, das
entradas passadas.
Também iremos aprender a projetar circuitos sequenciais síncronos para aplicações específicas,
igualmente conhecidas como máquinas de estado síncronas.
As máquinas de estado realizam função parecida com a do cérebro no corpo humano. Elas
controlam os dispositivos a partir de suas entradas e seu estado atual, calculando os próximos
estados e saídas. Máquinas de estado podem ser encontradas em diversos itens do nosso cotidiano,
como televisores, fornos micro-ondas e até nos processadores dos computadores.
MÓDULO 1
 Descrever o funcionamento dos circuitos sequenciais clássicos
INTRODUÇÃO
Não estudaremos aqui como todos os circuitos sequenciais são construídos, no entanto é importante
ter em mente que o elemento central de tais circuitos são flip-flops.
Os flip-flops são utilizados para armazenar o estado do circuito, provendo a capacidade de memória
que caracteriza esse tipo de circuito.
Não se preocupe! A utilização dos flip-flops na construção dos circuitos sequenciais será estudada
no próximo módulo.
CONTADORES
Os contadores são circuitos sequenciais que a cada pulso do relógio mudam seu estado de acordo
com uma sequência predeterminada (contagem). Podemos dividir os contadores em dois tipos:
síncronos e assíncronos.
SÍNCRONOS
Nos contadores síncronos o relógio (clock) é comum a todos os flip-flops.

ASSÍNCRONOS
Nos contadores assíncronos os flip-flops são “cascateados”.
 ATENÇÃO
O sinal de relógio é utilizado apenas pelo primeiro flip-flop, os demais utilizam a saída do flip-flop
anterior como sinal de relógio.
CONTADORES ASSÍNCRONOS
Os contadores assíncronos são comumente utilizados quando a sequência de estados utilizada é a
binária.
Nesse caso, o projeto do circuito é bastante simplificado. Veja o circuito a seguir:
 
Fonte: EnsineMe
 Figura 1: Contador assíncrono de 4 bits crescente
Primeiramente, notamos que as entradas
J
e
K
estão conectadas no nível alto. Dessa forma, os flip-flops executam toggle sempre que houver um
bordo de descida em suas respectivas entradas de
¯
CLK
.
Note também que o preset fica permanentemente desativado, enquanto o clear está ativo se o sinal
¯
CLR
estiver em nível baixo, fazendo a saída de todos os flip-flops ficarem em nível baixo.
Se
¯
CLR = 1
, então a cada bordo de subida de
¯
CLK
o primeiro flip-flop (
QA
) irá alterar seu estado. Assim temos:
 
Fonte: EnsineMe
 Figura 2: Saída
QA
do contador assíncrono de 4 bits crescente
Repare que
QA
será o sinal de relógio do segundo flip-flop e assim por diante. Logo, a saída completa do contador é:
 
Fonte: EnsineMe
 Figura 3: Saída completa do contador assíncrono de 4 bits crescente
Sendo que, os números abaixo dos sinais indicam a ordem do ciclo do sinal de relógio com o sinal de
clear em nível alto, considerando que os ciclos terminam no bordo de descida.
Assim, a tabela de saída do contador síncrono apresentado é:
Pulso de
¯
CLK
com
¯
CLR = 1
QD QC QB QA
Número formado por
QDQCQBQA
1° 0 0 0 0 0
2° 0 0 0 1 1
3° 0 0 1 0 2
4° 0 0 1 1 3
5° 0 1 0 0 4
6° 0 1 0 1 5
7° 0 1 1 0 6
8° 0 1 1 1 7
9° 1 0 0 0 8
10° 1 0 0 1 9
11° 1 0 1 0 10
12° 1 0 1 1 11
13° 1 1 0 0 12
Pulso de
¯
CLK
com
¯
CLR = 1
QD QC QB QA
Número formado por
QDQCQBQA
14° 1 1 0 1 13
15° 1 1 1 0 14
16° 1 1 1 1 15
17° 0 0 0 0 0
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
 Tabela 1: Saída do contador assíncrono de 4 bits crescente. Fonte: EnsineMe
Pela Tabela 1 vemos que o número formato por
QDQCQBQA
corresponde à quantidade de pulsos completos do sinal de relógio desde que a entrada de clear foi
desativada. Contudo, como o contador só possui 4 bits, ele só pode contar até 15. Após esse valor
ele reinicia a contagem do zero. Devido a essa característica, tal circuito é conhecido também como
“contador de pulsos”.
Um fato interessante sobre esse circuito é que, como podemos ver na Figura 3, o período do sinal
QA
é o dobro do sinal
¯
CLK
. Portanto, a frequência do sinal
QA
é metade da frequência do sinal
¯
CLK
. Essa relação se repete entre
QB
e
QA
,
QC
e
QD
. Então, se
f ¯CLK
for a frequência do sinal do relógio e
fA
,
fB
,
fC
e
fD
as frequências dos sinais de saída, temos a seguinte relação:
F ¯CLK = 2FA = 4FB = 8FC = 16FD
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
Generalizando para um contador de pulsos com
N
bits, temos:
fN = f
¯
CLK /2
N
. Logo, um contador de pulso pode ser utilizado para dividir a frequência do sinal de relógio por uma
potência de 2.
Como visto, o contador apresentado realiza a contagem de 0 a
2N − 1
, sendo
N
o número de flip-flops utilizados. Porém, utilizando as entradas de preset e clear e uma porta NAND,
podemos fazer com que o contador inicie a contagem em um número diferente de 0 e que tenha
valor máximo diferente de
2N − 1
. Veja o exemplo a seguir:
EXEMPLO
Projete um contador assíncrono que conte de 2 a 5.
SOLUÇÃO
O primeiro passo é determinar quantos flip-flops serão necessários. Para representar 5 precisamos
de 3 dígitos binários (5 = 101b). Logo, serão necessários 3 flip-flops.
Como para o contador só estamos interessados na operação toggle, então podemos usar flip-flops
T
, com a entrada
T
em nível alto.
Para que o contador conte até 5, devemos possibilitar que o próximo estágio, no caso 6 (110b),
retorne para o valor inicial da contagem, no caso 2. Com essa finalidade, utilizamos uma porta NAND
que, quando
QCQBQA = 110
, ative o clear dos flip-flops
javascript:void(0)
C
e
A
e o preset do
B
.
Isto é, assim que
QCQBQA
assumirem o valor de 110 serão acionados os preset e clear necessários para que
QCQBQA
tornem-se 010 (2, em decimal). Desse modo, o estado 110 é um estado instável, pois o circuito irá
imediatamente, e sem necessidade de nenhuma entrada, modificar seu estado. O circuito proposto é
mostrado a seguir:
 
Fonte: EnsineMe
 Figura 4: - Contador assíncrono de 2 a 5
Considerando que seu estado inicial seja 2 (
QCQBQA = 010
), apresenta a seguinte tabela de funcionamento nos primeiros 6 pulsos de relógio:
Pulso de
¯
CLK
QC QB QA
Número formado por
QCQBQA
Pulso de
¯
CLK
QC QB QA
Número formado por
QCQBQA
1° 0 1 0 2
2° 0 1 1 3
3° 1 0 0 4
4° 1 0 1 5
Estado instável 1 1 0 6
5° 0 1 0 2
6° 0 1 1 3
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
 Tabela 2: Tabela do contador assíncrono crescente de 2 a 5. Fonte: EnsineMe
Se quisermos fazer um contador assíncrono de 4 bits decrescente, ele deverá seguir a seguinte
tabela:
Pulso de
¯
CLK
QD QC QB QA
Número formado por
QDQCQBQA
1° 1 1 1 1 15
2° 1 1 1 0 14
3° 1 1 0 1 13
4° 1 1 0 0 12
Pulso de
¯
CLK
QD QC QB QA
Número formado por
QDQCQBQA
5° 1 0 1 1 11
6° 1 0 1 0 10
7° 1 0 0 1 9
8° 1 0 0 0 8
9° 0 1 1 1 7
10° 0 1 1 0 6
11° 0 1 0 1 5
12° 0 1 0 0 4
13° 0 0 1 1 3
14° 0 0 1 0 2
15° 0 0 0 1 1
16° 0 0 0 0 0
17° 1 1 1 1 15
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
 Tabela 3: Saída do contador assíncrono de 4 bits decrescente. Fonte: EnsineMe
Comparando as Tabelas 1 e 2, podemos perceber que as saídas da segunda são a negação da
primeira, dessa forma podemos esquematizar o contadordecrescente:
 
Fonte: EnsineMe
 Figura 5: Contador assíncrono de 4 bits decrescente
Como exercício, sugiro que você verifique que o circuito a seguir implementa um contador
assíncrono decrescente de 3 bits:
b
 
Fonte: EnsineMe
 Figura 6: Contador assíncrono de 3 bits decrescente
Sabemos que os circuitos reais não mudam de estado instantaneamente de acordo com as entradas.
Eles levam um tempo (em geral pequeno) para atualizar o valor das saídas. Este tempo é chamado
de atraso.
 ATENÇÃO
Tal como no contador assíncrono, os flip-flops estão cascateados, o atraso na mudança do estado
dos flip-flops vai se acumulando conforme mais afastados eles estão do primeiro.
Para entender melhor esse fenômeno, iremos analisar a transição de
7 (0111) → 8 (1000)
no circuito da Figura 1. Repare que o flip-flop
B
só pode iniciar sua mudança de estado após o flip-flop
A
ter terminado a sua mudança. Essa relação repete-se entre o flip-flop
C
e
B
, e entre o
D
e o
C
.
Considerando que o atraso de flip-flop
JK
seja
t
, o diagrama de sinais da transição entre o
0111 → 1000
é representado na Figura 7, que deixa claro que o atraso em relação ao sinal do relógio vai se
somando conforme nos distanciamos do flip-flop
A
. Por exemplo, o atraso do flip-flop
D
é
4t
.
 
Fonte: EnsineMe
 Figura 7: Zoom na transição entre os estados 7 e 8 de um contador crescente assíncrono
PROJETO DE UM CONTADOR BINÁRIO
ASSÍNCRONO
CONTADOR SÍNCRONO
No contador síncrono, o sinal de relógio entra em todos os flip-flops. Assim, todos eles mudam de
estado ao mesmo tempo, eliminando o problema de soma dos atrasos que ocorre no contador
assíncrono.
Em contrapartida, é necessário que todos os flip-flops saibam qual o próximo estado, o que
normalmente torna o circuito mais complexo.
O circuito genérico de um contador síncrono utilizando flip-flops
JK
sensíveis a bordo de descida é indicado a seguir:
 
Fonte: EnsineMe
 Figura 8: Contador síncrono genérico
Apesar de termos visto até agora apenas contadores que seguem a sequência binária, existem
outros que seguem códigos diferentes. Além disso, os contadores podem ser classificados de acordo
com diversas características. A seguir citamos as mais importantes:
Sincronismo
Assíncrono
Síncrono
Polaridade do relógio, a qual bordo o clock dos flip-flops é sensível:
A bordo de subida
A bordo de descida
Modo de operação, o sentido da contagem:
Crescente
Crescente
Crescente/Decrescente, também conhecido como Up/Down Counter, pode operar nos
dois modos, com o controle sendo realizado por uma entrada de controle.
Número de bits, quantidade de bits utilizada na sequência de contagem.
Código, o código da sequência utilizada.
Binário, por exemplo, de 3 bits:
→ 000 → 001 → 010 → 011 → 110 → 111 → 000 →
;
BCD,
→ 0000 → 0001 → 0010 → 1000 → 1001 → ;
Entre outros, como código Gray e Código 9876543210.
Módulo, quantidade de estados estáveis da sequência de estados. Por exemplo, um contador
com código BCD possui módulo 10, já o contador assíncrono de 2 a 5 possui módulo 4, como
pode ser visto na Tabela 2.
Tipo de clear/preset:
clear/preset síncrono: para o contador reiniciar é necessário que o clear ou preset esteja
ativo no momento que houver o bordo designado do clock;
clear/preset assíncrono: assim que clear ou preset são ativados o contador reinicia o seu
estado.
 Atenção! Para visualização completa da tabela utilize a rolagem horizontal
REGISTRADORES DE DESLOCAMENTO
O registrador de deslocamento, também conhecido como shift-register, é um circuito que pode
armazenar determinada quantidade de bits (palavra) e permitir o deslocamento desses bits para
esquerda ou direita a cada pulso do relógio.
Para entender o deslocamento, veja o exemplo:
Um registrador de deslocamento de 4 bits e deslocamento para direita é inicializado com o valor
1010. Ao realizar um deslocamento para a direita ele insere o valor 0 no espaço do bit mais
significativo.
A sequência que esse registrador de deslocamento segue em 4 pulsos de relógio é:
1010 → 0101 → 0010 → 0001 → 0000
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
Como a ideia por trás do registrador de deslocamento é a passagem de bits entre flip-flops vizinhos,
é natural utilizar flip-flops
D
na implementação. Vejamos o esquema de um registrador de deslocamento de 4 bits que faz o
deslocamento para a direita.
 
Fonte: EnsineMe
 Figura 9: Registrador de deslocamento de 4 bits que faz o deslocamento à direita
Analisando o circuito, percebemos que a cada bordo de descida do relógio o estado é atualizado de
acordo com a seguinte lógica:
Q3Q2Q1Q0 → INQ3Q2Q1
.
 SAIBA MAIS
Os registradores de deslocamento comerciais muitas vezes permitem outras funções, como executar
o deslocamento à direita ou à esquerda em função de um sinal de entrada e permitir o carregamento
de uma palavra de uma vez (load).
Como exemplo, mostraremos o 74194, um registrador de deslocamento de 4 bits bidirecional,
sensível a bordo de subida e com clear assíncrono. Destaca-se que, diferentemente do usual, neste
componente, o bit mais significativo (MSB) é
QA
e o menos significativo (LSB) é
QD
.
 
Fonte: EnsineMe
 Figura 10: Representação do registrador de deslocamento 74194
S1 S0 Próximo estado Operação
0 0 QA QB QC QD hold
0 1 SRSI QA QB QC Deslocamento para direita (shift right)
1 0 QB QC QD SLSI Deslocamento para esquerda (shift left)
1 1 A B C D Carregamento (load)
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
 Tabela 4: Tabela de funcionamento do registrador de deslocamento 74194. Fonte: EnsineMe
Uma das aplicações mais importantes do registrador de deslocamento é como conversor série-
paralelo.
TRANSMISSÃO PARALELA
Todos os bits da palavra são transmitidos simultaneamente.

TRANSMISSÃO EM SÉRIE
Os bits são transmitidos sequencialmente.
Veja a transmissão do nibble 0101 nos modos série e paralelo:
 
Fonte: EnsineMe
 Figura 11: Transmissão a) paralelo b) série
Conversão de série para paralelo
Para converter uma palavra de 4 bits de série para paralelo utilizando o 74194, fazemos a entrada
transpor a entrada
SRSI
e realizamos deslocamento à direita (shift right). Após 4 pulsos do relógio, a saída
QAQBQCQD
será a palavra no modo série, pronta para o armazenamento ou transmissão paralela.
Conversão de paralelo para série
Para converter uma palavra de 4 bits de paralelo para série utilizando o 74194, devemos fazer,
inicialmente, carregar a palavra que se deseja transmitir (load). Em seguida, são realizados
deslocamentos à direita (shift right). O sinal de saída em série é obtido pela saída
QD
do 74194.
MULTIVIBRADORES
Circuitos multivibradores são capazes de operar em estados estáveis e/ou instáveis. Um estado é
considerado estável, caso o circuito o mantenha indefinidamente se não houver nenhum sinal de
entrada, incluindo o relógio. Um estado é instável caso, mesmo sem nenhuma entrada, ele mude de
estado após determinado tempo.
Como em eletrônica digital, o bit pode valer 0 ou 1, então há 3 tipos de multivibradores digitais:
MULTIVIBRADORES BIESTÁVEIS
MULTIVIBRADORES MONOESTÁVEIS
MULTIVIBRADORES ASTÁVEIS
MULTIVIBRADORES BIESTÁVEIS
Como o nome sugere, possuem dois estados estáveis. Latches e flip-flops são exemplos de
multivibradores biestáveis.
MULTIVIBRADORES MONOESTÁVEIS
Apresentam apenas um estágio estável, podendo ser tanto o 0 como o 1. Estudaremos mais a fundo
esse tipo de multivibrador.
MULTIVIBRADORES ASTÁVEIS
Nesses circuitos não existem estados estáveis, o circuito muda de estado constantemente. Como
geralmente os multivibradores astáveis não possuem entradas, normalmente eles não são circuitos
sequenciais. Os osciladores que geram o sinal de relógio são exemplos de multivibradores astáveis
digitais, assim como os sinais de trânsito, comuns em nosso cotidiano.
 SAIBA MAIS
Os osciladores que geram o sinal de relógio são exemplos de multivibradoresastáveis digitais, assim
como os sinais de trânsito, comuns em nosso cotidiano.
O funcionamento do multivibrador monoestável, ou simplesmente monoestável, segue a seguinte
lógica: quando um sinal de gatilho (G) sensível a bordo é ativado, o monoestável muda do estado
estável para o instável e permanece por um tempo
τ
até retornar ao estado estável. Na figura a seguir, o gatilho é ativado no nível alto e o estado estável
é o 0.
 
Fonte: EnsineMe
 Figura 12: Funcionamento de um monoestável
Normalmente, o tempo que o monoestável fica no estado instável (
τ
) é definido por uma associação de resistor e capacitor conectados externamente ao monoestável,
permitindo a configuração de
τ
de acordo com a aplicação.
Se ocorrer um novo bordo do gatilho enquanto a saída ainda está no estado instável, como o
monoestável se comporta?
Para responder a esse questionamento precisamos saber qual é o tipo do monoestável. Existem dois
tipos:
MONOESTÁVEIS REGATILHÁVEIS
javascript:void(0)
A contagem do tempo
τ
é reiniciada a cada novo bordo de subida do gatilho.
MONOESTÁVEIS NÃO REGATILHÁVEIS:
Quando no estado instável, o monoestável “ignora” o gatilho até retornar para o estado estável.
 
Fonte: EnsineMe
 Figura 13: Monoestável regatilhável e não regatilhável
VERIFICANDO O APRENDIZADO
1. UM CONTADOR BINÁRIO SÍNCRONO CRESCENTE DE 4 BITS, COM CLEAR
ASSÍNCRONO ATIVADO EM NÍVEL BAIXO, TEM SAÍDA
QDQCQBQA
. SABENDO QUE O CLEAR RECEBE
¯
QD . QB
, QUAL O MÓDULO DESTE CONTADOR?
A) 10
B) 11
javascript:void(0)
C) 9
D) 4
E) 15
2. QUAIS TIPOS DE MULTIVIBRADORES PODEM COMPOR OS SEGUINTES
EQUIPAMENTOS: 
UMA CAMPAINHA MUSICAL QUE TOCA UM TRECHO DE MÚSICA;
UM SISTEMA QUE LIGA A ILUMINAÇÃO AUTOMATICAMENTE AO
DETECTAR MOVIMENTO;
UM INTERRUPTOR DIGITAL DE LÂMPADA QUE MIMETIZA UM
INTERRUPTOR TRADICIONAL.
A) I – Biestável; II – Monoestável não regatilhável; III – Astável
B) I – Biestável; II – Astável; III – Biestável
C) I – Monoestável; II – Monoestável regatilhável; III – Biestável
D) I – Astável; II – Biestável; III – Monoestável
E) I – Monoestável; II – Monoestável não regatilhável; III – Biestável
GABARITO
1. Um contador binário síncrono crescente de 4 bits, com clear assíncrono ativado em nível
baixo, tem saída
QDQCQBQA
. Sabendo que o clear recebe
¯
QD . QB
, qual o módulo deste contador?
A alternativa "A " está correta.
 
O contador seguirá a contagem até que
¯
QD . QB = 0
, quando será ativado o clear. Assim, temos a seguinte tabela:
Estado QD QC QB QA clear =
¯
QD . QB
0 0 0 0 0 1
1 0 0 0 1 1
2 0 0 1 0 1
3 0 0 1 1 1
4 0 0 0 0 1
5 0 1 0 1 1
6 0 1 1 0 1
7 0 1 1 1 1
8 1 1 0 0 1
9 1 0 0 1 1
10 1 0 1 0 0
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
Ao alcançar o estado 10, o clear é ativado. Como o clear é assíncrono, o estado vai diretamente para
o estado 0. Dessa forma, o estado 10 não é estável, os estados estáveis são de 0 a 9, totalizando 10
estados estáveis. Logo, o contador possui módulo 10.
2. Quais tipos de multivibradores podem compor os seguintes equipamentos: 
uma campainha musical que toca um trecho de música;
um sistema que liga a iluminação automaticamente ao detectar movimento;
um interruptor digital de lâmpada que mimetiza um interruptor tradicional.
A alternativa "C " está correta.
 
Equipamento I: A campainha deve permanecer desligada (estado estável). Ao ser pressionada, deve
tocar música por um tempo predeterminado (estado instável) e, então, retornar a ficar desligada.
Como o equipamento tem um estado instável, então deve ser usado um multivibrador monoestável.
Equipamento II: A luz deve permanecer desligada (estado estável). Ao ser detectado movimento, a
luz deve ser ligada (estado instável) e assim permanecer (característica regatilhável). Ao passar
certo tempo sem movimento, a luz deve ser desligada. Logo, o equipamento II pode usar um
monoestável regatilhável.
Equipamento III: Cada vez que o interruptor é pressionado, o estado da lâmpada deve ser modificado
e assim se manter até que o interruptor seja acionado novamente. Portanto, os dois estados são
estáveis e o circuito III pode usar um multivibrador biestável.
MÓDULO 2
 Projetar máquinas de estado síncronas
INTRODUÇÃO
Máquinas de estado finitas são aquelas com uma quantidade de estados predefinidos e finitos. O
conceito de máquinas de estado finitas é utilizado tanto em eletrônica digital, quanto em
programação. Por simplicidade, iremos suprimir o termo “finitas”, chamando as máquinas de estado
finitas simplesmente de máquinas de estado.
Neste módulo, estudaremos as máquinas de estado síncronas, ou seja, aquelas na qual os relógios
de todos os flip-flops são conectados juntamente, de forma que o estado só pode ser modificado em
momentos específicos determinados pela entrada de relógio da máquina.
MODELO DE MÁQUINAS DE ESTADO
SÍNCRONAS
As máquinas de estado síncronas são compostas de três blocos principais:
BLOCO DE MEMÓRIA
O coração da máquina de estados armazena o estado atual da máquina de estados, geralmente
implementado com flip-flops.

LÓGICA COMBINACIONAL DE PRÓXIMO ESTADO
Circuito combinacional que, baseado no estado atual e nas entradas, calcula as entradas dos flip-
flops do bloco de memória para realizar a correta transição entre estados.

LÓGICA COMBINACIONAL DE SAÍDA
Circuito combinacional que calcula as saídas do circuito. Ele pode usar apenas o estado atual
(Modelo Moore) ou o estado atual e as entradas (Modelo Mealy).
Como em máquinas de estados trabalhamos com agrupamento de bits — os bits de estado, os bits
de entrada e os bits de saída — usaremos barramentos. Um barramento é um conjunto de fios
utilizados para transferir informação no modo paralelo. É usual utilizar uma seta no final do
barramento para indicar o fluxo da informação.
 
Fonte: EnsineMe
 Figura 14: Notações de barramento de n fios onde a informação flui da esquerda para a direita
Os modelos genéricos de uma máquina de estado síncrona, modelo Mealy e de Moore, podem ser
vistos nas Figura 15 e 16, respectivamente.
O modelo Mealy utiliza o estado presente e as entradas do circuito no cálculo da saída, portanto, a
saída pode ser alterada. Mesmo sem haver variação no estado da máquina, a saída não é obrigada
a seguir os bordos do sinal do relógio.
Dessa forma, dizemos que as máquinas de estado síncronas modelo Mealy possuem saída
assíncrona. Já no modelo Moore, a lógica combinacional de saída só utiliza o estado presente. Como
o estado só pode mudar nos bordos designados do sinal de relógio, a saída do modelo Moore é
síncrona.
 
Fonte: EnsineMe
 Figura 15: Máquina de estados síncrona Modelo de Mealy genérica
 
Fonte: EnsineMe
 Figura 16: Máquina de estados síncrona Modelo de Moore genérica
DIAGRAMAS DE ESTADO E TABELA DE
TRANSIÇÃO E DE SAÍDA
O diagrama de estados é um diagrama com todos os estados utilizados pela máquina de estado,
todas as transições possíveis e as saídas.
Por exemplo, uma máquina de Moore com 4 estados (
E0
,
E1
,
E2
,
E3
), uma entrada (
H
) e uma saída (
F
) poderia apresentar o seguinte diagrama de estados:
 
Fonte: EnsineMe
 Figura 17: Exemplo de diagrama de estados de uma máquina modelo Moore
A leitura desse diagrama é feita da seguinte forma:
No estado
E0
a saída
F
é
1
e o próximo estado é
E1
se
H = 0
e
E3
se
H = 1
;
No estado
E1
a saída
F
é
0
e o próximo estado é
E2
se
H = 0
e
E1
se
H = 1
;
No estado
E2
a saída
F
é
1
e o próximo estado é
E3
se
H = 0
e
E1
se
H = 1
;
No estado
E3
a saída
F
é
0
e o próximo estado é
E3
se
H = 0
e
E0
se
H = 1
.
Note que o código atribuído a cada estado não influencia na lógica de funcionamento da máquina de
estados, portando pode ser omitida quando quisermos analisar apenas o funcionamento da máquina
de estado. Contudo, essa informação é fundamental para a implementação da máquina de estados.
A partir do diagrama de estados podemos montar uma tabelacom todos eles, suas saídas e prever o
próximo estado em função da entrada. Essa tabela é chamada de tabela de transição de estado e
de saída (MENDONÇA; ZELENOVSKY, 2007, p. 179) e podemos montá-la em função da
designação de cada estágio (E0, E1, E2 ou E3 ) ou do código de cada estágio (00, 01, 10 ou 11).
Estado atual
Próximo estado se
H = 0
Próximo estado se
H = 1
Saída
00 01 11 1
Estado atual
Próximo estado se
H = 0
Próximo estado se
H = 1
Saída
01 10 01 0
10 11 01 1
11 11 00 0
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
 Tabela 5: Tabela de transição de estado e de saída do diagrama de estados da Figura 17. Fonte:
EnsineMe
O diagrama de estados de máquina de estados modelo Mealy usa a notação “próximo estado/saída
do estado presente com essa entrada”. Por exemplo, podemos ter uma máquina de Mealy com 4
estados (
E0
,
E1
,
E2
,
E3
), duas entradas (
H
e
D
) e uma saída (
F
) com o seguinte diagrama de estados:
 
Fonte: EnsineMe
 Figura 18: Exemplo de diagrama de estados de uma máquina Modelo Mealy
 ATENÇÃO
É importante compreender que a notação do tipo “
HD /0
”, “
HD
” indica a condição para a transição para o próximo estado apontado pela seta, enquanto “
0
” é a saída do estado atual se
HD = 1
.
Estado
atual
Próximo estado /
saída se
HD = 00
Próximo estado /
saída se
HD = 01
Próximo estado /
saída se
HD = 10
Próximo estado /
saída se
HD = 11
Estado
atual
Próximo estado /
saída se
HD = 00
Próximo estado /
saída se
HD = 01
Próximo estado /
saída se
HD = 10
Próximo estado /
saída se
HD = 11
E0 E0 /1 E2 /0 E1 /0 E3 /0
E1 E1 /0 E3 /0 E0 /1 E2 /1
E2 E2 /1 E1 /1 E2 /1 E1 /1
E3 E3 /1 E3 /1 E0 /1 E0 /1
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
 Tabela 6: Tabela de transição de estado e de saída do diagrama de estados da Figura 18. Fonte:
EnsineMe
Para que um diagrama de estados seja válido, ele precisa cumprir dois requisitos básicos:
REQUISITO 1
Nenhuma combinação de estado atual e entradas pode corresponder à transição para mais de um
próximo estado. A máquina de estados não pode “ficar em dúvida” de qual deve ser o próximo
estado.
REQUISITO 2
Toda combinação de estado atual e entradas precisa corresponder a um próximo estado. A máquina
não pode “ficar sem saber para onde ir”.
Observe a figura abaixo:
javascript:void(0)
javascript:void(0)
 
Fonte: EnsineMe
 Figura 19: Diagrama de estados mal projetado
Ao observar um diagrama de estados como o da figura anterior, podemos achar que está tudo
normal, porém ao montar a tabela de transição de estado e de saída obtemos:
Estado
atual
Próximo estado /
saída se
HD = 00
Próximo estado /
saída se
HD = 01
Próximo estado /
saída se
HD = 10
Próximo estado /
saída se
HD = 11
E0
E0
E1
E0 E1 E1
E1 E2 E0 - E1
E2 E2 E0 E0 E0
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
 Tabela 7: Tabela de transição de estado e de saída do diagrama de estados da Figura 19. Fonte:
EnsineMe
Na tabela de transição de estado e de saída, fica claro que há dois problemas no diagrama de estado
proposto:
O estado
E0
possui mais de um próximo estado para a entrada
HD = 00
;
O estado
E1
não prevê o próximo estado para a entrada
HD = 10
.
OBTENÇÃO DA LÓGICA COMBINACIONAL DE
PRÓXIMO ESTADO
A obtenção da lógica combinacional de próximo estado está intimamente ligada ao flip-flop utilizado,
sendo, geralmente, o flip-flop
D
ou
JK
, mas pode ser usado qualquer tipo.
Assim que estabelecido o tipo de flip-flop a ser utilizado, montamos a sua tabela de excitação.
Observe a tabela de excitação dos flip-flops
JK
,
SR
,
D
e
T
:
Flip-flop
JK
Qn → Qn + 1 J K
0 → 0 0 X
0 → 1 1 X
1 → 0 X 1
1 → 1 X 0
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
Flip-flop
RS
Qn → Qn + 1 S R
0 → 0 0 X
0 → 1 1 0
Flip-flop
RS
1 → 0 0 1
1 → 1 X 0
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
Flip-flop
D
Qn → Qn + 1 D
0 → 0 0
0 → 1 1
1 → 0 0
1 → 1 1
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
Flip-flop
T
Qn → Qn + 1 T
Flip-flop
T
0 → 0 0
0 → 1 1
1 → 0 1
1 → 1 0
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
Com a tabela de excitação e a tabela de próximo estado, podemos montar a tabela-verdade da
lógica combinacional de próximo estado. Por exemplo, utilizando flip-flops
JK
e a Tabela 5 podemos montar a seguinte tabela-verdade:
Estado atual Entrada
Mudança de estado
Flip-flop
B
Flip-flop
A
QB QA H JB KB JA KA
0 0 0 00 → 01 0 X 1 X
0 0 1 00 → 11 1 X 1 X
0 1 0 01 → 10 1 X X 1
Estado atual Entrada
Mudança de estado
Flip-flop
B
Flip-flop
A
QB QA H JB KB JA KA
0 1 1 01 → 11 0 X X 0
1 0 0 10 → 11 X 0 1 X
1 0 1 10 → 01 X 1 1 X
1 1 0 11 → 11 X 0 X 0
1 1 1 11 → 00 X 1 X 1
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
 Tabela 8: Tabela verdade da lógica combinacional de próximo estado. Fonte: EnsineMe
Após montar a tabela-verdade, extraímos as funções booleanas. Utilizando mapa de Karnaugh:
MAPA DE KARNAUGH
Tipo de mapeamento biunívoco que tem como ponto de partida uma tabela-verdade da função
que está sendo analisada
javascript:void(0)
 
Fonte: EnsineMe
Veja mais detalhes no vídeo a seguir:
OBTENÇÃO DA LÓGICA COMBINACIONAL DE
SAÍDA
Note que, para as saídas, a tabela de transição de estado e de saída já corresponde à tabela-
verdade. Se estivermos projetando uma máquina de estado no modelo Mealy, a saída é função do
estado presente e das entradas. Caso a máquina de estado use o modelo Moore, a saída é função
exclusiva do estado presente.
De acordo com a Tabela 5, podemos escrever os mintermos em que a saída é ativa:
MINTERMOS
Método de reescrição de função lógica com intuito de reduzir o número de portas do circuito
lógico que implementa tal função.
F =
¯
QB . 
¯
QA + QB . 
¯
QA
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
Fazendo a simplificação por álgebra booleana:
javascript:void(0)
F =
¯
QB . 
¯
QA + QB . 
¯
QA = 
¯
QA 
¯
QB + QB =
¯
QA . 1
F =
¯
QA
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
PROJETO DE MÁQUINA DE ESTADOS
SÍNCRONA
Fazer o projeto de uma máquina de estados é um processo complexo que, em geral, depende
bastante da experiência do engenheiro para obter o resultado ótimo, seja ele visto por um critério de
custo de implementação, confiabilidade ou outro, de acordo com a finalidade do circuito.
 EXEMPLO
Em um equipamento médico de suporte a vida são inclusas redundâncias e circuitos de segurança
adicionais, haja vista que falhas não são toleradas. Já em acessórios de baixo custo, procura-se
projetar o dispositivo mais barato possível de produzir que cumpra sua função.
Veja a seguir as etapas que compõem o projeto de uma máquina de estado síncrona. Clique nos
títulos para ver, por meio de exemplos simples, como funcionam essas etapas:
ESPECIFICAR O PROJETO
Nesta etapa você deve se perguntar: qual a finalidade do seu circuito, quais são as entradas e as
saídas? Como ele deve se comportar nos diferentes cenários?
Exemplo:
Deseja-se um dispositivo que faça o controle de uma bomba d´água automática para uma caixa
d’água.
( )
Entradas:
Dois sensores de nível de água: um colocado no nível baixo e o segundo no nível alto,
respectivamente,
A
e
B
. Esses sensores apresentam saída
1
se encontrando com a água e
0
, caso contrário;
Indicador, se está chegando água na bomba d’água:
C = 1
está chegando água,
C = 0
caso contrário.
Saída:
Controle da bomba d’água:
H = 1
ativa a bomba d’água,
H = 0
desativa a bomba.
Funcionamento desejado:
Quando a água estiver abaixo do nível baixo, a bomba deve ser ligada até que a água
ative o nível alto, então ela é desligada;
Para evitar a queima da bomba, ela nunca deve ser ligada caso nãoesteja recebendo
água;
Caso o indicador de nível alto esteja ativo e o baixo esteja desativado (
BA = 10
). Como essa seria uma situação fisicamente impossível, a máquina deve parar de
funcionar devido ao mau funcionamento dos sensores de nível água.
ESCOLHER MODELO: MOORE OU MEALY
Esse passo pode ser feito já pensando no seguinte: a elaboração da máquina de estado. Algumas
perguntas simples podem nos ajudar a decidir qual modelo utilizar:
O sistema tem alguma restrição a saídas assíncronas/síncronas?
Utilizar o modelo de Mealy proporcionará um diagrama de estados com uma menor quantidade
de estados?
No nosso exemplo, caso a bomba não esteja recebendo água, ela não deve ser ativada de forma
alguma. Essa restrição é um indicativo de que o modelo de Mealy pode ser uma boa alternativa.
Note que também poderíamos utilizar o Modelo de Moore, mas seria necessário utilizar mais estados
no diagrama, gerando um circuito de maior complexidade e, consequentemente, mais caro de ser
implementado.
ELABORAR O DIAGRAMA DE ESTADOS
Nesse passo, é preciso muito cuidado para não violar as regras dos diagramas de estados
apresentadas em Diagramas de estado e tabela de transição e de saída. Para o nosso exemplo,
propomos o seguinte diagrama de estados:
 
Fonte: EnsineMe
No estado
E0
, a bomba está desligada e esperamos até que a água caia abaixo do nível do sensor
A
para ir para o estado
E1
, no qual a bomba, dado que esteja chegando água na bomba (
C
), é ativada até a água atingir o sensor
B
. Então, a máquina volta ao estado
E0
.
No caso de
BA = 10
, que indicaria um mau funcionamento de um dos sensores, a máquina vai para o estado
E2
, e permanece travada, necessitando de intervenção para fazer os reparos necessários nos sensores
e, então, reiniciar a máquina de estados.
ASSOCIAR CÓDIGOS BINÁRIOS A CADA ESTADO
A forma como associamos os códigos binários a cada um dos estados impacta diretamente na
complexidade da lógica combinacional de próximo estado, principalmente quando trabalhando com
uma máquina com maior quantidade de estados. Infelizmente, não existe maneira prática de achar a
melhor forma de designar os estados, este é um dos passos muito influenciado pela experiência do
projetista.
Em nosso exemplo, temos 3 estados, então precisamos usar pelo menos 2 bits. Escolhemos
E0 = 01
,
E1 = 11
e
E2 = 00
.
ESCREVER A TABELA DE TRANSIÇÃO DE ESTADOS E
SAÍDA
Nesse passo, aproveitamos para checar se não cometemos algum erro no diagrama de estados, seja
ele em relação às regras de construção apresentadas em Diagramas de estado e tabela de
transição e de saída, ou em relação à lógica pensada para cumprir o que foi especificado no
projeto.
Em nosso exemplo, notamos que
C
não influencia a mudança de estados, assim temos:
Estado atual
Próximo estado /
saída se
BA = 00
Próximo estado /
saída se
BA = 01
Próximo estado /
saída se
BA = 10
Próximo estado /
saída se
BA = 11
E0 = 01 11/0 01/0 00/0 01/0
Estado atual
Próximo estado /
saída se
BA = 00
Próximo estado /
saída se
BA = 01
Próximo estado /
saída se
BA = 10
Próximo estado /
saída se
BA = 11
E1 = 11 11/C 11/C 00/0 01/0
E2 = 00 00/0 00/0 00/0 00/0
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
Pela tabela, fica claro que todos os estados preveem os próximos estados para todas as entradas, e
não ocorre de nenhum par de estado atual/entradas resultar em mais de um próximo estado previsto.
Dessa forma, o diagrama de estados proposto está OK!
ESCOLHER O TIPO DE FLIP-FLOP A SER UTILIZADO
Quando tiver liberdade para escolher qual tipo de flip-flop utilizar, recomendamos que escolha o tipo
D
. Como nesse flip-flop, a saída simplesmente copia a entrada. A lógica de próximo estado é
simplesmente o próprio estado, facilitando o projeto.
Em nosso exemplo utilizaremos o flip-flop
D
.
OBTER A LÓGICA COMBINACIONAL DE PRÓXIMO
ESTADO
Como estamos utilizando flip-flops
D
, podemos montar diretamente os mapas de Karnaugh, dado que a lógica combinacional de próximo
estado é o próprio estado futuro. Designando os flip-flops de 2 e 1, de forma que o estado é dado por
Q2Q1
:
 
Fonte: EnsineMe
Repare que no estado não utilizado
Q2. Q1 = 10
utilizamos don’t care, o que favorece a minimização da lógica de próximo estado. Essa abordagem é
conhecida como Projeto Modo Mínimo. Em circuitos críticos, como os de suporte de vida, os
estados não utilizados são direcionados para um estado utilizado predeterminado.
Desse modo, se por alguma interferência externa a máquina for para um estado não previsto,
garante-se que ela retorne para um estado conhecido. Essa abordagem é conhecida como Projeto
Risco Mínimo.
OBTER A LÓGICA COMBINACIONAL DE SAÍDA
Em nosso exemplo, a saída só está ativa em dois casos, assim é fácil extraí-la direto da tabela de
transição estado e saída:
H = Q2 . Q1 .
¯
B .
¯
A . C + Q2. Q1.
¯
B . A . C = Q2 . Q1 .
¯
B . C . (
¯
A + A)
H = Q2 . Q1 .
¯
B . C
 Atenção! Para visualização completa da equação utilize a rolagem horizontal
Por último, note que precisamos ligar o clear e o preset dos flip-flops de forma a criar uma entrada
para inicialização da máquina de estado. Nesse exemplo, é uma boa ideia iniciar no estado
E0 = 01
.
VERIFICANDO O APRENDIZADO
1. (PROVA DE ENGENHEIRO DE EQUIPAMENTOS JÚNIOR – ELETRÔNICA,
2014. PETROBRAS). 
SEJA A SEQUÊNCIA DE ESTADOS A SEGUIR, REPRESENTADA PELOS BITS
Q3Q2Q1Q0
, IMPLEMENTADA POR 4 FLIP-FLOPS
D
. 
 
A LÓGICA MÍNIMA, EM TERMOS DE SOMA DE PRODUTOS, QUE IMPLEMENTA
A ENTRADA
D2
É:
A)
Q1
B)
Q1Q0
C)
Q2Q1
D)
¯
Q2Q1Q0
E)
¯
Q3
¯
Q2Q1Q0
2. ASSINALE A ALTERNATIVA QUE COMPLETA CORRETAMENTE AS
LACUNAS. NA MÁQUINA DE ESTADOS SÍNCRONA OS ESTADOS SÓ PODEM
MUDAR NOS MOMENTOS DEFINIDOS PELO BORDO DESIGNADO DO
RELÓGIO. CONTUDO, NO MODELO _________ A SAÍDA DEPENDE
___________________, PODENDO VARIAR DE FORMA ASSÍNCRONA.
A) Assíncrono, do estado futuro.
B) Mealy, apenas das entradas.
C) Moore, apenas do estado presente.
D) Mealy, estado presente e das entradas.
E) Moore, estado presente e das entradas.
GABARITO
1. (Prova de Engenheiro de Equipamentos Júnior – Eletrônica, 2014. Petrobras). 
Seja a sequência de estados a seguir, representada pelos bits
Q3Q2Q1Q0
, implementada por 4 flip-flops
D
. 
 
A lógica mínima, em termos de soma de produtos, que implementa a entrada
D2
é:
A alternativa "B " está correta.
 
Montando a tabela-verdade de
Q2
:
Estado atual Próximo estado
Q3 Q2 Q1 Q0 Q2
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 1
0 1 0 0 0
Estado atual Próximo estado
0 1 0 1 X
0 1 1 0 X
0 1 1 1 X
1 0 0 0 X
1 0 0 1 X
1 0 1 0 X
1 0 1 1 X
1 1 0 0 X
1 1 0 1 X
1 1 1 0 X
1 1 1 1 X
 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal
Como o flip-flop utilizado é o
D, D2 = Q2
Utilizando o mapa de Karnaugh:
D2 = Q1Q0
2. Assinale a alternativa que completa corretamente as lacunas. Na máquina de estados
síncrona os estados só podem mudar nos momentos definidos pelo bordo designado do
relógio. Contudo, no Modelo _________ a saída depende ___________________, podendo
variar de forma assíncrona.
A alternativa "D " está correta.
 
No Modelo Mealy, a saída depende do estado atual e das entradas. Dessa forma, mesmo sem mudar
de estado, a saída da máquina de estados pode variar devido a uma mudança nas entradas. Assim,
no Modelo de Mealy a saída pode variar de maneira assíncrona.
CONCLUSÃO
CONSIDERAÇÕES FINAIS
Neste tema estudamos os contadores assíncronos e síncronos, multivibradores monoestáveis e
registradores de deslocamento. São estes os circuitos sequenciais clássicos, sendo amplamente
utilizados.
Também aprendemos sobre diagramas de estado, cuja aplicação ultrapassa a fronteira da Eletrônica
Digital, e os passos básicos para podermos projetar máquinas de estado síncronas.
O conhecimento adquirido neste tema será fundamental para a compreensão dos sistemas digitais
modernos, tais como os microprocessadores. Agora,somos capazes de projetar circuitos para
finalidades específicas!
AVALIAÇÃO DO TEMA:
REFERÊNCIAS
CAPUANO, F. G. Sistemas digitais circuitos combinacionais e sequenciais. São Paulo: Érica,
2014.
DACHI, E. P; HAUPT, A. G. Eletrônica digital. São Paulo: Blucher, 2018.
IDOETA, I.V.; CAPUANO, F. G. Elementos de Eletrônica Digital. 41. ed. São Paulo: Érica, 2012.
MENDONÇA, A.; ZELENOVSKY, R. Eletrônica Digital: curso prático e exercícios. 2. ed. Rio de
Janeiro: MZ, 2007.
EXPLORE+
O capítulo 8 do livro Eletrônica Digital, 2ª ed, de Alexandre Mendonça e Ricardo Zelenovsky. Ele
apresenta os mais populares circuitos integrados sequenciais.
CONTEUDISTA
Felipe Gonçalves Serrenho
 CURRÍCULO LATTES
javascript:void(0);

Outros materiais