Buscar

arquivos APOSTILADEMICROPROCESSADORESa76664

Prévia do material em texto

Microprocessadores 
 
Eng. Elétrica 
 
 
 
 
 
 
 
 
 Prof. Sandro Rodrigo G. Bastos 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 2 
SUMÁRIO 
 
1. BIESTÁVEIS............................................................................................................................... 3 
1.1. Flip-Flop RS .....................................................................................................................................3 
1.2. Flip-Flop JK ......................................................................................................................................6 
1.3. Flip-Flop T ........................................................................................................................................7 
1.4. Flip-Flop D........................................................................................................................................8 
1.5. Preset e Clear...................................................................................................................................9 
1.6. Flip-Flop JK Mestre-Escravo........................................................................................................... 10 
1.7. Transformação de Biestáveis.......................................................................................................... 12 
1.8. Circuito Anti-Ruído (Debounce) ...................................................................................................... 15 
2. CONTADOR SÍNCRONO.......................................................................................................... 16 
3. MODELO SEQÜENCIAL .......................................................................................................... 23 
4. PAL – ARRANJO LÓGICO PROGRAMÁVEL.......................................................................... 28 
5. MICROPROCESSADOR X MICROCONTROLADOR............................................................... 38 
6. O MICROCONTROLADOR 8051.............................................................................................. 39 
6.1. A Família 8051 ............................................................................................................................... 40 
6.2. Descrição da Pinagem.................................................................................................................... 40 
6.3. Oscilador Interno ............................................................................................................................ 42 
6.4. Reset.............................................................................................................................................. 43 
6.5. A Estrutura de Memória .................................................................................................................. 43 
6.6. Memória de Programa .................................................................................................................... 43 
6.7. Memória de Dados ......................................................................................................................... 44 
6.8. Registradores de Função Especial.................................................................................................. 45 
7. CONJUNTO DE INSTRUÇÕES DO 8051................................................................................. 50 
7.1. Modos de Endereçamento.............................................................................................................. 50 
7.2. Instruções de Transferência de Dados............................................................................................ 51 
7.3. Instruções Aritméticas..................................................................................................................... 54 
7.4. Instruções Lógicas.......................................................................................................................... 56 
7.5. Instruções Booleanas ..................................................................................................................... 57 
7.6. Instruções de Desvio ...................................................................................................................... 58 
8. KIT DIDÁTICO SDM 9431......................................................................................................... 62 
8.1. Operação do Kit Didático ................................................................................................................ 62 
9. ANEXO A: TABELA DE INSTRUÇÕES DO 8051 .................................................................... 64 
10. ANEXO B: SISTEMA MÍNIMO COM O 8051 ............................................................................ 72 
11. BIBLIOGRAFIA ........................................................................................................................ 73 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 3 
1. BIESTÁVEIS 
Podemos considerar dois modelos de circuitos eletrônicos digitais: Combinacional e Seqüencial. Nos 
circuitos combinacionais as saídas dependem apenas das entradas no instante de tempo observado. Os 
circuitos seqüenciais se caracterizam por terem as saídas dependentes das entradas no instante de tempo 
observado e no instante anterior, ou seja, possuem uma seqüência de operação. 
Um dos componentes mais utilizados na implementação de circuitos seqüenciais são os biestáveis 
(popularmente denominados de flip-flops ou latch). Os biestáveis são circuitos que apresentam dois estados 
estáveis (0 e 1) na saída. Quando pela ação de um estímulo externo, em sua(s) entrada(s), passam de um 
estado a outro, permanecendo até que outro estímulo seja dado novamente em sua(s) entrada(s). Por essa 
característica de manter um determinado estado é que os biestáveis são denominados também de elementos 
de memória. 
O biestável funciona, portanto, como elemento armazenador de informação ou de memória. Existem 
basicamente quatro tipos de biestáveis: 
 
- Flip-Flop RS 
- Flip-Flop JK 
- Flip-Flop D 
- Flip-Flop T 
 
Os biestáveis podem ser assíncronos ou síncronos. O tipo assíncrono significa que o biestável não 
depende de relógio (clock) para seu funcionamento. Já o tipo síncrono depende do relógio (clock), podendo ser 
encontrados de duas maneiras: Nível ou Borda. O quadro abaixo mostra a simbologia adotada para o 
funcionamento do nível alto ou baixo e também para a borda de subida ou descida. 
 
Nível Alto Nível Baixo 
 
Borda de Subida Borda de Descida 
Vcc ou NL1 Gnd ou NL0 
 
 
 
 
1.1. Flip-Flop RS 
a) RS Assíncrono (Construído com portas NOU) 
 
Simbologia: Circuito Interno: Tabela Verdade: 
 
 
 
 
 
 
 
OBS: Na situação onde R = S = 1, denominamos de “proibido” porque não tem sentido lógico querer resetar e 
setar ao mesmo tempo. 
 
R S Q 
0 0 Mantém 
0 1 1 
1 0 0 
1 1 Proibido 
R Q
QS
R
Q
S Q
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 4 
b) RS Assíncrono (Construído com portas NE) 
A simbologia e a Tabela Verdade permanecem iguais, modificando apenas o circuito interno. 
 
Circuito Interno: 
 
A seguir, vamos analisar o funcionamento 
deste biestável (RS assíncrono) através do 
“Diagrama deTempos”, que é um dos processos 
mais importantes utilizados na tecnologia digital pela 
facilidade de compreensão do funcionamento do 
circuito. 
 
 
 
Diagrama de Tempos: 
 
 
R 
 
 
 
 
 
S 
 
 
 
 
 
Q 
 
 
c) RS Síncrono (Nível Alto) 
 
Simbologia: Circuito Interno: 
 
 
 
 
 
 
 
Diagrama de Tempos: 
 
 
Ck 
 
 
 
 
 
S 
 
 
 
 
 
R 
 
 
 
 
 
Q 
 
 
R
Q
S
Q
R Q
QS
Ck
R
Q
S
Q
Ck
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 5 
No biestável sincronizado em nível lógico alto, só é alterada a saída, respeitando a tabela verdade do 
tipo RS, enquanto o clock estiver em NL1, conforme pode ser verificado no diagrama de tempos anterior. 
 
d) RS Síncrono (Nível Baixo) 
No biestável sincronizado em nível lógico baixo, só é alterada a saída, respeitando a tabela verdade do 
tipo RS, enquanto o clock estiver em NL0. 
 
Simbologia: Circuito Interno: 
 
 
 
 
 
 
 
 
e) RS Síncrono (Borda de Subida) 
O biestável de borda de subida só tem a sua saída alterada conforme as condições de entrada E na 
transição do clock (de NL0 para NL1), ou seja, mesmo que o clock esteja em nível lógico alto, a saída não se 
altera independente do que foi colocado em suas entradas. 
A diferença do circuito de nível alto para o de borda de subida consiste no acréscimo de um circuito 
diferenciador colocado na entrada do clock fazendo com que o funcionamento do mesmo após o diferenciador 
seja exatamente igual ao de nível alto. 
Verifique pela ilustração ao lado que no instante 
em que o clock vai a nível lógico alto, após o 
diferenciador (ponto X) vai de 0 para 1 e 
instantaneamente volta para 0, permitindo assim 
apenas uma leitura das entradas do biestável, ou seja, 
mesmo que o clock se mantenha em nível lógico alto 
a saída não se altera mesmo modificando as entradas 
do flip-flop. 
A seguir temos o circuito completo do biestável síncrono funcionando à borda de subida. Na 
representação simbólica do flip-flop, aparece um pequeno triângulo que significa “sincronismo à borda”. No 
diagrama de tempos, podemos analisar o funcionamento deste flip-flop. 
 
Simbologia: Circuito Interno: 
 
 
 
 
 
 
 
 
R Q
QS
Ck
R
Q
S
Q
Ck
Ck
C R
Circuito
X
X
Ck
R Q
QS
Ck
R
Q
S
Q
Ck
C
R
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 6 
Diagrama de Tempos: 
 
 
Ck 
 
 
 
 
 
S 
 
 
 
 
 
R 
 
 
 
 
 
Q 
 
 
Observe no diagrama de tempos da ilustração anterior que a saída só tem possibilidade de ser alterada 
no instante em que o clock vai de 0 para 1. 
 
f) RS Síncrono (Borda de Descida) 
O biestável de borda de descida só tem a sua saída alterada conforme as condições de entrada E na 
transição do clock (de NL1 para NL0), ou seja, mesmo que o clock esteja em nível lógico baixo, a saída não se 
altera independente do que foi colocado em suas entradas. 
A diferença do circuito de nível baixo para o de borda de descida consiste no acréscimo de um circuito 
diferenciador colocado na entrada do clock após a porta inversora, fazendo com que o funcionamento do 
mesmo após o diferenciador seja exatamente igual ao de nível baixo. A figura seguinte mostra o circuito 
completo e a simbologia do biestável síncrono funcionando à borda de descida. 
Na representação simbólica do flip-flop aparece um pequeno triângulo e uma bolinha que significa 
“sincronismo à borda de descida”. Caso seja construído o diagrama de tempos que representa esse biestável, 
é conveniente lembrar que a saída só poderá sofrer alteração na transição do clock de NL1 para NL0. 
 
