Você está na página 1de 77

Projeto & Microcontrolador

Prof. Rogério Dumbá


MBA Eng. Sistemas
Conceitos e Circuitos Digitais
A base do microcontrolador esta na eletrônica
digital nas portas lógicas AND, OU, XOU e
inversoras. A partir da associação das portas
lógicas formam-se diversos elementos da
eletrônica digital aplicado aos micro
controladores, como flip-plops,
decodificadores, codificadores, contadores,
latches, buffers, shift registers, entre outros.
Quadro Resumo Circuito Digital
Equivalência entre portas logica
Inversor
Para ser feito um inversor utilizando apenas
uma porta NAND, é necessário unificar as duas
entradas da mesma, dessa forma obtém-se uma
saída negada.

Inversor de NAND
Equivalência entre portas logica

Porta OR
Pode-se obter uma porta OR ligando cada uma
das duas entradas em um inversor, como o que
foi descrito no tópico acima. A partir disso,
ligam-se as duas saídas geradas nas entradas de
uma porta NAND.

Porta OR feita com Porta NAND


Equivalência entre portas logica

Porta AND
Uma porta AND pode ser obtida apenas ligando
um inversor na saída de uma porta NAND.

Porta AND feita com Porta NAND


Equivalência entre portas logica
Universalidade da porta NOR Inversor
Assim como na porta NAND, para se obter um
inversor usando a porta NOR, basta
interconectar todas as entradas, criando assim,
uma só entrada e negando a saída como um
inversor faz.
Inversor feito de Porta NOR
Equivalência entre portas logica

Porta OR
Ao ligar o resultado de uma porta NOR em um
inversor de NOR, equivalerá a uma porta OR.

Porta OR feita de Portas NOR


Equivalência entre portas logica
Porta AND
Para se ter o resultado de uma porta AND usando
apenas portas NOR é necessário ligar um inversor em
cada uma das entradas e, posteriormente, ligar esse
resultado em uma porta NOR. Para finalizar substitua
os inversores, por portas NOR que tenham o mesmo
valor deles, como no item acima.

Porta AND feita de Portas NOR


Equivalência entre portas lógica
Exemplo
Para melhor entendimento, segue este exemplo
de um circuito formado por diferentes portas
lógicas, transformando-o em um circuito de
somente portas NAND e outro circuito só com
portas NOR.
Circuito formado com vários tipos de Portas Lógicas
Equivalência entre portas lógica
Transformando para Portas NAND
O primeiro passo para fazer o circuito acima com
somente portas NAND é trocar cada porta –
INVERSOR, OR, AND - pelas portas NAND
equivalente.
Circuito com só portas NAND
Equivalência entre portas lógica
Ao observar esse circuito, nota-se que há portas
desnecessárias, que acabam repetindo as
operações. Então, o próximo passo é remover
essas portas. Feito isso, o circuito está pronto.

Circuito Pronto com somente portas NAND


Equivalência entre portas lógica
Transformando para Portas NOR
Como na transformação para portas NAND, o
primeiro passo para fazer o circuito é trocar cada
porta - Inversor, OR, AND - pela portas NOR
equivalente.

Circuito com somente portas NOR


Equivalência entre portas lógica

Nesse circuito obtido também existe portas


repetidas. Basta as remover e o circuito estará
pronto.
Circuito Pronto com somente portas NOR
Conceitos Buffers
Os buffers são elementos muito utilizados
em sistemas digitas de microcontrolador
e possuem diversas utilidades, tais como
aumento da capacidade de corrente de
saída fan-out de elementos lógicos,
isolamento de circuitos, conversão de
níveis etc. Toda via a principal utilização é
realmente na ampliação da corrente de
saída de elementos lógicos.
Na verdade, qualquer dispositivo eletrônico que
fornece sinal a outro tem um limite de corrente
de saída.
Este limite, parametrizado pelos fabricantes, e
normalmente chamado fan-out no ramo da
eletrônica digital.
Isso implica dizer que um dispositivo digital tem
um limite máximo de saída e não devemos
ultrapassa-lo sob pena de comprometer o nível
de tensão de saída do dispositivo (devido ao
excesso de corrente).
Conceitos Buffers