Simbologia: Circuito Interno: 
 
 
 
 
 
 
 
 
1.2. Flip-Flop JK 
O biestável JK só existe na configuração borda de subida ou descida, não sendo possível existir no 
formato assíncrono ou em nível. A seguir temos o símbolo lógico, a tabela verdade e um diagrama de tempos 
como exemplo. Perceba que a tabela verdade do flip-flop JK é muito parecida com a do tipo RS, sendo 
diferenciada apenas na última linha da tabela. 
O biestável JK não pode existir na configuração em nível devido à condição de inversão do sinal de 
saída, ou seja, imagine um JK funcionando em nível alto: quando fosse colocada nas entradas J = 1 e K = 1 e o 
clock em nível lógico alto, a saída ficaria invertendo (0 → 1 → 0 → 1 .....) na ordem de microssegundos 
enquanto o clock se mantiver em nível lógico alto, perdendo assim o controle de funcionamento do flip-flop. Por 
essa razão, só é possível existir o biestável JK funcionando a borda de descida ou subida, pois quando o 
R Q
QS
Ck
R
Q
S
Q
Ck
C
R
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 7 
relógio estiver na transição o flip-flop faz apenas uma única leitura das condições de entrada, portanto só 
inverte a saída uma vez. 
 
Simbologia: Tabela Verdade: 
J K Q 
0 0 Mantém 
0 1 0 
1 0 1 
1 1 Inverte 
 
Diagrama de Tempos: 
 
Ck 
 
 
 
 
 
 
J 
 
 
 
 
 
 
K 
 
 
 
 
 
 
Q 
 
 
 
 
1.3. Flip-Flop T 
O biestável tipo T só existe na configuração borda de subida ou descida, pelo mesmo motivo justificado 
no biestável tipo JK. Para melhor compreensão, vide abaixo o símbolo lógico, sua tabela verdade e um 
diagrama de tempos como exemplo. 
 
Simbologia: Tabela Verdade: 
T Q 
0 Mantém 
1 Inverte 
 
Diagrama de Tempos: 
 
Ck 
 
 
 
 
 
 
T 
 
 
 
 
 
 
Q 
 
 
 
 
 
 
T Q
QCk
 
J Q
QK
Ck
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 8 
1.4. Flip-Flop D 
O flip-flop tipo D é o mais fácil dos biestáveis, pois o sinal que estiver em sua entrada (D) é o mesmo que 
vai parar na saída (Q). Pode ser encontrado com ou sem clock. O flip-flop tipo D assíncrono não tem muita 
utilidade, pois uma vez que a saída copia a entrada instantaneamente (não tem clock), o seu funcionamento 
deixa de ter sentido a menos que a intenção seja o de gerar um pequeno “delay” (atraso). 
 
a) D Assíncrono 
 
Simbologia: Circuito Interno: Tabela Verdade; 
 
 
 
 
 
 
 
Diagrama de Tempos: 
 
DQ 
 
 
 
 
b) D Síncrono (Nível Alto) 
 
A tabela verdade permanece igual, mudando a simbologia e o diagrama de tempos. Também existe o 
biestável tipo D funcionando em nível baixo. 
 
Simbologia: 
 
 
 
 
Diagrama de Tempos: 
 
Ck 
 
 
 
 
 
 
D 
 
 
 
 
 
 
Q 
 
 
 
 
 
D Q 
0 0 
1 1 
D
Q
Q
Q
D Q
D Q
QCk
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 9 
c) D Síncrono (Borda de Subida) 
 
Também pode ser encontrado o biestável tipo D funcionando a borda de descida. 
 
Simbologia: 
 
 
 
 
Diagrama de Tempos: 
 
Ck 
 
 
 
 
 
 
D 
 
 
 
 
 
 
Q 
 
 
 
 
1.5. Preset e Clear 
O biestável que contém estes dois terminais adicionais (preset e clear) é o mais completo que existe, 
pois possibilita ao usuário do circuito forçar a saída a ser “0” ou “1”, independente das condições de entrada e 
do clock. 
A função preset força a saída em NL1 nas seguintes condições (Clear = 1 e Preset = 0), ou seja, o 
circuito foi “pré-setado” enquanto que a função clear força a saída em NL0 nas seguintes condições (Clear = 0 
e Preset = 1). 
É importante lembrar que tanto o preset quanto o clear são funções soberanas e isso significa que a 
saída é forçada conforme a necessidade do usuário independente da entrada e do clock. 
Como exemplo, a seguir tem um flip-flop tipo RS síncrono com borda de subida, e com os terminais de 
Preset e Clear. Os outros biestáveis também podem ser encontrados nesta configuração. A tabela verdade 
apresenta mais duas entradas (Preset e Clear). Verifique na tabela que quando forçamos uma saída através do 
preset ou clear independente do que tenha na entrada R ou S, a mesma permanece inalterada. 
 
Simbologia: Circuito Interno: 
 
 
 
 
 
 
 
 
 
 
D Q
QCk
R
Q
S
Q
Ck
C
R
Cl
Pr
R Q
QS
Ck
Pr
Cl
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 10 
Tabela Verdade: 
 
Pr Cl R S Q 
0 0 X X Proibido 
0 1 X X 1 
1 0 X X 0 
1 1 0 0 Mantém 
1 1 0 1 1 
1 1 1 0 0 
1 1 1 1 Proibido 
 
1.6. Flip-Flop JK Mestre-Escravo 
Um biestável mestre-escravo (master-slave) é uma combinação de dois flip-flops sincronizados, onde o 
primeiro é o mestre e o segundo é o escravo. A figura a seguir mostra o circuito e um diagrama de tempos que 
representa o funcionamento deste tipo de biestável. 
 
Circuito Interno: 
Q
Q
J Qm
K
Qm
Ck
MESTRE ESCRAVO
 
Diagrama de Tempos: 
 
Ck 
 
 
 
 
 
 
J 
 
 
 
 
 
 
K 
 
 
 
 
 
 
 
Qm 
 
 
 
 
 
 
 
Q 
 
 
 
 
Na subida do pulso de clock, os valores introduzidos nas entradas J e K acionam o circuito do mestre. 
Logo após a descida do pulso do clock, o circuito do escravo é acionado copiando a mesma saída ocorrida no 
mestre Qm. 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 11 
Quando o clock assume nível lógico alto, as portas lógicas do mestre modificam sua saída (Qm) 
conforme os valores introduzidos nas entradas J e K. Neste momento, o escravo fica desabilitado devido a 
porta inversora do circuito elétrico, fazendo com que a saída do circuito (saída do escravo) fique inalterada. 
Quando o clock assume nível lógico baixo, as portas lógicas do mestre ficam desabilitadas, o que 
impede o acesso dos valores introduzidos nas entradas J e K. Neste momento as portas lógicas do escravo 
são habilitadas permitindo a ação do mestre sobre o escravo, ou seja, as saídas do mestre passam a ser as 
entradas do escravo, garantindo assim a execução do funcionamento do biestável conforme previsto. 
Para o circuito executar corretamente a tabela verdade do biestável JK, as entradas J e K não devem 
mudar enquanto o clock estiver em nível lógico alto. Por exemplo: se J = 0, K = 0 e Q = 1, é esperado que a 
saída não mude após a aplicação de um pulso de clock. Contudo, se enquanto o clock estiver em nível lógico 
alto ocorrer um transitório na entrada K, ou seja, K assume o valor 1 e volta em seguida para 0, então ocorrerá 
mudança na saída após a descida do pulso do clock. Isto significa que não devemos usar esse tipo de flip-flop 
em ambientes nos quais as entradas J e K possam mudar enquanto o clock estiver em NL1. Neste caso, 
devemos usar o biestável comum. 
 
Exercício 1: Dado o circuito, desenhe as formas de onda nas saídas Q0, Q1 e Q2, considerando que 
inicialmente estas saídas estão em nível lógico baixo. 
 
E T
Q0
Q0
J Q1
Q1K
R Q2
Q2S
Ck
 
 
E
Ck
Q0
Q1
Q2
t
t
t
t
t
 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 12 
Exercício 2: Dado o circuito, desenhe as formas de onda nas saídas Qa, Qb e Qc, considerando que 
inicialmente estas saídas estão em nível lógico baixo. 
 
 
Exercício 3: Dado o circuito, desenhe as formas de onda nas saídas Qa, Qb e Qc, considerando que 
inicialmente estas saídas estão em nível lógico baixo. 
 
 
1.7. Transformação de Biestáveis 
A partir de um flip-flop, pode-se construir um outro qualquer. Basta fazer a correspondência entre a 
operação (tabela verdade) do biestável que se tem e a operação do biestável que se deseja. Para um melhor 
entendimento, veja o exemplo: 
 
E
CK
D Qb
Qb
J
K
Qc
Qc
R
S
Qa
Qa
CK
t
t
t
t
t
E
Qa
Qb
Qc
E
CK
T Qb
Qb
J
K
Qc
Qc
R
S
Qa
Qa
CK
t
t
t
t
t
E
Qa
Qb
Qc
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 13 
Exemplo: A partir do flip-flop tipo RS transformar no flip-flop tipo T. 
 
O primeiro passo é desenhar as tabelas verdade do flip-flop que se tem e o desejado. Estas tabelas 
representam o que acontecerá com a saída conforme as condições das entradas, por exemplo: na tabela do 
tipo T, quando a saída QN = 0 e na entrada do flip-flop T for colocado T = 0, a saída futura será QN+1 = 0. 
 
 Flip-Flop Desejado Flip-Flop Atual 
T QN →→→→ QN+1 R S QN →→→→ QN+1 
0 0 → 0 0 0 0 → 0 
0 1 → 1 0 0 1 → 1 
1 0 → 1 0 1 0 → 1 
1 1 → 0 0 1 1 → 1 
 1 0 0 → 0 
 1 0 1 → 0 
 1 1 0 → X 
 1 1 1 → X 
 
A partir das tabelas verdade obtemos as equações que vão representar as entradas do flip-flop (que se 
tem), da seguinte maneira: 
 
 T 
 QN 0 1 
0 X 0 
1 0 1 
 
 R =T.Q S = T.Q 
 
Para preencher os valores internos dos Mapas de Karnaugh, deve-se analisar de forma independente 
cada célula, por exemplo: verifique que a primeira célula de cada um dos Mapas de Karnaugh representa que a 
saída QN = 0 e será colocado na entrada T = 0; assim, consultando a tabela verdade do flip-flop (desejado) 
nota-se que a saída vai de 0 para 0 (QN = 0 → QN+1 = 0). Procura-se então na outra tabela verdade (flip-flop 
atual) o mesmo efeito, concluindo-se que isto ocorre em duas oportunidades: para R = 0 e S = 0 e também 
para R = 1 e S = 0. Portanto R é irrelevante (já que pode ser R = 0 ou R = 1) enquanto que S com certeza é “0”. 
Repare então que na primeira célula do Mapa de 
Karnaugh da esquerda (representa a equação da entrada R) 
foi preenchida com irrelevância “X”, enquanto que na primeira 
célula do Mapa de Karnaugh da direita (representa a equação 
da entrada S) foi preenchida com “0”. As demais células 
seguem o mesmo raciocínio para preenchimento. 
Uma vez que os dois Mapas de Karnaugh foram 
inteiramente preenchidos, devem-se obter as equações. 
Obtidas as equações, basta implementar o circuito com o flip-
flop que se tem, conforme ilustra a figura ao lado. 
 
 T 
 QN 0 1 
0 0 1 
1 X 0 
 
R Q
S
Ck
T Q
Q Q
Flip-Flop Tipo T 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 14 
Exercício 4: A partir do flip-flop tipo JK transformar no flip-flop tipo D. 
 
Resposta: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Exercício 5: A partir do flip-flop tipo RS transformar no flip-flop tipo JK. 
 
Resposta: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 15 
 
1.8. Circuito Anti-Ruído (Debounce) 
É um circuito utilizado para reduzir os problemas provocados por chaves nos circuitos digitais. As chaves 
podem ter problemas na transição de um terminal para outro, deixando de fazer contato com os terminais por 
um breve período de tempo. Outro problema é o mal-contato por problemas de zinabre, ferrugem, etc. 
Na figura seguinte temos um exemplo de circuito de debounce, além das formas de onda nos pontos A e 
B (contatos da chave) e o ponto S (saída do circuito). 
 
 
 
Observe no circuito que no ponto em que a chave está encostada (A ou B), o terminal da porta NE em 
questão fica em nível lógico baixo, pois a corrente circula do Vcc até o Gnd, sendo dissipada por completo pelo 
resistor. Claro que no ponto em que a chave não está encostada, o terminal da porta NE fica em nível lógico 
alto. Assim, sempre que se desejar enviar nível lógico alto para o circuito digital deve-se colocar a chave na 
posição “A”; para enviar nível lógico baixo deve-se colocar a chave na posição “B”. 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 16 
2. CONTADOR SÍNCRONO 
Uma combinação binária presente nas saídas do contador é denominada de “estado do contador”. A 
seqüência das combinações binárias assumidas pelas saídas do contador em função dos pulsos do clock pode 
ser natural ou não. Por exemplo: podemos projetar um contador para assumir uma seqüência de estados que 
corresponde a decimais consecutivos crescentes (0, 1, 2, 3, ...) ou decrescentes (..., 3, 2, 1, 0), ou ainda, para 
assumir uma seqüência não natural (7, 3, 1, 4, 0, 2). Para melhor entendermos o procedimento a ser seguido 
para executar uma contagem qualquer que se fizer necessário, vamos adotar um exemplo e a partir deste 
poderemos desenvolver qualquer outra contagem. 
 
Exemplo: Implemente o circuito "contador síncrono" de acordo com a seqüência abaixo, utilizando apenas flip-
flops do tipo RS. 
 
 
 
 
 
 
 
 
 
Uma vez definida a ordem da contagem através de um fluxograma denominado de “Diagrama de 
Estados”, devemos agora construir a “Tabela de Transição” do biestável escolhido. Neste caso, devemos partir 
da tabela verdade do biestável RS, conforme explicação a seguir. 
 
R S Q QN →→→→ QN+1 R S 
0 0 Mantém 0 → 0 
0 1 1 0 → 1 
1 0 0 1 → 0 
1 1 Proibido 1 → 1 
 
O preenchimento da tabela de transição é feito a partir da análise feita na tabela verdade do biestável a 
ser utilizado. A primeira coluna da tabela de transição refere-se à passagem da saída atual para a saída futura 
quando se introduzir um valor para as entradas R e S do flip-flop em questão. Por exemplo: analisando a 
primeira linha da tabela de transição, pergunta-se: 
 
“Qual valor devemos introduzir nas entradas R e S do flip-flop de tal maneira que a saída atual vá de 
NL0 para uma saída futura também igual a NL0?”. 
 
Resposta: Existem duas possibilidades: “R = 0 e S = 0” ou “R = 1 e S = 0”. Portanto, como a entrada R 
uma vez é NL0 e a outra vez é NL1, então tanto faz seu nível lógico, ou seja, é irrelevante (don’t care X); 
enquanto que a entrada S em ambas as situações é NL0, então com certeza essa entrada tem que ser NL0. 
Desenvolvendo esse mesmo raciocínio, podemos então preencher toda a tabela de transição do biestável 
Diagrama de Estados 
6, 1
4, 1
5, 1
2, 10, 1
1, 07, 0
3, 0
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 17 
facilmente. Obviamente podemos concluir que cada biestável tem a sua própria tabela de transição. Concluída 
a tabela de transição, o próximo passo é a construção da “Tabela Lógica de Contagem”, conforme mostrado 
abaixo. 
 
TABELA LÓGICA DE CONTAGEM 
ESTADOS FLIP-FLOPS SAÍDA 
DEC. QA QB QC RA SA RB SB RC SC 
0 0 0 0 
1 0 0 1 
2 0 1 0 
3 0 1 1 
4 1 0 0 
5 1 0 1 
6 1 1 0 
7 1 1 1 
 
A coluna de “ESTADOS” é colocada na ordem crescente independente da ordem da contagem. Vamos 
analisar a primeira linha da tabela: 
Verifique que na primeira linha o estado representativo em decimal é o “0”, ou seja, QA = 0, QB = 0 e QC 
= 0 e a partir daí verifica-se no diagrama de estados qual é o próximo estado pretendido após o pulso de clock. 
No caso do nosso exemplo vai do estado “0” para o estado “4”. A situação a seguir é verificar que para ir do 
estado “0” para o “4”, o QA vai de NL0 para NL1, ou seja, de “0 → 1”. Com essa informação, deve-se ir até a 
tabela de transição do biestável RS e observar o que acontece se a saída for de “0” para “1”. Nesse caso o R = 
0 e S = 1, portanto concluímos que na primeira linha (estado 0) o RA fica igual a “0” e o SA igual a “1”, devendo 
ser preenchido na “Tabela Lógica de Contagem”. 
Para preencher a coluna do RB e SB segue-se a mesma lógica, ou seja, verifica-se que para ir do estado 
“0” para o estado “4” o QB vai de NL0 para NL0 (0 → 0). Consultando então a tabela de transição do flip-flop RS 
verifica-se que nesse caso o R = X e o S = 0, portanto RB = X e SB = 0. Finalmente em relação ao RC e SC 
verifica-se que para ir do estado “0” para o estado “4” o QC vai de NL0 para NL0 (0 → 0). Consultado a tabela 
de transição verifica-se que o R é igual à irrelevância e o S igual a 0, portanto RC = X e SC = 0. A coluna SAÍDA 
é preenchida com relação ao estado em que se está analisando,por exemplo, no estado “0” verifica-se no 
diagrama de estados que a saída desejada é NL1. Portanto, no estado “0” temos SAÍDA = 1. As demais linhas 
da tabela lógica de contagem seguem o mesmo raciocínio. O próximo passo é a obtenção das equações de 
cada entrada dos flip-flops (RA, SA, RB, SB, RC, SC e SAÍDA). Para isso, basta transpor os dados de cada 
entrada de cada biestável para as tabelas de Veitch-Karnaugh a seguir. 
 
OBTENÇÃO DAS EQUAÇÕES 
 
 QA QB 
 QC 00 01 11 10 
0 
1 
 
 RA = SA = 
 
 QA QB 
 QC 00 01 11 10 
0 
1 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 18 
 
 QA QB 
 QC 00 01 11 10 
0 
1 
 
 RB = SB = 
 
 QA QB 
 QC 00 01 11 10 
0 
1 
 
 RC = SC = 
 
 QA QB 
 QC 00 01 11 10 