Os circuitos buffer são utilizados para aumentar


a capacidade de saída de dispositivos digitais
como barramentos de MCUs ou MPUs
conhecidos como transceptores de barras e ou
drivers de barras.
Tipos de buffer inversores e não inversores,
unidirecionais ou bidirecionais, conversores de
nível (para compatibilizar tecnologias de
barramento diferentes).
Conceitos Buffers
O circuito integrado TTL 7406 é um dispositivo TTL
encapsulado em um invólucro DIP de 14 pinos que contém
seis inversores de buffers/drivers com saídas em coletor
aberto de alta voltagem (máxima de 30V). O dispositivo
converte voltagens em níveis TTL para níveis MOS. O
consumo médio por circuito integrado é da ordem de
30mA.
A (entrada) /Y (saída)
Tabela Verdade
• H (nível lógico alto)
• L (nível lógico baixo) L H
H L
Conceitos Buffers
Tabela Verdade

A (entrada) /Y (saída)
L H
H L

H (nível lógico alto)


L (nível lógico baixo)
Conceitos Buffers
Buffer (octal) 74240
Conceitos Buffers
1OE – Habilitação da saída do primeiro grupo de
buffers (em ‘0’ saídas ativadas em ‘1’ saídas em
alta impedância)
20E - Habilitação da saída do segundo grupo de
buffers (em ‘0’ saídas ativadas em ‘1’ saídas em
alta impedância)
• Fan-out “É o número máximo de dispositivos
eletrônicos que podem ser alimentados de uma
só vez por um outro dispositivo eletrônico,
como um portão lógico, sem que o sinal se
torne fraco de demais.
• A taxa de fan-out de um dispositivo depende de
seu tipo e de sua técnica de construção”.
Conceitos Flip-Flop
Flip-Flops
Os flip-flops são os elementos básicos de
sistemas digitais avançados, com os quais são
construídos contadores, registradores,
registradores de deslocamento, memorias
etc.
Em (eletrônica) e circuitos digitais, o flip-flop ou
multivibrador biestável é um circuito digital
pulsado capaz de servir como uma memória de
um bit.
Um flip-flop tipicamente inclui zero, um ou dois
sinais de entrada, um sinal de clock, e um sinal de
saída, apesar de muitos flip-flops proverem
adicionalmente o complemento do sinal de saída
Conceitos Flip-Flop
Alguns flip-flops também incluem um sinal da
entrada clear, que limpa a saída atual. Como os
flip-flops são implementados na forma de
circuitos integrados, eles também necessitam de
conexões de alimentação. A pulsação ou
mudança no sinal do clock faz com que o flip-
flop mude ou retenha seu sinal de saída,
baseado nos valores dos sinais de entrada e na
equação característica do flip-flop.
Conceitos Flip-Flop
De forma geral podemos representar o flip-flop
como um bloco onde temos 2 saídas: Q e Q',
entrada para as variáveis e uma entrada de
controle (Clock).
A saída Q será a principal do bloco. Este
dispositivo possui basicamente dois estados de
saída.
• Para o flip-flop assumir um destes estados é
necessário que haja uma combinação das
variáveis e do pulso de controle (Clock).
• Após este pulso, o flip-flop permanecerá neste
estado até a chegada de um novo pulso de clock
e, então, de acordo com as variáveis de entrada,
mudará ou não de estado.
Conceitos Flip-Flop
Quatro tipos de flip-flops possuem 8 aplicações
comuns em sistemas de clock não-sequencial:
flip-flop T ("toggle"), flip-flop S-R ("set-
reset"), flip-flop J-K e o flip-flop D ("delay"). O
comportamento de um flip-flop é descrito por
sua equação característica, que prevê a
"próxima" (após o próximo pulso de clock)
saída, , em termos dos sinais de entrada
e/ou da saída atual, .
Conceitos Flip-Flop
Flip-Flop T
Se a entrada T estiver em estado alto, o flip-flop
T (toggle) inverte seu estado sempre que a
entrada de clock sofrer uma modificação. Se a
entrada T foi baixa, o flip-flop mantém o valor
do seu estado. Seu comportamento é descrito
pela seguinte equação característica:
Conceitos Flip-Flop
O símbolo do flip-flop T, onde > é a entrada de
clock, T é a entrada de toggle e Q é informação
de saída armazenada.
Conceitos Flip-Flop
Expandindo o operador XOR e pela tabela
verdade :
Q* → Estado seguinte do Q
T Q Q*
0 0 0
1 1 0
0 1 1
1 0 1
Conceitos Flip-Flop
Flip-flop S-R Síncrono

Um flip-flop S-R Síncrono depende da


habilitação de suas entradas por um sinal de
clock para que essas possam alterar o estado do
mesmo.
Este sinal pode operar de duas formas:
mantendo as entradas ativas durante todo o
período do pulso ou apenas no instante da
mudança de estado do sinal de clock.
• Essas duas formas de operação podem ser
denominadas como modo clocked e modo
triggered, respectivamente.
Conceitos Flip-Flop
O flip-flop "set/reset" ativa (set, muda sua saída
para o nível lógico 1, ou retém se este já estiver
em 1) se a entrada S ("set") estiver em 1 e a
entrada R ("reset") estiver em 0 quando o clock
for mudado.
O flip-flop desativa (reset, muda sua saída para
o nível lógico 0, ou a mantém se esta já estiver
em 0) se a entrada R ("reset") estiver em 1 e a
entrada S ("set") estiver em 0 quando o clock
estiver habilitado.
Se ambas as entradas estiverem em 0 quando o
clock for mudado, a saída não se modifica.

Se, entretanto, ambas as entradas estiverem em


1 quando o clock estiver habilitado, nenhum
comportamento particular é garantido.

Isto é comumente escrito na forma de uma


"tabela verdade".
Conceitos Flip-Flop
Q* → Estado seguinte do Q
Q S R
Q*

0 0 0 X

0 1 1 0

1 0 0 1

1 1 X 0
Conceitos Flip-Flop
Estrutura de um Flip-Flop S-R
Exemplo com a tabela verdade mostrando o
estado anterior: S R Qant Qfim Qfim* DESCRICAO
0 0 0 0 1 Fixa Qfim = Qant

0 0 1 1 0 Fixa Qfim = Qant

0 1 0 0 1 Fixa Qfim = 0
0 1 1 0 1 Fixa Qfim = 0
1 0 0 1 0 Fixa Qfim = 1
1 0 1 1 0 Fixa Qfim = 1
1 1 0 1 1 Não Permitido
1 1 1 1 1 Não Permitido

Legenda: S (Set), R (Reset), Qant (Estado


anterior da saída Q), Qfim (Estado em que a
saída deve assumir "estado futuro" após a
Conceitos Flip-Flop
Flip-flop J-K
O flip-flop J-K aprimora o funcionamento do flip-
flop R-S interpretando a condição S = R = 1 como
um comando de inversão. Especificamente, a
combinação J = 1, K = 0 é um comando para
ativar (set) a saída do flip-flop; a combinação J =
0, K = 1 é um comando para desativar (reset) a
saída do flip-flop; e a combinação J = K = 1 é um
comando para inverter o flip-flop, trocando o
sinal de saída pelo seu complemento. Fazendo J
= K o flip-flop J-K se torna um flip-flop T(Toggle).
Conceitos Flip-Flop
Diagrama de tempos do flip-flop J-K
Conceitos Flip-Flop
O símbolo do flip-flop J-K, onde > é a entrada de clock, J
e K são as entradas de dados, Q é a saída de dados
armazenada e Q' é o complemento de Q.
A equação característica do flip-flop J-K é:
Q* → Estado anterior do Q
Operação do Flip Flop JK

J K Qpróx Comentário
0 0 Qanterior mantém (hold)
0 1 0 reseta
1 0 1 seta
1 1 Qanterior alterna (Toggle)
Conceitos Flip-Flop
Flip-flop D (Data)
O flip-flop D (“data" ou dado, pois armazena o
bit de entrada) possui uma entrada, que é ligada
diretamente à saída quando o clock é mudado.
Independentemente do valor atual da saída, ele
irá assumir o valor 1 se D = 1 quando o clock for
mudado ou o valor 0 se D = 0 quando o clock for
mudado. Este flip-flop pode ser interpretado
como uma linha de atraso primitiva ou um
hold de ordem zero, visto que a informação é
colocada na saída um ciclo depois de ela ter
Conceitos Flip-Flop
O símbolo esquemático de um flip-flop D, onde
> é a entrada de clock, D é a entrada de dados e
Q é a saída de dados.
Q* → Estado posterior do Q

D Q Q*
0 0 0
0 1 0
1 0 1
1 1 1
Conceitos Flip-Flop
O flip-flop pode ser utilizado para
armazenar um bit, ou um digito binário
de informação. A informação armazenada
em um conjunto de flip-flops pode
representar o estado de um
seqüenciador, o valor de um contador, um
caractere ASCII em uma memória de um
computador ou qualquer outra parte de
uma informação.
• Um uso é a construção de máquinas de estado
finito a partir da lógica eletrônica.

• O flip-flop lembra o estado anterior de máquina,


e a lógica digital utiliza este estado para calcular
o próximo estado.
Conceitos Flip-Flop
O flip-flop "T" é útil para contagens. Sinais
repetidos à entrada de clock farão com que o
flip-flop mude seu estado a cada transição de
nível alto-para-baixo da entrada de clock, se sua
entrada T for "1", a saída de um flip-flop pode
ser ligada à entrada clock de um segundo flip-
flop e assim por diante.
A saída final do circuito, considerada com o
conjunto de todas as saídas dos flip-flops
individuais, é uma contagem, em sistema binário,
do número de ciclos da primeira entrada de
clock, até um limite máximo de 2n-1, onde n é o
número de flip-flops utilizados no circuito.
Conceitos Flip-Flop
Um dos problemas com este tipo de contador
(chamado de contador de ripple ou contador de
pulsos) é que a saída é brevemente inválida
conforme ocorre a mudança de pulso através da
lógica. Existem duas soluções para este
problema. A primeira é retirar uma amostra da
saída apenas quando a mesma for válida. A
segunda, mais utilizada, é utilizar um tipo
diferente de contador chamado de contador
síncrono.
• Este utiliza uma lógica mais complexa para garantir que
as saídas do contador mudem todas a um mesmo
período previsível.
• Divisão de frequência: uma "corrente" de flip-flops "T"
utilizados da maneira descrita acima irá funcionar de
modo a dividir a frequência da entrada por 2n na saída
do último flip-flop, aonde n é o número de flip-flops
utilizados entre a entrada e a saída.
Registradores
Os registradores podem ser utilizados para
armazenar dados nos computadores.

Um flip-flop "D" pode representar um dígito de


um número binário. A unidade de controle do
computador envia o sinal de clock no momento
certo para poder capturar estes dados.
Pela família CMOS o flip-flop D é representado
pelo integrado 4013 na série 4000 e pelos
integrados versão HC da série 74XX.
Registradores
Decodificadores / Demultiplexador
Os decodificadores são circuitos integrados
utilizados para transformar um código em outro
(binário em Decimal por exemplo).

Os decodificadores são muito utilizados em


estruturas de endereçamento de memória e
seleção de periféricos em circuito
microprocessador ou microcontrolador.
• Um decodificador é um circuito combinacional
que tem o papel inverso do inverso do
codificador (eletrônica), isto é , converte um
código binário de entrada (natural , BCD,...) de N
bits de entrada em M linha de saída (em que N
pode ser qualquer inteiro e M é um inteiro
menor ou igual a 2N), de modo que cada linha
de saída será ativada por uma única combinação
das possíveis de entrada.
Decodificadores / Demultiplexador
Um decodificador pode ter a forma de um
circuito lógico de múltiplas entradas e múltiplas
saídas, que converte as entradas codificadas em
saídas decodificadas, onde os códigos de
entrada e saída são diferentes. Por exemplo, em
decodificadores BCD n para 2n. As entradas
devem estar habilitadas para o funcionamento
do decodificador, caso contrário, suas saídas
assumem um único código de saída
"desabilitado".
A decodificação é necessária em aplicações
como multiplexação de dados, display de 7
segmentos e decodificação de endereços de
memória.
Decodificadores /
Demultiplexador
O circuito decodificador do exemplo seria uma
porta AND pois a saída de uma porta AND é
"alta" (1) apenas quando todas as entradas são
"altas".
Tal saída é denominada como "saída ativa em
alto". Se em vez de uma porta AND, uma porta
NAND fosse conectada, a saída seria "baixa" (0)
apenas quando todas as entradas fossem
"altas". Tal saída é denominada "saída ativa em
baixo".
Decodificadores /
Demultiplexador

Exemplo: Um decodificador 2 para 4


Registradores de deslocamento

Os registradores de deslocamento podem


possuir uma combinação de entradas e saídas
seriais e paralelas, incluindo as configurações
entrada serial, saída paralela (SIPO) e entrada
paralela, saída serial (PISO).
Existem outra configurações possuindo ambas
as entradas serial e paralela e outra com saídas
serial paralela. Existem também registradores de
deslocamento bi-direcionais, os quais permitem
que se varie a direção do deslocamento da
informação.
Registrador de Deslocamento
As entradas e saídas seriais de um
registrador podem ser conectadas
juntas, de modo a formar um
registrador de deslocamento circular.
Poderiam também ser desenvolvidos
registradores de deslocamento multi-
dimensionais, os quais podem realizar
processamentos mais complexos.
Entrada serial, saída serial
Leitura destrutiva
Este é o tipo mais simples de registrador de
deslocamento. O conjunto de dados é inserido
em 'Data In', e é deslocado para a direita em um
estágio cada vez que o 'Data Advance' é
colocado em nível alto. A cada avanço, o bit da
extrema esquerda, o 'Data In', é deslocado para
a saída do primeiro flip-flop. O bit na extrema
direita, o 'Data Out', é deslocado e então
perdido.
Entrada serial, saída serial

Os dados são armazenados em cada flip-flop, na


saída 'Q', de modo que existem quatro
"espaços" para armazenamento disponíveis
nestas configuração, sendo desta forma um
registrador de deslocamento de 4 bits. Para
exemplificar o padrão do deslocamento,
consideremos que o registrador possua o dado
0000, de modo que todos os espaços para
deslocamento estejam vazios.
Conforme o 'Data In' insere os dados
1,1,0,1,0,0,0,0 (nesta ordem, fornecendo
um pulso ao 'Data Advance' a cada dado,
sendo isto chamado de cloking ou strobing)
no registrador, obtemos o resultado
mostrado na tabela ao lado.
A coluna da esquerda corresponde ao pino
de saída localizado na extrema esquerda da
figura, e assim por diante.
Entrada serial, saída serial

Deste modo a saída completa do registrador é


00001101 (desconsiderando o passo final).

Conforme pode-se observar, se continuassemos


a inserir dados, obteríamos exatamente o
mesmo dado da entrada, porém atrasado em
quatro ciclos do 'Data Advance’.

Este arranjo é o equivalente em hardware de


uma fila.
Além disso, todo o registrador poderia ser zerado
a qualquer momento colocando-se todos os
pinos de reset (R) em nível alto.
Esta configuração realiza uma leitura destrutiva,
visto que os dados são perdidos ao serem
deslocados do bit à exterma direita.
Entrada serial, saída serial

0 0 0 0
1 0 0 0
Leitura destrutiva,
1 1 0 0 visto que os dados
0 1 1 0 são perdidos ao
1 0 1 1
serem deslocados do
0 1 0 1
0 0 1 0
bit à extrema direita.
0 0 0 1
0 0 0 0
Entrada serial, saída serial
Leitura não-destrutiva
A leitura não-destrutiva pode ser obtida
utilizando-se a configuração mostrada abaixo.
Outro pino de entrada é adicionado, o controle
de Leitura/Escrita.

Quando este está em nível alto (write) então o


registrador de deslocamento se comporta
normalmente, avançando a entrada de dados
em uma posição para cada ciclo de clock, e os
dados podem ser perdidos no fim do
resgistrador.
Entretanto, quando o controle R/W é colocado
em nível baixo (read), qualquer dado deslocado
na extrema direita se torna a próxima entrada na
esquerda, sendo assim mantido no sistema.
Deste modo, enquanto o controle R/W estiver em
nível baixo, nenhum dado pode ser perdido do
sistema.
Entrada serial, saída paralela

Esta configuração permite a conversão do


formato serial para o paralelo.

Os dados entram de forma serial, conforme


descrito na sessão acima. Uma vez que os
dados entraram, eles podem ser lidos
todos simultaneamente, ou deslocados
para fora e substituídos.
Entrada paralela, Saída serial
Esta configuração recebe os dados através das
entradas D1 a D4 no formato paralelo. Para
escrever os dados no registrador, o controle de
Escrita/Deslocamento deve estar em nível baixo.
Para deslocar os dados, o controle deve ser
colocado em nível alto e os registradores devem
receber um pulso de clock, desta forma o
circuito atua como um registrador de
deslocamento SISO, com o terminal D1 atuando
como entrada de dados.
Entretanto, caso uma palavra de dados tenham
sido escritos de forma paralela e em seguida
deslocados, a saída de dados, Q, conterá os bits
desta palavra, lidos em ordem.
Entrada paralela, Saída serial
Entrada paralela, Saída paralela

Este tipo de registrador de deslocamento recebe


os dados das entradas paralelas (D0-D3) e o
desloca para as saídas correspondentes (Q0-Q3)
quando os registradores recebem um pulso de
clock. Ele pode ser utilizado como uma espécie
de "histórico", retendo as informações antigas
como entrada em outra parte do sistema, até
estar pronto para receber novas informações,
quando então os registradores recebem um
pulso de clock, e os novos dados são inseridos.
Entrada paralela, Saída paralela

Um dos usos mais comuns dos registradores de


delocamento é a conversão entre interfaces
seriais e paralelas.

Isto é considerado de grande utilidade, pois


muitos circuitos trabalham com grupos de bits
em paralelo, mas as interfaces seriais possuem
uma construção mais simples.
Os registradores de deslocamento também
podem ser utilizados como circuitos de atraso
simples.

Um conjunto de registradores de deslocamento


pode ser conectado em paralelo para uma
implementação em hardware de uma pilha.
Entrada paralela, Saída paralela

Os registradores de deslocamento também


podem ser utilizados com extensores de pulso.
Ao contrário dos multivibradores monoestáveis,
a temporização não depende dos valores dos
componentes.

Eles requerem um clock externo e a precisão da


oscilação é limitada pela granularidade deste
clock.
Entrada paralela, Saída paralela
Entrada paralela, Saída paralela

Registrador deslocamento.

Você também pode gostar