0 
1 
 
 SAÍDA = 
 
Cada Mapa de Karnaugh pertence a uma das entradas dos biestáveis. Para o preenchimento dos Mapas 
de Karnaugh, basta pegar o dado referente ao cruzamento de cada combinação de QA, QB e QC da tabela 
lógica de contagem com a entrada escolhida do biestável. A partir das equações obtidas, o próximo passo é a 
implementação do circuito eletrônico utilizando os biestáveis pré-determinados pelo projeto. 
 
CIRCUITO ELETRÔNICO 
 
 
 
RA QA
QASA
RB QB
QBSB
RC QC
QCSC
 
 
 
 
 
O exemplo dado possibilita o entendimento do raciocínio lógico para criação de qualquer seqüência de 
contagem, porém, caso o interesse seja simplesmente um contador crescente ou decrescente os circuitos 
eletrônicos a seguir ilustram uma maneira simples de criação desse tipo de contador. 
 QA QB 
 QC 00 01 11 10 
0 
1 
 
 QA QB 
 QC 00 01 11 10 
0 
1 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 19 
 
Pulsos Contador Crescente Contador Decrescente 
(Clock) D C B A D C B A 
0 0 0 0 0 1 1 1 1 
1 0 0 0 1 1 1 1 0 
2 0 0 1 0 1 1 0 1 
3 0 0 1 1 1 1 0 0 
4 0 1 0 0 1 0 1 1 
5 0 1 0 1 1 0 1 0 
6 0 1 1 0 1 0 0 1 
7 0 1 1 1 1 0 0 0 
8 1 0 0 0 0 1 1 1 
9 1 0 0 1 0 1 1 0 
10 1 0 1 0 0 1 0 1 
11 1 0 1 1 0 1 0 0 
12 1 1 0 0 0 0 1 1 
13 1 1 0 1 0 0 1 0 
14 1 1 1 0 0 0 0 1 
15 1 1 1 1 0 0 0 0 
 
CONTADOR CRESCENTE: 
 
J Q
QK
Ck
J Q
QK
Ck
J Q
QK
Ck
J Q
QK
Ck
A B C D
1
1
1
1
1
1
1
1
Clock
 
 
CONTADOR DECRESCENTE: 
 
J Q
QK
Ck
J Q
QK
Ck
J Q
QK
Ck
J Q
QK
Ck
A B C D
1
1
1
1
1
1
1
1
Clock
 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 20 
Nos circuitos eletrônicos das figuras anteriores, devemos considerar que o estado inicial é igual a “0” no 
contador crescente (DCBA = 0000) enquanto que o estado inicial é igual a “15” no contador decrescente 
(DCBA = 1111). 
Simulando os circuitos, verifica-se que a cada pulso de clock (automático ou manual) os biestáveis 
mudam de estado de forma crescente ou decrescente. Observa-se que a diferença de um circuito para outro se 
encontra apenas nos clocks dos biestáveis B, C e D, ou seja, enquanto que no contador crescente os clocks 
estão ligados nas saídas normais (Q) do biestável anterior, no contador decrescente estão ligados nas saídas 
invertidas (/Q) do biestável anterior. 
 
Exercício 1: Implemente o circuito "contador síncrono" de acordo com a seqüência abaixo, utilizando apenas 
flip-flops do tipo RS. 
2, 0
3, 1
0, 0
1, 1
 
 
Resposta: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 21 
 
Exercício 2: Implemente o circuito "contador síncrono" de acordo com a 
seqüência ao lado, utilizando apenas flip-flops do tipo T. 
 
 
 
Resposta: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7, 0
6, 0
4, 1
1, 0 0, 1
3, 1
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 22 
 
Exercício 3: Implemente o circuito "contador síncrono" de acordo com a 
seqüência abaixo, utilizando apenas flip-flops do tipo JK. 
 
 
 
 
 
 
Resposta: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5, 1
3, 1
4, 0
2, 0
1, 1
7, 1
6, 0
0, 0
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 23 
3. MODELO SEQÜENCIAL 
Existem dois tipos de modelos de estruturas digitais: combinatório e seqüencial. 
Circuito Combinatório: As saídas do sistema são funções booleanas binárias apenas das entradas, ou 
seja, o conjunto de saídas fornecido pelo sistema num instante “t” é perfeitamente determinado conhecendo-se 
o conjunto das variáveis de entrada aplicado a ele nesse instante. 
 
Sistema Combinatório
e1
e2
en
s1 = f1(e1, e2, ..., en)
s2 = f2(e1, e2, ..., en)
sm = fm(e1, e2, ..., en)
 
 
Circuito Seqüencial: Neste caso, as saídas são funções booleanas (binárias) não apenas das entradas, 
mas também do estado interno do sistema seqüencial. Estas funções podem ser definidas de duas maneiras 
distintas (porém equivalentes) de acordo com a adoção do modelo de Mealy ou de Moore para representação 
da máquina seqüencial. 
 
- Modelo de Moore: A função de saída é determinada pelo estado presente, e a atualização de 
estado (futuro) depende da entrada presente, e do próprio estado. 
 
Equação de Saída: S(tN) = f[X(tN)] 
Equação de Estado: X(tN + 1) = g[X(tN) e E(tN)] 
Onde: E e S → entradas e saídas do sistema 
 X → estado interno 
 F e G → são funções da álgebra binária 
∆ → representa um elemento de memória, capaz de armazenar o estado interno do sistema 
durante um certo tempo t. 
 
- Modelo de Mealy: Neste modelo, tanto a função de saída com a de atualização de estado, 
dependem da entrada e do estado presente. 
 
Equação de Saída: S(tN) = f[X(tN) e E(tN)] 
Equação de Estado: X(tN + 1) = g[X(tN) e E(tN)] 
Onde: E e S → entradas e saídas do sistema 
 X → estado interno 
 F e G → são funções da álgebra binária 
∆ → representa um elemento de memória, capaz de armazenar o estado interno do sistema 
durante um certo tempo t. 
 
Analisando-se os modelos descritos, percebe-se que o Modelo de Moore é um caso particular do Modelo 
de Mealy; porém, ambos são equivalentes. A compreensão do funcionamento do Modelo de Moore ou mesmo 
o de Mealy torna-se muito difícil sem que setenha visto exemplos práticos, portanto, é importante o estudante 
G FE X S
G FE X S
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 24 
de sistemas digitais voltar a analisar os modelos descritos anteriormente logo após o entendimento da 
representação de problemas através do processo da “Tabela Primitiva de Fluxo” que será estudado a seguir. 
 
TABELA PRIMITIVA DE FLUXO 
 
É um mecanismo de descrição de tarefas seqüenciais, e como tal, deve permitir que se represente de 
forma precisa o comportamento do sistema em estudo. Como os sistemas estudados neste curso processam 
informações digitais e evoluem por estados internos, esta tabela deve fixar estes estados e seu 
relacionamento. Deve também permitir o conhecimento das saídas do sistema para um determinado conjunto 
de entradas que lhe foi aplicado. 
 
 Entradas 
 Estados 00 01 11 10 
0 
1 
2 
3 
4 
5 
 
A tabela primitiva de fluxo tem a forma mostrada acima, onde as colunas representam todas as 
combinações possíveis das entradas permitidas no sistema, e as linhas representam os estados internos tidos 
como necessários. A construção da tabela primitiva de fluxo se faz na medida em que a tarefa vai sendo 
descrita, e tem como característica básica possuir apenas um estado estável por estado interno (um estado 
estável por linha da tabela). Um determinado conjunto de entradas permitidas (identificação das colunas), 
aplicadas quando o sistema se encontra em um determinado estado interno (identificação da linha), define uma 
única célula da tabela primitiva de fluxo, que será denominado de “Estado Total” do sistema. Nesta célula 
deverá constar o próximo estado interno (atualização de estado) e as saídas que o sistema apresenta para o 
conjunto de entradas que lhe foi aplicado. A tarefa estará com sua descrição completa, quando todas as 
células (estados totais) da tabela primitiva tiverem sido preenchidas. 
Segue um exemplo de preenchimento da tabela primitiva de fluxo na solução de problemas elementares: 
 
Exemplo: Considere o dispositivo conforme esquematizado abaixo: 
 
D
Motores
E
Botão M
Carro
Contato
A
Contato
B
D
E
 
X, S1 S2 
Próximo 
Estado 
Saídas 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 25 
 
Nesta figura, D (direita) e E (esquerda) são motores alimentados por relês do mesmo nome. Quando E é 
alimentado, o carro se desloca da direita para a esquerda; quando D é alimentado, o carro se desloca da 
esquerda para a direita. A e B são dois contatos de fim de curso indicando que o carro se encontra em uma 
destas duas posições. Deseja-se descrever um ciclo de operação do carro tal que, se for acionado o botão M 
quando o carro estiver em repouso em A, ele deve deixar o contato A, ir até B e voltar novamente ao contato A, 
onde pára e espera que o botão de pressão M seja novamente acionado. Supor também que sempre que o 
carro deixar A iniciando o movimento, não será permitido apertar novamente o botão M até que o ciclo seja 
completado. 
Para construir a tabela primitiva de fluxo do problema, deve-se inicialmente definir suas entradas e 
saídas: 
 
Entradas: Botão M (inicia o movimento do carro) 
 Contato A (fim de curso) 
 Contato B (fim de curso) 
Saídas: Relê D (motor da direita) 
 Relê E (motor da esquerda) 
 
O fato de o sistema possuir três entradas binárias que são: M, A e B, permite combinar estas entradas 
de 23 = 8 maneiras distintas, fazendo com que a tabela de fluxo possua um máximo de 8 colunas. Admita que, 
por imposição do projeto, nunca irá ocorrer A = 1 e B = 1 ao mesmo tempo. Isto elimina a necessidade de 
analisar duas colunas (011 e 111) da tabela. 
 
TABELA PRIMITIVA DE FLUXO 
 
 M A B 
 Estados 000 001 011 010 110 111 101 100 
0 X X X 0, 00 1, 00 X X X 
1 3, 01 X X 2, 01 1, 01 X X 6, 01 
2 3, 01 X X 2, 01 X X X X 
3 3, 01 4, 01 X X X X X X 
4 5, 10 4, 10 X X X X X X 
5 5, 10 X X 0, 10 X X X X 
6 3, 01 X X X X X X 6, 01 
 
 
 
 
 
 
 
Continuando a análise da tabela primitiva de fluxo, concluímos também que: como M é um botão de 
pressão, e supondo que ele não pode ser apertado durante o percurso do carro, admitimos que não é possível 
ter M = 1 e B = 1, o que elimina mais uma coluna (101) da tabela, restando apenas 5 colunas para serem 
6, 01 
Próximo Estado 
Interno Saídas (E, D) 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 26 
analisadas, que correspondem ao conjunto de entradas permitidas no sistema. A descrição a seguir deve ser 
acompanhada pela tabela já preenchida. 
Escolher um estado inicial de partida (estado 0) que será estável, e corresponde ao carro estacionado 
em repouso sobre o contato A. Tem-se portanto M = 0 (botão não foi apertado), A = 1 (contato A acionado pelo 
carro) e B = 0 (contato B não acionado). As saídas nesse caso serão E = 0 e D = 0, significando que o carro se 
encontra parado. 
O botão de pressão M será acionado, e o sistema passa a um novo estado 1, que corresponde a ligar o 
motor que desloca o carro para a direita. A partir deste ponto podem ocorrer três hipóteses: 
 
- O botão M é solto antes que o carro deixe o contato A. 
- O carro deixa o contato A, e a seguir o botão M é solto pelo operador. 
- O carro deixa o contato A ao mesmo tempo em que o botão M é solto. 
 
Na primeira hipótese, o sistema passa a um novo estado 2 (M = 0, A = 1, B = 0, E = 0 e D = 1), onde o 
motor D continua ligado e deixa o contato A em direção de B, fazendo com que A passe a NL0 e o sistema a 
um novo estado 3 (M = 0, A = 0, B = 0, E = 0 e D = 1). Ele permanece neste estado até que o carro alcance o 
contato B que levará o sistema ao estado 4 (M = 0, A = 0, B = 1, E = 1 e D = 0) invertendo-se a posição dos 
motores E e D, fazendo desligar o motor D e ligar o motor E para que o carro volte em direção ao contato A. 
Quando isto ocorre, o contato B volta novamente a NL0, levando o sistema a um novo estado 5 (M = 0, A = 0, 
B = 0, E = 1 e D = 0) no qual ele permanece até que o carro chegue em A. 
Ao acionar o contato A, o carro faz com que o sistema volte ao estado 0, que é um estado estável 
(estado inicial), onde ele estaciona tendo completado o ciclo desejado. 
No caso de termos a segunda hipótese, passamos do estado 1 ao estado 6 (M = 1, A = 0, B = 0, E = 0 e 
D = 1), com o carro deixando o contato A em direção a B. Quando o botão M é solto, ele volta ao estado 3, 
recaindo no ciclo anterior e a partir daí segue a mesma seqüência. 
Na terceira hipótese, passamos do estado 1 diretamente ao estado 3 (M = 0, A = 0, B = 0, E = 0 e D = 1), 
recaindo no ciclo anterior. Os valores “X” que aparecem na tabela primitiva de fluxo são condições irrelevantes 
que, por imposição do projeto, nunca ocorrerão durante o funcionamento do sistema. 
 
Exercício 1: Implemente a tabela de fluxo do dispositivo da figura ao 
lado. Inicialmente o tanque está vazio, e a bomba deve ser acionada 
automaticamente até o nível de água no tanque atingir o sensor N2, 
então se deve desligar a bomba e só voltar a ligá-la quando o nível 
atingir N1. 
Considere: N1 e N2 (=1 presença de água; =0 ausência de água). 
B (=1 bomba ligada; =0 bombadesligada). 
 
 
Resposta: 
 
 
 
 
 
 
 
Bomba
B
N2
N1
V
Tanque
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 27 
Exercício 2: Um disco é colocado em rotação por um 
motor M. Na posição inicial, o disco pressiona um contato 
X. O operador deve acionar o motor ao tocar o botão de 
pressão B. O disco deverá então percorrer um volta 
completa e parar novamente (desligando o motor) quando 
voltar à posição inicial. Determine a tabela de fluxo, 
considerando as três hipóteses abaixo: 
1) O botão B é solto antes que o disco deixe o contato X. 2) O disco deixa o contato X, e a seguir o botão B é 
solto. 3) O disco deixa o contato X ao mesmo tempo em que o botão B é solto. 
 
Resposta: 
 
 
 
 
 
 
 
Exercício 3: Desenvolva a 
tabela de fluxo para 
gerenciar o sistema ao lado. 
Ao se abrir a porta (P) do 
motorista de um carro, 
imediatamente o circuito 
eletrônico deve acionar um 
motor (D) para descer o 
vidro do motorista até 
atingir um sensor (B) que 
está 3 cm para baixo. 
Somente após o motorista 
fechar a porta do carro o circuito deve acionar um motor (S) para subir o vidro até atingir o sensor (A) que 
representa o vidro todo fechado. Considere que inicialmente a porta e o vidro encontram-se fechados. 
Considere: Contato P (=0 porta fechada; =1 porta aberta). Sensores A e B (=0 ausência de vidro; =1 presença 
de vidro). Motores S e D (=0 desligado; =1 ligado). 
 
Resposta: 
 
 
 
 
 
 
 
 
Botão B Motor M
Contato
X
Sensor A
Sensor B
3 cm
Sensor A
Sensor B
Vidro Fechado Vidro Aberto
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 28 
4. PAL – ARRANJO LÓGICO PROGRAMÁVEL 
O Arranjo Lógico Programável (PAL) serviu de embrião para a construção dos circuitos eletrônicos mais 
avançados da atualidade, servindo inclusive de base 
para a arquitetura da Unidade de Controle dos 
microprocessadores atuais. O PAL é um circuito 
composto basicamente por dois blocos: Circuitos 
Combinatórios e Memórias Internas. 
Quando um conjunto de entradas (E) é 
aplicado sobre a máquina seqüencial a partir de um 
determinado estado interno (representado pelo 
conjunto de variáveis I), o bloco combinatório se 
encarrega de fornecer o conjunto (S) de saídas 
correspondentes, e o próximo estado interno para o 
qual o modelo seqüencial deve evoluir, em 
sincronismo com a ocorrência do sinal de clock. As 
memórias internas serão as responsáveis pelo 
armazenamento temporário do estado do sistema 
em certo instante “t”. 
Considere agora a substituição do bloco combinatório (circuitos combinatórios) por uma memória da 
família ROM e das memórias internas por biestáveis, conforme a figura a seguir. Na memória ROM serão 
armazenadas as funções de saída e do próximo 
estado interno do sistema, e os elementos 
biestáveis serão responsáveis pelo armazenamento 
temporário do estado do sistema. 
Esta nova estrutura é equivalente à anterior e 
ambas podem representar fisicamente o mesmo 
modelo de circuito seqüencial síncrono já 
mencionado. Entretanto, a implementação do 
modelo apresentado acima só se tornou viável 
devido a uma evolução tecnológica que permitiu 
colocar, numa única pastilha de circuito integrado, 
toda a estrutura mostrada na figura. 
Isto foi feito a partir de 1972, pelos fabricantes 
de componentes eletrônicos dando origem ao que 
se convencionou chamar de “Arranjo Lógico 
Programável” (Programmable Array Logic), que é 
uma extensão do que foi apresentado até aqui. Através da utilização destes dispositivos é possível projetar 
circuitos seqüenciais específicos, e implementa-los com facilidade, programando circuitos PALs. Vamos 
construir esta arquitetura de “Arranjo Lógico Programável” através de memórias e biestáveis, ou seja, ao invés 
de utilizarmos o circuito integrado pronto do PAL, vamos construir o nosso próprio circuito eletrônico. A melhor 
maneira de aprendermos a implementar o circuito eletrônico do PAL é através dos dois exemplos que serão 
desenvolvidos a seguir. 
 
Exemplo 1: Deseja-se implementar um contador que funcione de forma crescente ou decrescente, com 
módulo de contagem 5 ou 8 estados, conforme a necessidade do usuário. Para isso, podemos definir as 
variáveis da seguinte forma: 
C – Contagem (=0 crescente; =1 decrescente). 
M – Módulo de Contagem (=0 módulo 8; =1 módulo 5). 
S – Saída do PAL (=0 contagem intermediária; =1 contagem final). 
I1, I2 e I3 – Estados Internos. 
Circuitos
Combinatórios
Memórias
Internas
Conjunto de
Entradas
Conjunto de
Saídas
E S
Próximo
Estado
Estado
Interno
I
Clock
Memória da
Família ROM
Flip-Flops
Tipo D
Conjunto de
Entradas
Conjunto de
Saídas
E S
Próximo
Estado
Estado
Interno
I
Clock
Contador
Ck
M
C
S
I1 I2 I3
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 29 
A figura representa este sistema segundo a estrutura de máquina seqüencial síncrona com as variáveis 
de entrada C, M e o sinal de clock Ck, e uma saída S que aciona estágios seguintes quando ao término da 
contagem. O contador possuirá no máximo 8 estados internos (módulo 8), sendo necessárias 3 variáveis 
internas para sua designação. Três biestáveis do tipo D são, portanto, necessários para o armazenamento de 
cada variável de estado. O sinal de clock sincroniza a operação dos biestáveis, e as mudanças de estado de 
todo o contador. 
Para o desenvolvimento de um projeto feito através de Arranjo Lógico Programável é necessário concluir 
4 etapas: a Tabela de Fluxo, o Circuito Eletrônico, a Tabela de Gravação da ROM e a Tabela em Hexadecimal 
(para a gravação da ROM). 
 
1 - TABELA DE FLUXO 
 C M 
 Estados 00 01 11 10 I1 I2 I3 
0 1, 0 1, 0 4, 1 7, 1 0 0 0 
1 2, 0 2, 0 0, 0 0, 0 0 0 1 
2 3, 0 3, 0 1, 0 1, 0 0 1 0 
3 4, 0 4, 0 2, 0 2, 0 0 1 1 
4 5, 0 0, 1 3, 0 3, 0 1 0 0 
5 6, 0 X X 4, 0 1 0 1 
6 7, 0 X X 5, 0 1 1 0 
7 0, 1 X X 6, 0 1 1 1 
 
Na tabela de fluxo, a coluna correspondente a (C = 0 e M = 0) representa a contagem crescente com 
módulo 8. A segunda coluna (C = 0 e M = 1) representa a contagem crescente com módulo 5, e as duas 
últimas colunas representam respectivamente a contagem decrescente com módulo 5 e 8, de acordo com os 
valores de C e M adotados. As funções de saída e do próximo estado interno do contador poderiam ser 
facilmente obtidas desta tabela. 
Analisando-se a tabela de fluxo pode-se concluir que existe a possibilidade do programa cair em uma 
das irrelevâncias indicadas. Imagine que o contador encontra-se atuando de modo crescente e no módulo 8 (C 
= 0 e M = 0) e que em determinado instante a contagem está em 5 e nesse exato momento o usuário do 
circuito passa as condições de entrada para crescente e módulo 5 (C = 0 e M = 1). Observe que o programa da 
ROM vai recair em uma das condições de irrelevância, portanto é necessário que se grave um conteúdo que 
possa evitar problemas de funcionamento do circuito e que ainda por cima seja uma lógica que atenda a 
mudança executada pelo usuário. Uma possível solução está apresentada na tabela abaixo: 
 
1 - TABELA DE FLUXO (Corrigida) 
 C MEstados 00 01 11 10 I1 I2 I3 
0 1, 0 1, 0 4, 1 7, 1 0 0 0 
1 2, 0 2, 0 0, 0 0, 0 0 0 1 
2 3, 0 3, 0 1, 0 1, 0 0 1 0 
3 4, 0 4, 0 2, 0 2, 0 0 1 1 
4 5, 0 0, 1 3, 0 3, 0 1 0 0 
5 6, 0 0, 1 3, 0 4, 0 1 0 1 
6 7, 0 0, 1 3, 0 5, 0 1 1 0 
7 0, 1 0, 1 3, 0 6, 0 1 1 1 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 30 
Outra solução que poderia ser feita é a criação de uma segunda saída do PAL, no qual servirá para 
apontar ao usuário que houve uma mudança da lógica de contagem no meio do processo. 
A tabela de fluxo tem por finalidade facilitar o desenvolvimento lógico da programação da memória ROM. 
A capacidade dessa memória pode ser expressa em termos do número de entradas e saídas necessárias. No 
exemplo do contador, verifica-se que a memória deve possuir um total de 5 entradas (C, M, I1, I2 e I3) e 4 
saídas (S, I1, I2 e I3). A partir daí sabe-se que essa memória tem dimensão: 25 x 4 ou 32 x 4. 
 
2 – CIRCUITO ELETRÔNICO 
 
ROM
A4
A3
A2
A1
A0
Q3
Q2
Q1
Q0
C
M S
I1I1
I2I2
I3I3
Ck
DQ
DQ
DQ
 
 
A tabela que resume a programação necessária é denominada de “Tabela de Gravação da ROM”. Na 
interpretação desta tabela, a memória deve ser encarada como um elemento capaz de receber um conjunto de 
endereços aplicados à sua entrada (C, M, I1, I2 e I3), ao qual corresponde um conteúdo que será armazenado 
no interior da mesma, que representará as saídas da memória (S, I1, I2 e I3). 
Enquanto que a tabela de fluxo serve para facilitar o desenvolvimento lógico da gravação da memória, a 
tabela de gravação da memória ROM serve para facilitar o ato de gravação da mesma através do gravador de 
memórias. Evidente que a parte intelectual do projeto do PAL consiste exclusivamente na tabela de fluxo, pois 
a tabela de gravação da ROM é apenas um rearranjo da anterior de forma crescente dos endereços. 
Uma vez preenchida a tabela de gravação da ROM, o próximo passo é decodificá-la para Hexadecimal. 
O motivo de se ter a tabela em hexadecimal é que os gravadores de memória funcionam nesta base numérica, 
portanto facilita o projetista na hora de gravar a memória. 
 
 
 
 
 
 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 31 
 3 – TABELA DE GRAVAÇÃO DA ROM 4 – HEXADECIMAL 
 
ENDEREÇO CONTEÚDO 
 
HEXA 
A4 A3 A2 A1 A0 Q3 Q2 Q1 Q0 END CON 
C M I1 I2 I3 S I1 I2 I3 
0 0 0 0 0 0 0 0 1 00 1 
0 0 0 0 1 0 0 1 0 01 2 
0 0 0 1 0 0 0 1 1 02 3 
0 0 0 1 1 0 1 0 0 03 4 
0 0 1 0 0 0 1 0 1 04 5 
0 0 1 0 1 0 1 1 0 05 6 
0 0 1 1 0 0 1 1 1 06 7 
0 0 1 1 1 1 0 0 0 07 8 
0 1 0 0 0 0 0 0 1 08 1 
0 1 0 0 1 0 0 1 0 09 2 
0 1 0 1 0 0 0 1 1 0A 3 
0 1 0 1 1 0 1 0 0 0B 4 
0 1 1 0 0 1 0 0 0 0C 8 
0 1 1 0 1 1 0 0 0 0D 8 
0 1 1 1 0 1 0 0 0 0E 8 
0 1 1 1 1 1 0 0 0 0F 8 
1 0 0 0 0 1 1 1 1 10 F 
1 0 0 0 1 0 0 0 0 11 0 
1 0 0 1 0 0 0 0 1 12 1 
1 0 0 1 1 0 0 1 0 13 2 
1 0 1 0 0 0 0 1 1 14 3 
1 0 1 0 1 0 1 0 0 15 4 
1 0 1 1 0 0 1 0 1 16 5 
1 0 1 1 1 0 1 1 0 17 6 
1 1 0 0 0 1 1 0 0 18 C 
1 1 0 0 1 0 0 0 0 19 0 
1 1 0 1 0 0 0 0 1 1A 1 
1 1 0 1 1 0 0 1 0 1B 2 
1 1 1 0 0 0 0 1 1 1C 3 
1 1 1 0 1 0 0 1 1 1D 3 
1 1 1 1 0 0 0 1 1 1E 3 
1 1 1 1 1 0 0 1 1 1F 3 
 
 
 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 32 
Exemplo 2: Deseja-se implementar um circuito eletrônico através do conceito de PAL capaz de executar o 
controle de qualidade da peça desenhada abaixo, indicando se a mesma encontra-se boa, boa porém caiu de 
ponta-cabeça na esteira ou se está com defeito. Considere: 
 
A: Sensor superior (=0 ausência de peça; =1 presença de peça) 
B: Sensor inferior (=0 ausência de peça; =1 presença de peça) 
S1 e S2: Saídas do PAL 
 
 
 
 
 
 
 
 
Estipulada as condições do problema, o próximo passo é o desenvolvimento das 4 etapas do 
Arranjo Lógico Programável: Tabela de Fluxo, Circuito Eletrônico, Tabela de Gravação da ROM e a 
Tabela em Hexadecimal. 
 
1 - TABELA DE FLUXO 
 
 A B 
 Estados 00 01 11 10 I1 I2 I3 I4 
0 0 0 0 0 
1 0 0 0 1 
2 0 0 1 0 
3 0 0 1 1 
4 0 1 0 0 
5 0 1 0 1 
6 0 1 1 0 
7 0 1 1 1 
8 1 0 0 0 
9 1 0 0 1 
10 1 0 1 0 
11 1 0 1 1 
12 1 1 0 0 
13 1 1 0 1 
14 1 1 1 0 
15 1 1 1 1 
 
S1 S2 PEÇA 
0 0 Passando ou não chegou 
0 1 Boa 
1 0 Boa e de Ponta-Cabeça 
1 1 Ruim 
Peça Boa Peça Boa
(Ponta-Cabeça)
A
B
Sensores
Esteira
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 33 
2 – CIRCUITO ELETRÔNICO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Não é necessário o preenchimento completo das tabelas dos itens 3 e 4 (tabela de gravação da ROM e 
tabela em hexadecimal), pois não existe raciocínio lógico para ambas as tabelas, apenas a transposição e 
reorganização dos dados da tabela de fluxo. Portanto, considere apenas os endereços solicitados nas tabelas 
a seguir. 
 
 3 – TABELA DE GRAVAÇÃO DA ROM 4 – HEXADECIMAL 
 
ENDEREÇO CONTEÚDO 
 
HEXA 
A5 A4 A3 A2 A1 A0 Q5 Q4 Q3 Q2 Q1 Q0 END CON 
A B I1 I2 I3 I4 S1 S2 I1 I2 I3 I4 
0 0 0 0 0 0 
0 0 0 0 0 1 
0 0 0 0 1 0 
... ... ... ... ... ... ... ... ... ... ... ... ... ... 
... ... ... ... ... ... ... ... ... ... ... ... ... ... 
0 0 1 1 0 0 
0 0 1 1 0 1 
... ... ... ... ... ... ... ... ... ... ... ... ... ... 
... ... ... ... ... ... ... ... ... ... ... ... ... ... 
0 1 0 1 0 1 
0 1 0 1 1 0 
... ... ... ... ... ... ... ... ... ... ... ... ... ... 
... ... ... ... ... ... ... ... ... ... ... ... ... ... 
1 0 1 1 0 1 
1 0 1 1 1 0 
... ... ... ... ... ... ... ... ... ... ... ... ... ... 
... ... ... ... ... ... ... ... ... ... ... ... ... ... 
1 1 1 0 0 0 
1 1 1 0 0 1 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 34 
 
Exercício 1: Determine a Tabela de Fluxo, o circuito PAL, a Tabela de Gravação da Eprom e a Tabela de 
Gravação em Hexadecimal. 
 
 
Sensores A / B = 0 (Ausência de Peça) 
Sensores A / B = 1 (Presença de Peça) 
 
Saídas S1 e S2: 
 
S1 S2 Peça 
0 0 Passando ou não chegou 
0 1 Boa 
1 0 Boa e de Ponta Cabeça 
1 1 Ruim 
 
Endereços solicitados para a Tabela de Gravação e Tabela Hexadecimal: 05, 0C, 27, 3A (Números em 
Hexadecimal) 
 
PS: Na tabela de fluxo, desenvolva primeiro a seqüência da peça Boa. 
 
Resposta: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Peça Boa Peça Boa
(Ponta-Cabeça)
Sensor A
Sensor B
MICROPROCESSADORESProf. Sandro Bastos 
 
 
 
Universidade Santa Cecília 35 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 36 
 
Exercício 2: Implementar o circuito PAL da peça abaixo. Mostrar a Tabela de Fluxo, o circuito PAL, a Tabela 
de Gravação da Eprom e a Tabela de gravação em Hexadecimal. 
 
Sensores A / B = 0 (Ausência de Peça) 
Sensores A / B = 1 (Presença de Peça) 
 
Saídas S1 e S2: 
 
S1 S2 Peça 
0 0 Passando ou não chegou 
0 1 Boa 
1 0 Boa e de Ponta Cabeça 
1 1 Ruim 
 
Endereços para a Tabela de Gravação e Tabela Hexadecimal: 00, 01, 09, 13, 1A, 25, 26, 31 (Números em 
Hexadecimal). 
 
PS: Na tabela de fluxo, desenvolva primeiro a seqüência da peça Boa. 
 
Resposta: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Peça Boa Peça Boa
(Ponta-Cabeça)
Sensor A
Sensor B
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 37 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 38 
5. MICROPROCESSADOR X MICROCONTROLADOR 
Não é possível estar envolvido com atividades científicas hoje em dia sem estar em contato com algum 
tipo de microprocessador. Por isso, as pessoas têm diferentes idéias do que seja um microprocessador. Uma 
definição bem formulada de microprocessador define-o como um único chip que contém uma unidade lógica e 
aritmética e capacidade para controle de memória e I/O. 
Para que um microprocessador opere, resolvendo os mais variados problemas, é necessário um circuito 
de apoio, composto de memórias, dispositivos de entrada e saída (I/O), circuitos de clock, entre outros. O 
microcontrolador é um microprocessador com um sistema de memória e I/O integrado, sendo muitas vezes 
denominado de microcomputador ou single chip computer. Esta característica faz com que os 
microcontroladores sejam perfeitamente adequados para uso em funções de controle onde se deseja pequeno 
consumo, diminuídas dimensões, e não muita capacidade de processamento. As necessidades atuais mostram 
que os microcontroladores de 8 bits são suficientemente poderosos para controlar quaisquer processos onde 
não se necessite grandes capacidades de cálculo numérico ou velocidade de operação. 
Pode-se ter o pensamento simplista de que o microcontrolador é inferior ao microprocessador. Na 
verdade o microcontrolador é adequado à função a que vai realizar, de forma a utilizar de forma racional e 
completa os recursos existentes no dispositivo. Lembre-se que quando você utiliza um microprocessador para 
realizar determinada tarefa, como por exemplo, controle de um motor, você precisa incluir vários dispositivos 
que consomem espaço e energia e muitas instruções disponíveis no seu microprocessador não serão 
utilizadas. Atualmente, grande parte das tarefas executadas anteriormente por microprocessadores são hoje 
realizadas por microcontroladores com vantagens significativas. Talvez a maior vantagem a ser mencionada 
seja a redução do custo final do projeto, pois reduzimos muito o número de componentes necessários, 
melhorando com isso a confiabilidade dos equipamentos. 
Atualmente presenciamos a plenitude dos microcontroladores de 8 bits. Alguns fabricantes desenvolvem 
microcontroladores com uma grande linha de derivativos, que são componentes adequados às funções 
específicas, como por exemplo, circuitos de televisão, telecomunicações, controles remotos, entre outros. A 
redução do consumo através do uso de tecnologias mais avançadas como a CMOS também é alvo para a 
manufatura de equipamentos portáteis alimentados à bateria. Já existem microcontroladores de 16, 32 e 64 
bits, mas são utilizados no mercado como poderosos auxiliares em complexas tarefas de controle de processos 
in time. Esta tecnologia deverá atingir seu ápice quando os complexos sistemas de informação do futuro 
necessitarem deste maior poder computacional. 
 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 39 
6. O MICROCONTROLADOR 8051 
Um microcontrolador é geralmente composto pelos seguintes blocos: 
 
�
 Unidade Central de Processamento (CPU); 
�
 Memória de Programa (ROM ou EPROM); 
�
 Memória de dados (RAM); 
�
 Linhas de I/O (PORT’s); 
�
 Controle de interrupções; 
�
 Gerador de clock; 
�
 Timer’s e counter’s. 
 
 
 
A figura anterior ilustra a composição típica do microcontrolador 8051 com os elementos citados e suas 
respectivas interligações. As diferenças entre os diversos tipos de microcontroladores residem basicamente na 
capacidade e tipos de memórias, na quantidade de port’s disponíveis ao usuário, na velocidade de operação, e 
em outros recursos disponíveis como, por exemplo, portas seriais, maior número de contadores, opção de 
baixo consumo, entre outros. 
Existem também, os componentes chamados derivativos que, como o próprio nome diz, são 
microcontroladores derivados dos tipos mais comuns (8048 e 8051), ou seja, a célula básica é o 
microcontrolador e este é acrescido de outros componentes de acordo com as necessidades. 
 
4 I/O Port’s BUS Control OSC 
CPU 
Interrupt 
Control 
External 
Interrupt 
4K ROM 128 Bytes 
RAM 
Timer 1 
Timer 0 
Counter 
Inputs 
Serial Port 
TXD RXD 
P0 P1 P2 P3 
Address / Data 
BUS 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 40 
6.1. A Família 8051 
Quando temos vários microcontroladores utilizando uma mesma célula, chamamos esse conjunto de 
componentes de família. Desta forma temos várias famílias como, por exemplo, a família do 8048, do 8051, do 
8096, entre outras. 
A tabela abaixo descreve sucintamente os principais componentes dessa família. 
 
Nome do 
Chip 
Versão sem 
ROM 
Versão 
EPROM 
Bytes de 
ROM 
Bytes de 
RAM 
Timers 
16 Bits 
Tipo de 
Circuito 
8051 8031 8751 4K 128 2 NMOS 
80C51 80C31 87C51 4K 128 2 HMOS 
80CL51 4K 128 2 SACMOS 
8052 8032 8K 256 3 NMOS 
80C52 80C32 87C52 8K 256 3 CMOS 
83C528 80C528 87C528 32K 512 3+1 CMOS 
83C652 80C652 87C652 8K 256 2 CMOS 
83C751 87C751 2K 64 1 CMOS 
83C452 80C452 87C452 8K 256 2 CMOS 
 
O elemento básico desta família é o 8051. Os outros componentes desta família estão descritos nos 
manuais dos fabricantes. Atualmente, a tendência mundial no uso de componentes de baixo consumo, torna 
imperativo o desenvolvimento de projetos baseados na tecnologia CMOS, facilitando assim a interligação de 
seus blocos. Todos os componentes que apresentarem um “C” em seu código (80C31, 87C452, etc.) 
pertencem a esta família e devem ser preferencialmente utilizados. Esta família representa o que existe de 
mais avançado em microcontroladores de 8 bits, o que garantea continuidade de sua linha de produção por 
um longo período. 
As características desta família são: 
 
�
 CPU de 8 bits com conjunto de instruções otimizado para aplicações de controle de processos; 
�
 Capacidade de processamento Booleano (manipulação de bit individualmente); 
�
 32 linhas de I/O bidirecionais e individualmente endereçáveis; 
�
 128 bytes de RAM “on-chip” (mínimo); 
�
 Dois contadores/temporizadores programáveis de 16 bits; 
�
 Interface serial full-duplex; 
�
 Estrutura de interrupções com até 5 entradas permitindo 2 níveis de prioridade; 
�
 Gerador de clock; 
�
 Mínimo de 4Kbytes de memória de programa (ROM ou EPROM); 
�
 Capacidade de endereçamento externo de até 64Kbytes. 
 
6.2. Descrição da Pinagem 
A figura seguinte ilustra a pinagem do microcontrolador 8051 nas duas formas de encapsulamento mais 
comuns: 
 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 41 
 
- Vss: Pino de entrada de 0 volt. 
- Vcc: Pino de entrada de alimentação de 5 volts. 
- Porta 0 (P0.0 – P0.7): A porta 0 é uma porta bidirecional de 8 bits, com saída dreno aberto, ou entrada de 
alta impedância. É usado para multiplexar o barramento de dados e o barramento de endereços menos 
significativo, durante o acesso de memória de dados externa ou de memória de programa externa. No 8751 
esta porta também é usada para verificação do código do byte e, neste caso, são necessários o uso dos 
resistores “pull-up” externos. 
- Porta 1 (P1.0 – P1.7): A porta 1 é uma porta bidirecional de 8 bits com resistores “pull-up” internos. Assim 
estes pinos poderão funcionar como entradas, ou saídas. Se uma entrada estiver conectada ao nível baixo, 
ela fornecerá corrente, devido aos resistores “pull-up” internos. Os pinos da porta 1 também recebem o 
endereço menos significativo, durante a verificação de memória de programa para o 8751. 
- Porta 2 (P2.0 – P2.7): A porta 2 é uma porta bidirecional de 8 bits com resistores “pull-up” internos. Esta 
porta é usada para colocar o byte de endereço mais significativo, quando um ciclo de busca externa de 
memória de programa, ou de dado, com endereço de 16 bits, está sendo realizado (MOVX @DPTR). 
Durante o acesso externo de memória de dados que usa endereço de 8 bits (MOV @Ri), a porta 2 emite os 
conteúdos do registro de função especial P2. 
- Porta 3 (P3.0 – P3.7): A porta 3 é uma porta bidirecional de 8 bits com resistores “pull-up” internos. A porta 
3 tem funções especiais para o 8051 que inclui as operações de comunicação serial, interrupções externas, 
temporizações e sinais de leitura e escrita como segue: 
RxD (P3.0): Entrada da porta serial. 
TxD (P3.1): Saída da porta serial. 
/INT0 (P3.2): Entrada de interrupção externa nível 0. 
/INT1 (P3.3): Entrada de interrupção externa nível 1. 
T0 (P3.4): Entrada externa para temporizador 0. 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
40 
39 
38 
37 
36 
35 
34 
33 
32 
31 
30 
29 
28 
27 
26 
25 
24 
23 
22 
21 
** T2 P1.0 
** T2EX P1.1 
P1.2 
P1.3 
P1.4 
P1.5 
P1.6 
P1.7 
Rst 
RXD P3.0 
TXD P3.1 
T0 P3.4 
T1 P3.5 
XTAL2 
XTAL1 
Vss 
Vcc 
P0.0 AD0 
P0.1 AD1 
P0.2 AD2 
P0.3 AD3 
P0.4 AD4 
P0.5 AD5 
P0.6 AD6 
P0.7 AD7 
P2.7 A15 
P2.6 A14 
P2.5 A13 
P2.4 A12 
P2.3 A11 
P2.2 A10 
P2.1 A9 
P2.0 A8 
EA / Vpp* 
ALE / Prog* 
PSEN INT0 P3.2 
INT1 P3.3 
WR P3.6 
RD P3.7 
9 
10 
11 
P1.7 
Rst 
RXD P3.0 
13 
14 
15 
16 
17 
TXD P3.1 
T0 P3.4 
T1 P3.5 
INT0 P3.2 
INT1 P3.3 
7 
8 
P1.5
P1.6
12 NC 
P1
.
4 
6 5 4 3 2 1 44
 
43
 
42
 
41
 
40
 
P1
.
3 
P1
.
2 
P1
.
1 
 
T2
EX
 
*
*
 
P1
.
0 
 
T2
 
*
*
 
N
C 
Vc
c 
P0
.
0 
 
AD
0 
P0
.
1 
 
AD
1 
P0
.
2 
 
AD
2 
P0
.
3 
 
AD
3 
39 
38 
37 
36 
35 
P0.4 AD4 
P0.5 AD5 
P0.6 AD6 
P0.7 AD7 
EA / Vpp* 
33 
32 
31 
30 
29 
P2.7 A15 
P2.6 A14 
P2.5 A13 
ALE / Prog* 
PSEN 
34 NC 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25
 
26
 
27
 
28
 
XT
AL
2
XT
AL
1
Vs
s
N
C
P2
.
0 
 
A8
P2
.
1 
 
A9
P2
.
2 
 
A1
0
P2
.
3 
 
A1
1
P2
.
4 
 
A1
2
R
D
 
P3
.
7
W
R
 
P3
.
6
Index Corner 
Pin (DIP) 
Pad (LCC, PLCC) 
* EPROM Only 
** 8052/8032 Only 
MICROPROCESSADORES Prof. Sandro Bastos 
 
 
 
Universidade Santa Cecília 42 
T1 (P3.5): Entrada externa para temporizador 1. 
/WR (P3.6): Saída habilitadora de escrita para memória de dados externa. 
/RD (P3.7): Saída habilitadora de leitura para memória de dados externa. 
- Rst (Reset): Um nível alto neste pino com duração de dois ciclos de máquina, enquanto o oscilador estiver 
operando, realiza uma inicialização (reset) do circuito. 
- ALE e /Prog: Este pino opera como saída habilitadora de latches de endereçamento, durante um acesso a 
memória externa. Nas versões com Eprom interna (8751) este pino opera como entrada recebendo o pulso 
de programação (/Prog) durante a programação da Eprom. 
- /PSEN: Este pino é uma saída que habilita a leitura de uma memória de programa externa. /PSEN não 
será ativado durante uma busca na região de memória de programa interna. 
- /EA e Vpp: Este pino é uma entrada que deverá ser ligado ao nível alto, para que o processador tenha 
acesso à memória interna de programa, nos endereços de 0000H até 0FFFH e acesso a memória externa 
de programa, para endereços acima de 0FFFH. Se estiver ligado ao nível baixo, toda a área de memória de 
programa, de 0000H a FFFFH será externa. Nas versões com Eprom interna (8751), este pino também 
recebe a tensão de programação de 12,75 V. Nas versões sem ROM interna, /EA deve ser conectado ao 
nível baixo. 
- XTAL 1: Entrada para o oscilador inversor interno e para o circuito gerador de temporização interna. 
- XTAL 2: É a saída do oscilador amplificador e inversor interno. 
 
6.3. Oscilador Interno 
Todos os membros da família 8051 possuem um 
oscilador interno que pode ser utilizado como fonte de clock 
para a CPU, bastando para isso que se conecte um cristal 
ressonador cerâmico entre os pinos XTAL1 e XTAL2, e dois 
capacitores no GND, como mostrado na figura ao lado. 
Se ao invés de utilizarmos o oscilador interno, utilizamos 
outro gerador qualquer (para sincronizar com outros circuitos, 
por exemplo) devemos ter o cuidado de interligar a entrada no 
pino certo. Este fato é importante, pois este pino muda 
conforme o tipo de chip utilizado, por exemplo, com chips 
HMOS (8051) devemos ligar a entrada de clock ao pino 
XTAL2, enquanto que em circuitos CMOS (80C51), o clock 
deve ser colocado no pino XTAL1. A figura seguinte indica a 
correta montagem destas entradas nos diversos componentes. 
 
 
XTAL2 
XTAL1 
VSS 
MCS-51 
HMOS or 
CHMOS 
External 
Clock 
Signal 
XTAL2 
XTAL1 
VSS 
MCS-51 
HMOS 
Only 
External 
Clock 
Signal 
XTAL2 
XTAL1 
VSS 
MCS-51 
CHMOS 
Only 
External 
Clock 
Signal 
(IC) 
Quartz Cristal 
or ceramic 
ressonator 
C1 
C2 
XTAL2 
XTAL1 
VSS 
MCS-51 
HMOS or 
CHMOS 
MICROPROCESSADORES Prof.

Mais conteúdos dessa disciplina