Beruflich Dokumente
Kultur Dokumente
Eng. Eltrica
MICROPROCESSADORES
SUMRIO
1.
BIESTVEIS ............................................................................................................................... 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.
Transformao de Biestveis.......................................................................................................... 12
1.8.
2.
CONTADOR SNCRONO.......................................................................................................... 16
3.
4.
5.
MICROPROCESSADOR X MICROCONTROLADOR............................................................... 38
6.
O MICROCONTROLADOR 8051.............................................................................................. 39
7.
8.
6.1.
6.2.
Descrio da Pinagem.................................................................................................................... 40
6.3.
6.4.
Reset.............................................................................................................................................. 43
6.5.
6.6.
6.7.
6.8.
7.2.
7.3.
Instrues Aritmticas..................................................................................................................... 54
7.4.
Instrues Lgicas.......................................................................................................................... 56
7.5.
7.6.
9.
MICROPROCESSADORES
1.
BIESTVEIS
Podemos considerar dois modelos de circuitos eletrnicos digitais: Combinacional e Seqencial. Nos
circuitos combinacionais as sadas dependem apenas das entradas no instante de tempo observado. Os
circuitos seqenciais se caracterizam por terem as sadas dependentes das entradas no instante de tempo
observado e no instante anterior, ou seja, possuem uma seqncia de operao.
Um dos componentes mais utilizados na implementao de circuitos seqenciais so os biestveis
(popularmente denominados de flip-flops ou latch). Os biestveis so circuitos que apresentam dois estados
estveis (0 e 1) na sada. Quando pela ao de um estmulo externo, em sua(s) entrada(s), passam de um
estado a outro, permanecendo at que outro estmulo seja dado novamente em sua(s) entrada(s). Por essa
caracterstica de manter um determinado estado que os biestveis so denominados tambm de elementos
de memria.
O biestvel funciona, portanto, como elemento armazenador de informao ou de memria. Existem
basicamente quatro tipos de biestveis:
Flip-Flop RS
Flip-Flop D
Flip-Flop JK
Flip-Flop T
Os biestveis podem ser assncronos ou sncronos. O tipo assncrono significa que o biestvel no
depende de relgio (clock) para seu funcionamento. J o tipo sncrono depende do relgio (clock), podendo ser
encontrados de duas maneiras: Nvel ou Borda. O quadro abaixo mostra a simbologia adotada para o
funcionamento do nvel alto ou baixo e tambm para a borda de subida ou descida.
Nvel Alto
Nvel Baixo
Vcc ou NL1
Gnd ou NL0
1.1. Flip-Flop RS
a) RS Assncrono (Construdo com portas NOU)
Simbologia:
Circuito Interno:
Q
S
Tabela Verdade:
R
Mantm
Proibido
OBS: Na situao onde R = S = 1, denominamos de proibido porque no tem sentido lgico querer resetar e
setar ao mesmo tempo.
MICROPROCESSADORES
Circuito Interno:
S
Q
Diagrama de Tempos:
R
S
Q
Simbologia:
R Q
Ck
S Q
Circuito Interno:
S
Q
Ck
Q
R
Diagrama de Tempos:
Ck
S
R
Q
MICROPROCESSADORES
No biestvel sincronizado em nvel lgico alto, s alterada a sada, respeitando a tabela verdade do
tipo RS, enquanto o clock estiver em NL1, conforme pode ser verificado no diagrama de tempos anterior.
Circuito Interno:
Simbologia:
R Q
Ck
S Q
S
Q
Ck
Q
R
Ck
C
Circuito
Ck
X
Simbologia:
R Q
Ck
S Q
Circuito Interno:
S
Q
Ck
C
R
Q
MICROPROCESSADORES
Diagrama de Tempos:
Ck
S
R
Q
Observe no diagrama de tempos da ilustrao anterior que a sada s tem possibilidade de ser alterada
no instante em que o clock vai de 0 para 1.
f)
O biestvel de borda de descida s tem a sua sada alterada conforme as condies de entrada E na
transio do clock (de NL1 para NL0), ou seja, mesmo que o clock esteja em nvel lgico baixo, a sada no se
altera independente do que foi colocado em suas entradas.
A diferena do circuito de nvel baixo para o de borda de descida consiste no acrscimo de um circuito
diferenciador colocado na entrada do clock aps a porta inversora, fazendo com que o funcionamento do
mesmo aps o diferenciador seja exatamente igual ao de nvel baixo. A figura seguinte mostra o circuito
completo e a simbologia do biestvel sncrono funcionando borda de descida.
Na representao simblica do flip-flop aparece um pequeno tringulo e uma bolinha que significa
sincronismo borda de descida. Caso seja construdo o diagrama de tempos que representa esse biestvel,
conveniente lembrar que a sada s poder sofrer alterao na transio do clock de NL1 para NL0.
Simbologia:
R Q
Ck
S Q
Circuito Interno:
S
Q
C
Ck
R
Q
R
1.2. Flip-Flop JK
O biestvel JK s existe na configurao borda de subida ou descida, no sendo possvel existir no
formato assncrono ou em nvel. A seguir temos o smbolo lgico, 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 biestvel JK no pode existir na configurao em nvel devido condio de inverso do sinal de
sada, ou seja, imagine um JK funcionando em nvel alto: quando fosse colocada nas entradas J = 1 e K = 1 e o
clock em nvel lgico alto, a sada ficaria invertendo (0 1 0 1 .....) na ordem de microssegundos
enquanto o clock se mantiver em nvel lgico alto, perdendo assim o controle de funcionamento do flip-flop. Por
essa razo, s possvel existir o biestvel JK funcionando a borda de descida ou subida, pois quando o
MICROPROCESSADORES
relgio estiver na transio o flip-flop faz apenas uma nica leitura das condies de entrada, portanto s
inverte a sada uma vez.
Simbologia:
J Q
Ck
K Q
Tabela Verdade:
J
Mantm
Inverte
Diagrama de Tempos:
Ck
J
K
Q
1.3. Flip-Flop T
O biestvel tipo T s existe na configurao borda de subida ou descida, pelo mesmo motivo justificado
no biestvel tipo JK. Para melhor compreenso, vide abaixo o smbolo lgico, sua tabela verdade e um
diagrama de tempos como exemplo.
Simbologia:
T
Ck
Q
Q
Tabela Verdade:
T
Mantm
Inverte
Diagrama de Tempos:
Ck
T
Q
MICROPROCESSADORES
1.4. Flip-Flop D
O flip-flop tipo D o mais fcil dos biestveis, pois o sinal que estiver em sua entrada (D) o mesmo que
vai parar na sada (Q). Pode ser encontrado com ou sem clock. O flip-flop tipo D assncrono no tem muita
utilidade, pois uma vez que a sada copia a entrada instantaneamente (no tem clock), o seu funcionamento
deixa de ter sentido a menos que a inteno seja o de gerar um pequeno delay (atraso).
a) D Assncrono
Circuito Interno:
Simbologia:
Tabela Verdade;
Q
D
Diagrama de Tempos:
D
Q
A tabela verdade permanece igual, mudando a simbologia e o diagrama de tempos. Tambm existe o
biestvel tipo D funcionando em nvel baixo.
Simbologia:
Ck Q
Diagrama de Tempos:
Ck
D
Q
MICROPROCESSADORES
Simbologia:
D
Ck
Q
Q
Diagrama de Tempos:
Ck
D
Q
Simbologia:
Circuito Interno:
Cl
Pr
R
Q
Ck
S Cl Q
Q
C
Ck
R
Q
R
Pr
MICROPROCESSADORES
Tabela Verdade:
Pr
Cl
Proibido
Mantm
Proibido
Circuito Interno:
MESTRE
ESCRAVO
Qm
Q
Ck
Q
K
Qm
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 aps a descida do pulso do clock, o circuito do escravo acionado copiando a mesma sada ocorrida no
mestre Qm.
10
MICROPROCESSADORES
Quando o clock assume nvel lgico alto, as portas lgicas do mestre modificam sua sada (Qm)
conforme os valores introduzidos nas entradas J e K. Neste momento, o escravo fica desabilitado devido a
porta inversora do circuito eltrico, fazendo com que a sada do circuito (sada do escravo) fique inalterada.
Quando o clock assume nvel lgico baixo, as portas lgicas do mestre ficam desabilitadas, o que
impede o acesso dos valores introduzidos nas entradas J e K. Neste momento as portas lgicas do escravo
so habilitadas permitindo a ao do mestre sobre o escravo, ou seja, as sadas do mestre passam a ser as
entradas do escravo, garantindo assim a execuo do funcionamento do biestvel conforme previsto.
Para o circuito executar corretamente a tabela verdade do biestvel JK, as entradas J e K no devem
mudar enquanto o clock estiver em nvel lgico alto. Por exemplo: se J = 0, K = 0 e Q = 1, esperado que a
sada no mude aps a aplicao de um pulso de clock. Contudo, se enquanto o clock estiver em nvel lgico
alto ocorrer um transitrio na entrada K, ou seja, K assume o valor 1 e volta em seguida para 0, ento ocorrer
mudana na sada aps a descida do pulso do clock. Isto significa que no 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 biestvel comum.
Exerccio 1: Dado o circuito, desenhe as formas de onda nas sadas Q0, Q1 e Q2, considerando que
inicialmente estas sadas esto em nvel lgico baixo.
Q0
J Q1
R Q2
Q0
K Q1
S Q2
Ck
Ck
t
E
t
Q0
t
Q1
t
Q2
t
11
MICROPROCESSADORES
Exerccio 2: Dado o circuito, desenhe as formas de onda nas sadas Qa, Qb e Qc, considerando que
inicialmente estas sadas esto em nvel lgico baixo.
CK
R
S
Qa
Qa
Qb
Qb
Qc
t
E
Qc
t
CK
Qa
t
Qb
t
Qc
Exerccio 3: Dado o circuito, desenhe as formas de onda nas sadas Qa, Qb e Qc, considerando que
inicialmente estas sadas esto em nvel lgico baixo.
CK
R
S
Qa
Qa
Qb
Qb
J
K
Qc
Qc
t
E
t
CK
Qa
t
Qb
t
Qc
12
MICROPROCESSADORES
O primeiro passo desenhar as tabelas verdade do flip-flop que se tem e o desejado. Estas tabelas
representam o que acontecer com a sada conforme as condies das entradas, por exemplo: na tabela do
tipo T, quando a sada QN = 0 e na entrada do flip-flop T for colocado T = 0, a sada futura ser QN+1 = 0.
Flip-Flop Desejado
Flip-Flop Atual
QN QN+1
QN QN+1
0 0
0 0
1 1
1 1
0 1
0 1
1 0
1 1
0 0
1 0
0 X
1 X
A partir das tabelas verdade obtemos as equaes que vo representar as entradas do flip-flop (que se
tem), da seguinte maneira:
T
QN
T
0
0 X
1
1
0
1
QN
0
0 0
1
R = T.Q
1
1
S = T.Q
Para preencher os valores internos dos Mapas de Karnaugh, deve-se analisar de forma independente
cada clula, por exemplo: verifique que a primeira clula de cada um dos Mapas de Karnaugh representa que a
sada QN = 0 e ser colocado na entrada T = 0; assim, consultando a tabela verdade do flip-flop (desejado)
nota-se que a sada vai de 0 para 0 (QN = 0 QN+1 = 0). Procura-se ento 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 tambm
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 ento que na primeira clula do Mapa de
Karnaugh da esquerda (representa a equao da entrada R)
foi preenchida com irrelevncia X, enquanto que na primeira
clula do Mapa de Karnaugh da direita (representa a equao
da entrada S) foi preenchida com 0. As demais clulas
seguem o mesmo raciocnio para preenchimento.
Uma vez que os dois Mapas de Karnaugh foram
inteiramente preenchidos, devem-se obter as equaes.
Obtidas as equaes, basta implementar o circuito com o flipflop que se tem, conforme ilustra a figura ao lado.
Flip-Flop Tipo T
T
Ck
13
MICROPROCESSADORES
Resposta:
Resposta:
14
MICROPROCESSADORES
Observe no circuito que no ponto em que a chave est encostada (A ou B), o terminal da porta NE em
questo fica em nvel lgico baixo, pois a corrente circula do Vcc at o Gnd, sendo dissipada por completo pelo
resistor. Claro que no ponto em que a chave no est encostada, o terminal da porta NE fica em nvel lgico
alto. Assim, sempre que se desejar enviar nvel lgico alto para o circuito digital deve-se colocar a chave na
posio A; para enviar nvel lgico baixo deve-se colocar a chave na posio B.
15
MICROPROCESSADORES
2.
CONTADOR SNCRONO
Uma combinao binria presente nas sadas do contador denominada de estado do contador. A
seqncia das combinaes binrias assumidas pelas sadas do contador em funo dos pulsos do clock pode
ser natural ou no. Por exemplo: podemos projetar um contador para assumir uma seqncia de estados que
corresponde a decimais consecutivos crescentes (0, 1, 2, 3, ...) ou decrescentes (..., 3, 2, 1, 0), ou ainda, para
assumir uma seqncia no natural (7, 3, 1, 4, 0, 2). Para melhor entendermos o procedimento a ser seguido
para executar uma contagem qualquer que se fizer necessrio, vamos adotar um exemplo e a partir deste
poderemos desenvolver qualquer outra contagem.
Exemplo: Implemente o circuito "contador sncrono" de acordo com a seqncia abaixo, utilizando apenas flipflops do tipo RS.
6, 1
Diagrama de Estados
3, 0
0, 1
4, 1
7, 0
1, 0
5, 1
2, 1
QN QN+1
Mantm
00
01
10
Proibido
11
O preenchimento da tabela de transio feito a partir da anlise feita na tabela verdade do biestvel a
ser utilizado. A primeira coluna da tabela de transio refere-se passagem da sada atual para a sada futura
quando se introduzir um valor para as entradas R e S do flip-flop em questo. Por exemplo: analisando a
primeira linha da tabela de transio, pergunta-se:
Qual valor devemos introduzir nas entradas R e S do flip-flop de tal maneira que a sada atual v de
NL0 para uma sada futura tambm igual a NL0?.
16
MICROPROCESSADORES
facilmente. Obviamente podemos concluir que cada biestvel tem a sua prpria tabela de transio. Concluda
a tabela de transio, o prximo passo a construo da Tabela Lgica de Contagem, conforme mostrado
abaixo.
FLIP-FLOPS
DEC.
QA
QB
QC
RA
SA
RB
SADA
SB
RC
SC
QC
QA QB
00
0
01
11
10
QC
QA QB
00
0
01
11
10
1
RA =
SA =
17
MICROPROCESSADORES
QA QB
QC
00
0
01
11
QA QB
QC
00
0
10
11
10
01
11
10
1
RB =
QA QB
QC
00
0
SB =
01
11
10
QC
QA QB
00
0
1
RC =
QC
01
QA QB
00
0
SC =
01
11
10
1
SADA =
Cada Mapa de Karnaugh pertence a uma das entradas dos biestveis. Para o preenchimento dos Mapas
de Karnaugh, basta pegar o dado referente ao cruzamento de cada combinao de QA, QB e QC da tabela
lgica de contagem com a entrada escolhida do biestvel. A partir das equaes obtidas, o prximo passo a
implementao do circuito eletrnico utilizando os biestveis pr-determinados pelo projeto.
CIRCUITO ELETRNICO
RA QA
RB QB
RC QC
SA QA
SB QB
SC QC
O exemplo dado possibilita o entendimento do raciocnio lgico para criao de qualquer seqncia de
contagem, porm, caso o interesse seja simplesmente um contador crescente ou decrescente os circuitos
eletrnicos a seguir ilustram uma maneira simples de criao desse tipo de contador.
18
MICROPROCESSADORES
Pulsos
Contador Crescente
Contador Decrescente
(Clock)
10
11
12
13
14
15
CONTADOR CRESCENTE:
Clock
1
1
J Q
Ck
K Q
1
1
J Q
Ck
K Q
1
1
J Q
Ck
K Q
1
1
J Q
Ck
K Q
CONTADOR DECRESCENTE:
Clock
1
1
J Q
Ck
K Q
1
1
J Q
Ck
K Q
1
1
J Q
Ck
K Q
1
1
J Q
Ck
K Q
19
MICROPROCESSADORES
Nos circuitos eletrnicos 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 (automtico ou manual) os biestveis
mudam de estado de forma crescente ou decrescente. Observa-se que a diferena de um circuito para outro se
encontra apenas nos clocks dos biestveis B, C e D, ou seja, enquanto que no contador crescente os clocks
esto ligados nas sadas normais (Q) do biestvel anterior, no contador decrescente esto ligados nas sadas
invertidas (/Q) do biestvel anterior.
Exerccio 1: Implemente o circuito "contador sncrono" de acordo com a seqncia abaixo, utilizando apenas
flip-flops do tipo RS.
2, 0
0, 0
3, 1
1, 1
Resposta:
20
MICROPROCESSADORES
1, 0
0, 1
6, 0
4, 1
3, 1
7, 0
Resposta:
21
MICROPROCESSADORES
0, 0
2, 0
5, 1
6, 0
1, 1
3, 1
7, 1
4, 0
Resposta:
22
MICROPROCESSADORES
3.
MODELO SEQENCIAL
Existem dois tipos de modelos de estruturas digitais: combinatrio e seqencial.
Circuito Combinatrio: As sadas do sistema so funes booleanas binrias apenas das entradas, ou
seja, o conjunto de sadas fornecido pelo sistema num instante t perfeitamente determinado conhecendo-se
o conjunto das variveis de entrada aplicado a ele nesse instante.
e1
e2
Sistema Combinatrio
en
Circuito Seqencial: Neste caso, as sadas so funes booleanas (binrias) no apenas das entradas,
mas tambm do estado interno do sistema seqencial. Estas funes podem ser definidas de duas maneiras
distintas (porm equivalentes) de acordo com a adoo do modelo de Mealy ou de Moore para representao
da mquina seqencial.
Modelo de Mealy: Neste modelo, tanto a funo de sada com a de atualizao de estado,
dependem da entrada e do estado presente.
Analisando-se os modelos descritos, percebe-se que o Modelo de Moore um caso particular do Modelo
de Mealy; porm, ambos so equivalentes. A compreenso do funcionamento do Modelo de Moore ou mesmo
o de Mealy torna-se muito difcil sem que se tenha visto exemplos prticos, portanto, importante o estudante
23
MICROPROCESSADORES
de sistemas digitais voltar a analisar os modelos descritos anteriormente logo aps o entendimento da
representao de problemas atravs do processo da Tabela Primitiva de Fluxo que ser estudado a seguir.
um mecanismo de descrio de tarefas seqenciais, e como tal, deve permitir que se represente de
forma precisa o comportamento do sistema em estudo. Como os sistemas estudados neste curso processam
informaes digitais e evoluem por estados internos, esta tabela deve fixar estes estados e seu
relacionamento. Deve tambm permitir o conhecimento das sadas do sistema para um determinado conjunto
de entradas que lhe foi aplicado.
Entradas
Estados
00
01
11
Prximo
Estado
10
Sadas
1
2
3
X, S1 S2
4
5
A tabela primitiva de fluxo tem a forma mostrada acima, onde as colunas representam todas as
combinaes possveis das entradas permitidas no sistema, e as linhas representam os estados internos tidos
como necessrios. A construo da tabela primitiva de fluxo se faz na medida em que a tarefa vai sendo
descrita, e tem como caracterstica bsica possuir apenas um estado estvel por estado interno (um estado
estvel por linha da tabela). Um determinado conjunto de entradas permitidas (identificao das colunas),
aplicadas quando o sistema se encontra em um determinado estado interno (identificao da linha), define uma
nica clula da tabela primitiva de fluxo, que ser denominado de Estado Total do sistema. Nesta clula
dever constar o prximo estado interno (atualizao de estado) e as sadas que o sistema apresenta para o
conjunto de entradas que lhe foi aplicado. A tarefa estar com sua descrio completa, quando todas as
clulas (estados totais) da tabela primitiva tiverem sido preenchidas.
Segue um exemplo de preenchimento da tabela primitiva de fluxo na soluo de problemas elementares:
D
E
Contato
A
Contato
B
Carro
D
Boto M
E
Motores
24
MICROPROCESSADORES
Nesta figura, D (direita) e E (esquerda) so motores alimentados por rels 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 so dois contatos de fim de curso indicando que o carro se encontra em uma
destas duas posies. Deseja-se descrever um ciclo de operao do carro tal que, se for acionado o boto 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 pra e espera que o boto de presso M seja novamente acionado. Supor tambm que sempre que o
carro deixar A iniciando o movimento, no ser permitido apertar novamente o boto M at que o ciclo seja
completado.
Para construir a tabela primitiva de fluxo do problema, deve-se inicialmente definir suas entradas e
sadas:
O fato de o sistema possuir trs entradas binrias que so: M, A e B, permite combinar estas entradas
de 23 = 8 maneiras distintas, fazendo com que a tabela de fluxo possua um mximo de 8 colunas. Admita que,
por imposio 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.
MAB
Estados
000
001
011
010
110
111
101
100
0, 00
1, 00
3, 01
2, 01
1, 01
6, 01
3, 01
2, 01
3, 01
4, 01
5, 10
4, 10
5, 10
0, 10
3, 01
6, 01
6, 01
Prximo Estado
Interno
Sadas (E, D)
Continuando a anlise da tabela primitiva de fluxo, conclumos tambm que: como M um boto de
presso, e supondo que ele no pode ser apertado durante o percurso do carro, admitimos que no possvel
ter M = 1 e B = 1, o que elimina mais uma coluna (101) da tabela, restando apenas 5 colunas para serem
25
MICROPROCESSADORES
analisadas, que correspondem ao conjunto de entradas permitidas no sistema. A descrio a seguir deve ser
acompanhada pela tabela j preenchida.
Escolher um estado inicial de partida (estado 0) que ser estvel, e corresponde ao carro estacionado
em repouso sobre o contato A. Tem-se portanto M = 0 (boto no foi apertado), A = 1 (contato A acionado pelo
carro) e B = 0 (contato B no acionado). As sadas nesse caso sero E = 0 e D = 0, significando que o carro se
encontra parado.
O boto de presso 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 trs hipteses:
N2
N1
V
B
Bomba
Tanque
Resposta:
26
MICROPROCESSADORES
Contato
X
Boto B
Motor M
1) O boto B solto antes que o disco deixe o contato X. 2) O disco deixa o contato X, e a seguir o boto B
solto. 3) O disco deixa o contato X ao mesmo tempo em que o boto B solto.
Resposta:
Exerccio 3: Desenvolva a
Vidro Fechado
Vidro Aberto
tabela
de
fluxo
para
gerenciar o sistema ao lado.
Ao se abrir a porta (P) do
Sensor A
Sensor A
motorista de um carro,
imediatamente o circuito
eletrnico deve acionar um
motor (D) para descer o
vidro do motorista at
3 cm
atingir um sensor (B) que
Sensor B
Sensor B
est 3 cm para baixo.
Somente aps 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 ausncia de vidro; =1 presena
de vidro). Motores S e D (=0 desligado; =1 ligado).
Resposta:
27
MICROPROCESSADORES
4.
O Arranjo Lgico Programvel (PAL) serviu de embrio para a construo dos circuitos eletrnicos mais
avanados da atualidade, servindo inclusive de base
para a arquitetura da Unidade de Controle dos
Conjunto de
Conjunto de
microprocessadores atuais. O PAL um circuito
Entradas
Sadas
composto basicamente por dois blocos: Circuitos
Combinatrios e Memrias Internas.
E
S
Circuitos
Quando um conjunto de entradas (E)
aplicado sobre a mquina seqencial a partir de um
determinado estado interno (representado pelo
conjunto de variveis I), o bloco combinatrio se
encarrega de fornecer o conjunto (S) de sadas
correspondentes, e o prximo estado interno para o
qual o modelo seqencial deve evoluir, em
sincronismo com a ocorrncia do sinal de clock. As
memrias internas sero as responsveis pelo
armazenamento temporrio do estado do sistema
em certo instante t.
Combinatrios
Estado
Interno
Memrias
Internas
Prximo
Estado
Clock
Considere agora a substituio do bloco combinatrio (circuitos combinatrios) por uma memria da
famlia ROM e das memrias internas por biestveis, conforme a figura a seguir. Na memria ROM sero
armazenadas as funes de sada e do prximo
Conjunto de
Conjunto de
estado interno do sistema, e os elementos
Entradas
Sadas
biestveis sero responsveis pelo armazenamento
temporrio do estado do sistema.
E
Memria da
Famlia ROM
Estado
Interno
Flip-Flops
Tipo D
Prximo
Estado
Exemplo 1: Deseja-se implementar um contador que funcione de forma crescente ou decrescente, com
mdulo de contagem 5 ou 8 estados, conforme a necessidade do usurio. Para isso, podemos definir as
variveis da seguinte forma:
C Contagem (=0 crescente; =1 decrescente).
M Mdulo de Contagem (=0 mdulo 8; =1 mdulo 5).
C
M
Contador
Ck
I2
I3
28
MICROPROCESSADORES
A figura representa este sistema segundo a estrutura de mquina seqencial sncrona com as variveis
de entrada C, M e o sinal de clock Ck, e uma sada S que aciona estgios seguintes quando ao trmino da
contagem. O contador possuir no mximo 8 estados internos (mdulo 8), sendo necessrias 3 variveis
internas para sua designao. Trs biestveis do tipo D so, portanto, necessrios para o armazenamento de
cada varivel de estado. O sinal de clock sincroniza a operao dos biestveis, e as mudanas de estado de
todo o contador.
Para o desenvolvimento de um projeto feito atravs de Arranjo Lgico Programvel necessrio concluir
4 etapas: a Tabela de Fluxo, o Circuito Eletrnico, a Tabela de Gravao da ROM e a Tabela em Hexadecimal
(para a gravao da ROM).
1 - TABELA DE FLUXO
C M
Estados
00
01
11
10
I1 I2 I3
1, 0
1, 0
4, 1
7, 1
000
2, 0
2, 0
0, 0
0, 0
001
3, 0
3, 0
1, 0
1, 0
010
4, 0
4, 0
2, 0
2, 0
011
5, 0
0, 1
3, 0
3, 0
100
6, 0
4, 0
101
7, 0
5, 0
110
0, 1
6, 0
111
00
01
11
10
I1 I2 I3
1, 0
1, 0
4, 1
7, 1
000
2, 0
2, 0
0, 0
0, 0
001
3, 0
3, 0
1, 0
1, 0
010
4, 0
4, 0
2, 0
2, 0
011
5, 0
0, 1
3, 0
3, 0
100
6, 0
0, 1
3, 0
4, 0
101
7, 0
0, 1
3, 0
5, 0
110
0, 1
0, 1
3, 0
6, 0
111
29
MICROPROCESSADORES
Outra soluo que poderia ser feita a criao de uma segunda sada do PAL, no qual servir para
apontar ao usurio que houve uma mudana da lgica de contagem no meio do processo.
A tabela de fluxo tem por finalidade facilitar o desenvolvimento lgico da programao da memria ROM.
A capacidade dessa memria pode ser expressa em termos do nmero de entradas e sadas necessrias. No
exemplo do contador, verifica-se que a memria deve possuir um total de 5 entradas (C, M, I1, I2 e I3) e 4
sadas (S, I1, I2 e I3). A partir da sabe-se que essa memria tem dimenso: 25 x 4 ou 32 x 4.
2 CIRCUITO ELETRNICO
C
M
A4
A3
A2
A1
A0
I3
I2
I1
ROM
Q D
Q D
Q D
Q3
Q2
Q1
Q0
I3
I2
I1
Ck
30
MICROPROCESSADORES
4 HEXADECIMAL
ENDEREO
CONTEDO
HEXA
A4
A3
A2
A1
A0
Q3
Q2
Q1
Q0
END
CON
I1
I2
I3
I1
I2
I3
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
31
MICROPROCESSADORES
Exemplo 2: Deseja-se implementar um circuito eletrnico atravs do conceito de PAL capaz de executar o
controle de qualidade da pea desenhada abaixo, indicando se a mesma encontra-se boa, boa porm caiu de
ponta-cabea na esteira ou se est com defeito. Considere:
Pea Boa
Sensores
A
B
Esteira
S1
S2
PEA
Passando ou no chegou
Boa
Boa e de Ponta-Cabea
Ruim
A B
Estados
00
01
11
10
I1 I2 I3 I4
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
10
1010
11
1011
12
1100
13
1101
14
1110
15
1111
32
MICROPROCESSADORES
2 CIRCUITO ELETRNICO
No necessrio o preenchimento completo das tabelas dos itens 3 e 4 (tabela de gravao da ROM e
tabela em hexadecimal), pois no existe raciocnio lgico para ambas as tabelas, apenas a transposio e
reorganizao dos dados da tabela de fluxo. Portanto, considere apenas os endereos solicitados nas tabelas
a seguir.
ENDEREO
A5
A
0
0
0
...
...
0
0
...
...
0
0
...
...
1
1
...
...
1
1
A4
B
0
0
0
...
...
0
0
...
...
1
1
...
...
0
0
...
...
1
1
A3
I1
0
0
0
...
...
1
1
...
...
0
0
...
...
1
1
...
...
1
1
A2
I2
0
0
0
...
...
1
1
...
...
1
1
...
...
1
1
...
...
0
0
4 HEXADECIMAL
CONTEDO
A1
I3
0
0
1
...
...
0
0
...
...
0
1
...
...
0
1
...
...
0
0
A0
I4
0
1
0
...
...
0
1
...
...
1
0
...
...
1
0
...
...
0
1
HEXA
Q5
S1
Q4
S2
Q3
I1
Q2
I2
Q1
I3
Q0
I4
END
CON
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
33
MICROPROCESSADORES
Exerccio 1: Determine a Tabela de Fluxo, o circuito PAL, a Tabela de Gravao da Eprom e a Tabela de
Gravao em Hexadecimal.
Sensor A
Sensor B
S1
S2
Pea
Passando ou no chegou
Boa
Ruim
Pea Boa
(Ponta-Cabea)
Endereos solicitados para a Tabela de Gravao e Tabela Hexadecimal: 05, 0C, 27, 3A (Nmeros em
Hexadecimal)
Resposta:
34
MICROPROCESSADORES
35
MICROPROCESSADORES
Exerccio 2: Implementar o circuito PAL da pea abaixo. Mostrar a Tabela de Fluxo, o circuito PAL, a Tabela
de Gravao da Eprom e a Tabela de gravao em Hexadecimal.
Sensores A / B = 0 (Ausncia de Pea)
Sensor A
Sensor B
Pea Boa
Sadas S1 e S2:
S1
S2
Pea
Passando ou no chegou
Boa
Ruim
Pea Boa
(Ponta-Cabea)
Endereos para a Tabela de Gravao e Tabela Hexadecimal: 00, 01, 09, 13, 1A, 25, 26, 31 (Nmeros em
Hexadecimal).
Resposta:
36
MICROPROCESSADORES
37
MICROPROCESSADORES
5.
MICROPROCESSADOR X MICROCONTROLADOR
No possvel estar envolvido com atividades cientficas hoje em dia sem estar em contato com algum
tipo de microprocessador. Por isso, as pessoas tm diferentes idias do que seja um microprocessador. Uma
definio bem formulada de microprocessador define-o como um nico chip que contm uma unidade lgica e
aritmtica e capacidade para controle de memria e I/O.
Para que um microprocessador opere, resolvendo os mais variados problemas, necessrio um circuito
de apoio, composto de memrias, dispositivos de entrada e sada (I/O), circuitos de clock, entre outros. O
microcontrolador um microprocessador com um sistema de memria e I/O integrado, sendo muitas vezes
denominado de microcomputador ou single chip computer. Esta caracterstica faz com que os
microcontroladores sejam perfeitamente adequados para uso em funes de controle onde se deseja pequeno
consumo, diminudas dimenses, e no muita capacidade de processamento. As necessidades atuais mostram
que os microcontroladores de 8 bits so suficientemente poderosos para controlar quaisquer processos onde
no se necessite grandes capacidades de clculo numrico ou velocidade de operao.
Pode-se ter o pensamento simplista de que o microcontrolador inferior ao microprocessador. Na
verdade o microcontrolador adequado funo 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 vrios dispositivos
que consomem espao e energia e muitas instrues disponveis no seu microprocessador no sero
utilizadas. Atualmente, grande parte das tarefas executadas anteriormente por microprocessadores so hoje
realizadas por microcontroladores com vantagens significativas. Talvez a maior vantagem a ser mencionada
seja a reduo do custo final do projeto, pois reduzimos muito o nmero de componentes necessrios,
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 so componentes adequados s funes
especficas, como por exemplo, circuitos de televiso, telecomunicaes, controles remotos, entre outros. A
reduo do consumo atravs do uso de tecnologias mais avanadas como a CMOS tambm alvo para a
manufatura de equipamentos portteis alimentados bateria. J existem microcontroladores de 16, 32 e 64
bits, mas so 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 informao do futuro
necessitarem deste maior poder computacional.
38
MICROPROCESSADORES
6.
O MICROCONTROLADOR 8051
Um microcontrolador geralmente composto pelos seguintes blocos:
4K ROM
128 Bytes
RAM
Timer 0
Counter
Inputs
BUS
CPU
OSC
BUS
Control
Serial Port
4 I/O Ports
TXD
P0
P1
P2
RXD
P3
Address / Data
A figura anterior ilustra a composio tpica do microcontrolador 8051 com os elementos citados e suas
respectivas interligaes. As diferenas entre os diversos tipos de microcontroladores residem basicamente na
capacidade e tipos de memrias, na quantidade de ports disponveis ao usurio, na velocidade de operao, e
em outros recursos disponveis como, por exemplo, portas seriais, maior nmero de contadores, opo de
baixo consumo, entre outros.
Existem tambm, os componentes chamados derivativos que, como o prprio nome diz, so
microcontroladores derivados dos tipos mais comuns (8048 e 8051), ou seja, a clula bsica o
microcontrolador e este acrescido de outros componentes de acordo com as necessidades.
39
MICROPROCESSADORES
Nome do
Verso sem
Verso
Bytes de
Bytes de
Timers
Tipo de
Chip
ROM
EPROM
ROM
RAM
16 Bits
Circuito
8051
8031
8751
4K
128
NMOS
80C51
80C31
87C51
4K
128
HMOS
4K
128
SACMOS
8K
256
NMOS
80CL51
8052
8032
80C52
80C32
87C52
8K
256
CMOS
83C528
80C528
87C528
32K
512
3+1
CMOS
83C652
80C652
87C652
8K
256
CMOS
87C751
2K
64
CMOS
87C452
8K
256
CMOS
83C751
83C452
80C452
O elemento bsico desta famlia o 8051. Os outros componentes desta famlia esto descritos nos
manuais dos fabricantes. Atualmente, a tendncia mundial no uso de componentes de baixo consumo, torna
imperativo o desenvolvimento de projetos baseados na tecnologia CMOS, facilitando assim a interligao de
seus blocos. Todos os componentes que apresentarem um C em seu cdigo (80C31, 87C452, etc.)
pertencem a esta famlia e devem ser preferencialmente utilizados. Esta famlia representa o que existe de
mais avanado em microcontroladores de 8 bits, o que garante a continuidade de sua linha de produo por
um longo perodo.
As caractersticas desta famlia so:
CPU de 8 bits com conjunto de instrues otimizado para aplicaes de controle de processos;
Capacidade de processamento Booleano (manipulao de bit individualmente);
32 linhas de I/O bidirecionais e individualmente endereveis;
128 bytes de RAM on-chip (mnimo);
Dois contadores/temporizadores programveis de 16 bits;
Interface serial full-duplex;
Estrutura de interrupes com at 5 entradas permitindo 2 nveis de prioridade;
Gerador de clock;
Mnimo de 4Kbytes de memria de programa (ROM ou EPROM);
Capacidade de endereamento externo de at 64Kbytes.
40
40 P0.3 AD3
41 P0.2 AD2
36 P0.3 AD3
42 P0.1 AD1
37 P0.2 AD2
Pin (DIP)
43 P0.0 AD0
Index Corner
44 Vcc
NC
1
38 P0.1 AD1
P1.0 T2 **
P1.3
P1.1 T2EX **
P1.2
39 P0.0 AD0
P1.2
** T2EX P1.1
P1.3
40 Vcc
** T2 P1.0
P1.4
MICROPROCESSADORES
P1.4
P1.5
35 P0.4 AD4
P1.5
39 P0.4 AD4
P1.6
34 P0.5 AD5
P1.6
38 P0.5 AD5
P1.7
33 P0.6 AD6
P1.7
37 P0.6 AD6
Rst
32 P0.7 AD7
Rst 10
36 P0.7 AD7
RXD P3.0 10
31
EA / Vpp*
RXD P3.0 11
TXD P3.1 11
30 ALE / Prog*
NC 12
INT0 P3.2 12
29 PSEN
TXD P3.1 13
33 ALE / Prog*
INT1 P3.3 13
28 P2.7 A15
INT0 P3.2 14
32 PSEN
T0 P3.4 14
27 P2.6 A14
INT1 P3.3 15
31 P2.7 A15
T1 P3.5 15
26 P2.5 A13
T0 P3.4 16
30 P2.6 A14
WR P3.6 16
25 P2.4 A12
T1 P3.5 17
29 P2.5 A13
RD P3.7 17
24 P2.3 A11
XTAL2 18
23 P2.2 A10
XTAL1 19
22 P2.1 A9
Vss 20
21 P2.0 A8
35
P2.4 A12 28
P2.3 A11 27
34 NC
P2.2 A10 26
P2.1 A9 25
P2.0 A8 24
NC 23
Vss 22
XTAL1 21
XTAL2 20
RD P3.7 19
WR P3.6 18
EA / Vpp*
* EPROM Only
** 8052/8032 Only
41
MICROPROCESSADORES
MCS-51
HMOS or
CHMOS
XTAL2
MCS-51
HMOS or
CHMOS
XTAL2
External
Clock
Signal
External
Clock
Signal
XTAL2
XTAL1
VSS
VSS
C1
C2
XTAL1
VSS
MCS-51
HMOS
Only
XTAL1
Quartz Cristal
or ceramic
ressonator
MCS-51
CHMOS
Only
(IC)
External
Clock
Signal
XTAL2
XTAL1
VSS
42
MICROPROCESSADORES
6.4. Reset
A entrada do reset se d pelo pino RST, quando este mantido em nvel alto por pelo menos dois ciclos
de mquina, aps o circuito oscilador comear a funcionar. Logo aps o reset, os valores colocados nos
registradores so os indicados abaixo:
Fonte
Endereo
Fonte
Endereo
PC
Acc
B
PSW
SP
DPTR
P0-P3
IP
IE
TMOD
0000H
00H
00H
00H
07H
0000H
FFH
XXX00000b
0XX00000b
00H
TCON
TH0
TL0
TH1
TL1
SCON
SBUF
PCON
(HMOS)
PCON
(CHMOS)
00H
00H
00H
00H
00H
00H
Indeterminado
0XXXXXXXb
0XXX0000b
FFFFH:
FFFFH:
External
External
FFH:
__
EA=0
External
Internal
__
EA=1
Internal
0000
_____
PSEN
0
0
0000
___ ___
RD WR
43
MICROPROCESSADORES
(0033H)
002BH
0023H
Interrupt
Locations
001BH
8 Bytes
0013H
000BH
0003H
0000H
RESET
A configurao de hardware necessria para acesso memria externa ilustrada a seguir. Note que 16
linhas de I/O (port 0 e port 2) so dedicadas transio de sinais durante buscas memria externa. O port 0
opera como um barramento de dados e endereos multiplexado, emitindo o byte low do program counter como
endereo e aguarda o recebimento do byte de cdigo da memria de programa. Durante o tempo em que o
byte low est vlido no port 0, o sinal
ALE coloca este byte no latch de
endereos, enquanto o port 2 emite
MCS-51
EPROM
o byte alto de endereos. O sinal
Instr.
P0
PSEN pulsa, e o cdigo de byte
P1
lido pelo microcontrolador.
__
EA
ALE
Address
Latch
P3
P2
_____
PSEN
___
OE
O endereo de memria de
programa sempre de 16 bits,
mesmo quando a quantidade de
memria externa inferior
64Kbytes. Desta forma, sempre que
utilizarmos memria externa, dois
ports (port 0 e port 2) sero
sacrificados
em
funo
do
endereamento das mesmas.
P1
__
EA
VCC
Latch
ALE
Address
P2
___
RD
___
WR
P3
I/O
PAGE
BITS
___
WE
___
OE
44
MICROPROCESSADORES
seguir. O espao de memria est dividido em 3 blocos, normalmente denominados, Lower 128, Upper 128
and SFR (Special Function Register). A memria de dados interna tem sempre 1 byte de endereamento
apenas, o que significa que temos um mximo de 256 bytes de memria interna.
FFH
Upper 128
80H
7FH
Lower 128
FFH
Accessible
By indirect
Addressing
Only
Accessible
By direct
Addressing
Only
80H
Accessible
By direct
And indirect
Addressing
Special
Function
Registers
Entretanto, os modos de endereamento permitem o uso de at 384 bytes utilizando um truque simples.
Atravs de endereamento direto, acessamos um espao de memria e atravs de endereamento indireto,
acessamos um espao de memria diferente. Desta forma, os registradores de funo especial (SFR) e os
ltimos 128 bytes (Upper Space) so acessados nos mesmos endereos (de 80H at FFH) apesar de serem
fisicamente separados. Nas clulas bsicas 8051, a rea de memria alta no existe no chip, desta forma,
consideramos apenas a rea de memria baixa (Lower Space) para as nossas experincias (melhores
referencias a estas reas altas podem ser encontradas nos manuais dos fabricantes).
Os primeiros 128 bytes de memria interna esto mapeados como indica a prxima figura:
Os primeiros 32 bytes esto
agrupados em 4 bancos de 8
registradores,
chamados
pelas
instrues de programa de R0 at R7.
Dois bits no registrador da palavra de
controle (PSW) selecionam qual o
banco de registradores est em uso.
Este recurso permite um uso mais
eficiente do espao de cdigo, desde
que as instrues de registrador so
mais curtas do que se utilizando
endereamento direto.
7FH
30H
2FH
20H
11
18H
Bit-Addressable Space
(Bit Addresses 0 7F)
1FH
4 Banks of 8
17H
Os prximos 16 bytes acima do
10
10H
registers R0 R7
banco de registradores formam o bloco
0FH
01
08H
Reset value of
conhecido como memria enderevel
07H
00
stack pointer
0
por bit (bit addressable space). O
conjunto de instrues do 8051 inclui
vrios tipos de instrues de um s bit,
e os 128 bits presentes nessa rea podem ser diretamente endereados por estas instrues.
Todos os bytes nos primeiros 128 bytes de memria podem ser endereados direta ou indiretamente. Os
prximos 128 bytes s podem ser acessados indiretamente nos dispositivos que os possuem.
A rea de memria acima de 128 bytes constitui o registrador de funes especiais (SFR) cuja descrio
detalhada faremos posteriormente.
45
MICROPROCESSADORES
FF
F8
F0
F7
EF
E8
E0
ACC
E7
DF
D8
D0
PSW
D7
C8
CF
C0
C7
B8
IP
BF
B0
P3
B7
A8
IE
AF
A0
P2
A7
98
SCON
90
P1
88
TCON
TMOD
TL0
TL1
80
P0
SP
DPL
DPH
SBUF
9F
97
TH0
TH1
8F
PCON
87
Bit enderevel
Acumulador (Acc)
O acumulador o registrador onde se processam a maioria das operaes de um processador,
comumente encontradas num microprocessador de 8 bits. referido simplesmente pela letra A nos
mnemnicos das instrues.
Registrador B
um registrador utilizado durante as operaes de multiplicao e diviso, podendo ser utilizado como
registrador de uso geral em outras operaes.
CY
AC
F0
RS1
RS0
OV
46
MICROPROCESSADORES
O bit de carry, entre outras funes serve como vai um em operaes aritmticas, e tambm como
acumulador para um nmero de operao booleanas. Os bits RS0 e RS1 so utilizados para selecionar um
entre quatro bancos de registradores, disponveis nos primeiros 128 bytes de RAM. O bit de paridade indica a
quantidade de bits em NL1 no acumulador: se P=1, o acumulador contm um nmero mpar de 1s; se P=0, o
nmero de 1s no acumulador par. Dois bits do PSW esto disponveis e podem ser utilizados como flags de
uso geral. O flag de overflow afetado em operaes aritmticas. O PSW encontra-se localizado na rea
denominada SFR, no endereo D0H.
RS0
RS1
Banco Selecionado
Endereo
0
0
1
1
0
1
0
1
Banco 0
Banco 1
Banco 2
Banco 3
00H at 07H
08H at 0FH
10H at 17H
18H at 1FH
Buffer Serial
O Buffer de dados serial (Serial data BUFfer) consiste de dois registradores separados, o buffer de
transmisso e o buffer de recepo. Quando um dado colocado no buffer serial, ele vai diretamente para o
buffer de transmisso serial, e quando ele chega ao buffer de recepo, ele colocado diretamente no SBUF.
Existe um registrador que controla todas as operaes da interface serial chamado SCON (Serial
CONtrol). Seu contedo descrito abaixo.
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
47
MICROPROCESSADORES
SM0
SM1
Modo
Descrio
Freqncia
0
0
1
1
0
1
0
1
0
1
2
3
Shift Register
8 bit UART
9 bit UART
9 bit UART
PT2
PS
PT1
PX1
PT0
PX0
J o registrador IE (Interrupt Enable) permite a habilitao ou desabilitao de cada uma das fontes de
interrupo. Atravs de um bit neste mesmo registrador podemos atuar sobre todas as interrupes juntas.
EA
ET2
ES
ET1
EX1
ET0
EX0
O registrador TMOD (Timer MODe), permite o controle do modo de operao dos timers existentes no
microcontrolador, bem como a definio quanto operao como timer ou como contador.
48
MICROPROCESSADORES
C/T (1)
Gate (1)
M1 (1)
M0 (1)
Gate (0)
C/T (0)
M1 (0)
M0 (0)
Gate: Permite o disparo do timer atravs do hardware (gate=1), ou de software (gate=0), atravs do
registrador TCON.
C/T: Em 0 opera como timer, em 1 opera como contador.
M1: Modo de operao.
M0: Modo de operao.
M1
M0
0
0
1
1
0
1
0
1
Modo de Operao
0 Timer de 13 bits compatvel com o 8048.
1 Timer/counter de 16 bits.
2 Timer/counter de 8 bits auto reload.
3 No timer 0, TL0 define um contador de 8 bits e TH0 controlado pelos
bits de controle do timer 1. O timer 1 est parado.
A operao dos timers/counters depende tambm de um registrador denominado TCON (Timer CONtrol),
de onde podemos inicializ-lo e monitorar suas condies de funcionamento. Neste mesmo registrador
encontramos os flags de interrupes externas, os quais esto ativos quando da ocorrncia da interrupo.
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
Existe ainda um registrador para controle genrico das funes de alimentao do microcontrolador. O
registrador PCON (Power CONtrol) bastante utilizado quando optamos pela utilizao da tecnologia CHMOS
(80C51 por exemplo), para garantir baixo consumo em circuitos alimentados por bateria, ou ainda que
permaneam um grande perodo em stand-by.
SMOD
GF1
GF0
PD
IDL
49
MICROPROCESSADORES
7.
Todos os membros da famlia 8051 executam o mesmo conjunto de instrues. Este conjunto
composto por instrues otimizadas para aplicaes de controle, facilitando as operaes de dados atravs de
vrios modos de endereamento. Capacita ainda a operao de variveis de um bit, permitindo operao em
sistemas que demandam processamento booleano. A estrutura de formao da instruo na representao
mnemnica, ou em linguagem assembly, obedece a seguinte ordem:
OPCODE
DESTINO
FONTE
Assim, por exemplo, a instruo: MOV A, R0 move o contedo do registrador R0 para o acumulador. As
instrues sero divididas nos seguintes grupos:
Endereamento direto: Neste modo, o operando especificado por 8 bits de endereo na instruo.
Somente a RAM interna e os SFRs podem ser acessados diretamente.
Exemplo: A instruo ADD A, 7FH adiciona ao acumulador o contedo do endereo 7FH. J a
instruo MOV 90H, A move o contedo do acumulador para o endereo 90H (que ser a porta 0).
Endereamento indireto: No modo indireto, a instruo especifica um registrador que contm o endereo
do operando. Ambas as memrias, interna e externa podem ser acessadas desta forma. O registrador de
endereo, para operaes de 8 bits, pode ser R0 ou R1, ou ainda o Stack Pointer. Endereos de 16 bits
podem ser acessados somente pelo Data Pointer (DPTR).
Exemplo: A instruo ADD A, @R0 adiciona ao acumulador o contedo do endereo apontado por R0.
A instruo MOVX @DPTR, A move o contedo do acumulador para o endereo de RAM externo apontado
por DPTR.
50
MICROPROCESSADORES
Constantes imediatas: Podemos carregar um registrador com uma constante diretamente. Na linguagem
assembly, este modo indicado atravs do smbolo #.
Exemplo: A instruo MOV A, #100 carrega o acumulador com o valor 100 decimal (64H). A instruo
MOV DPTR, #05FEH move o valor 05FEH para o registro DPTR.
Endereamento indexado: Somente a memria de programa (ROM) pode ser acessada desta forma e
somente pode ser lida. Este modo de endereamento destinado leitura de tabelas. Um registrador de
16 bits (DPTR ou PC) indica o endereo de base da tabela e o acumulador carregado com o valor da
tabela.
Exemplo: A instruo MOVC A, @A + DPTR l a memria de programa no endereo dado por (A +
DPTR) e transfere o valor lido para o acumulador. A instruo MOVC A, @A + PC l a memria de
programa no endereo dado por (A + PC) e transfere o valor lido para o acumulador.
RAM Interna
A tabela a seguir mostra as instrues disponveis para movimentao de dados entre os espaos de
memria interna.
Mnemnico
Operao
Modo de Endereamento
Tempo de
Execuo (s)
MOV A, <fonte>
A = <fonte>
MOV <dest>, A
<dest> = A
<dest> = <fonte>
Constante imediata
PUSH <fonte>
Direto
POP <dest>
Direto
XCH A, <byte>
XCHD A, @RI
Indireto
A instruo MOV <dest>, <fonte> permite que os dados sejam transferidos entre qualquer dois
registradores da RAM interna ou dos SFR, sem o uso do acumulador. Lembre que os 128 bytes superiores
51
MICROPROCESSADORES
podem ser acessados apenas por endereamento indireto e os SFR apenas por endereamento direto.
A rea de stack reside na prpria RAM interna e as instrues de PUSH primeiro incrementam o stack
pointer, ento copia o byte no stack. As instrues de PUSH e POP usam apenas o endereamento direto para
identificar o byte que est sendo manipulado, enquanto que o stack acessado por endereamento indireto
atravs do registrador SP. Isto significa que o stack vai para os 128 bytes altos (se existirem) mas no para a
rea de SFR. Nos dispositivos onde no est implementado a rea alta, os bytes PUSHed so perdidos e os
bytes POPed so indeterminados.
As transferncias de dados incluem movimentaes em 16 bits, que podem ser utilizadas para inicializar
o Data Pointer (DPTR), para o uso de tabelas na memria de programa, ou para acesso memria de dados
externa.
A instruo XCH A, <byte> resulta na troca dos dados entre o acumulador e o byte endereado. A
instruo XCHD A, @RI similar, com a diferena que apenas os nibbles baixos esto envolvidos na
operao. Esta instruo facilita a manipulao de dados, de forma a economizar instrues nos programas.
RAM Externa
A memria externa pode ser acessada atravs de endereamento indireto, utilizando 8 ou 16 bits de
endereo. A escolha recai no uso de endereamento de um byte, atravs de @Ri, onde Ri pode ser R0 ou R1
do banco de registradores selecionado, ou um endereo de 2 bytes (16 bits) colocado no Data Pointer (DPTR).
A desvantagem do uso do endereamento de 16 bits est no fato de que, se utilizarmos um pequeno espao
de memria, ainda assim o port 2 ser inteiramente indisponibilizado para uso. No endereamento atravs de 8
bits, sacrificamos apenas algumas linhas do port 2.
A tabela a seguir indica as instrues de movimentao de dados em memria externa. Todas as
instrues so executadas em 2s, com um clock de 12MHz.
Largura do Endereo
Mnemnico
Operao
8 Bits
MOVX A, @Ri
8 Bits
MOVX @Ri, A
16 Bits
MOVX A, @DPTR
16 Bits
MOVX @DPTR, A
Em todos os acessos RAM externa, utilizamos sempre o acumulador como registrador intermedirio.
Os pulsos de READ ou WRITE so ativos somente durante a execuo da instruo MOVX. Normalmente
estes sinais esto inativos e se no forem utilizados, podem ser configurados como linhas de I/O extra.
Existem ainda duas instrues que esto disponveis para leitura de tabelas na memria de programa.
Estas instrues permitem apenas a leitura de dados na memria de programa (ROM), no permitindo a
atualizao dos mesmos. O mnemnico para esta MOVC (mov constant), e pode se apresentar de duas
formas:
Mnemnico
Operao
MOVC A, @A + DPTRs
MOVC A, @A + PC
MOVC A, @A + DPTR
MOVC A, @A + PC
A diferena reside no registrador auxiliar utilizado durante a leitura, que pode ser o DPTR ou o PC. A
52
MICROPROCESSADORES
primeira instruo permite o acesso tabelas de at 256 itens, sendo que o DPTR indica o incio da tabela, e o
acumulador indica o offset do endereo desejado. Com a variao (incremento) do acumulador, podemos ler a
tabela inteira mantendo o DPTR fixo. A outra instruo, utiliza o acumulador como base de endereamento e o
PC como offset, de forma que a leitura de tabelas deve ser feita atravs de subrotinas como a que se segue:
tabela:
MOVC A, @A + PC
RET
Este tipo de tabela pode conter at 255 itens, lembrando que neste caso, no podemos utilizar o valor 0
da tabela, que variar entre 1 e 255. Um valor colocado no offset 0 no ser lido.
Endereo
Mnemnico
Opcode
5000
DPTR:
R5:
End. 5005h:
R1:
End. 5030h:
53
MICROPROCESSADORES
Exerccio 2: Preencha a tabela de acordo com os mnemnicos. Em seguida, execute o programa no modo
passo-a-passo e preencha os valores solicitados.
Endereo
Mnemnico
5000
MOV A, #39h
Opcode
MOV R0, A
MOV A, #71h
MOV DPTR, #5018h
MOV @R0, A
MOVX @DPTR, A
MOV 20h, A
LCALL MONITOR
Valores Solicitados:
Acc:
End. 39h:
R0:
End. 5018h:
DPTR:
End. 20h:
Add A, 7FH
(endereamento direto)
Add A, @R0
(endereamento indireto)
Add A, R7
Add A, #127
(constante imediata)
Mnemnico
Operao
Modo de Endereamento
ADD A, <byte>
A = A + <byte>
ADDC A, <byte>
A = A + <byte> + C
SUBB A, <byte>
A = A - <byte> - C
INC A
A=A+1
Acumulador
INC <byte>
<byte> = <byte> + 1
INC DPTR
DPTR = DPTR + 1
Data Pointer
DEC A
A=A-1
Acumulador
DEC <byte>
<byte> = <byte> - 1
MUL AB
BeA=BxA
Acumulador e B
54
MICROPROCESSADORES
DIV AB
A = INT [A/B]
Acumulador e B
Acumulador
B = MOD [A/B]
DA A
Ajuste decimal
Endereo
Mnemnico
Opcode
5000
Valores solicitados:
Acc:
R0:
Universidade Santa Ceclia
55
MICROPROCESSADORES
End. 20h:
Mnemnico
Operao
Modo de
Endereamento
Tempo de
Execuo (s)
ANL A, <byte>
ANL <byte>, A
ANL <byte>, #DATA
ORL A, <byte>
ORL <byte>, A
ORL <byte>, #DATA
XRL A, <byte>
XRL <byte>, A
XRL <byte>, #DATA
CLR A
CPL A
RL A
RLC A
RR A
RRC A
SWAP A
A = A and <byte>
<byte> = <byte> and A
<byte> = <byte> and #DATA
A = A or <byte>
<byte> = <byte> or A
<byte> = <byte> or #DATA
A = A xor <byte>
<byte> = <byte> xor A
<byte> = <byte> xor #DATA
A = 00H
A = not A
Roda Acum. esquerda 1 bit
Roda Acum. esquerda c/ carry
Roda Acum. direita 1 bit
Roda Acum. direita c/ carry
Swap nibbles in A
1
1
2
1
1
2
1
1
2
1
1
1
1
1
1
1
Exerccio 4: Preencha a tabela de acordo com os mnemnicos. Em seguida, execute o programa e preencha
os valores solicitados.
Endereo
Mnemnico
5000
MOV A, #37h
Opcode
ANL A, #0Fh
MOV R1, #20h
ORL A, R1
MOV R2, A
CLR A
MOV A, #65h
XRL A, R2
LCALL MONITOR
56
MICROPROCESSADORES
Valores solicitados:
A:
R1:
R2:
Byte
20
21
22
23
24
25
26
27
28
29
2
2B
2C
2D
2E
2F
NOME
Byte
P0
TCON
P1
SCON
P2
IE
P3
IP
PSW
ACC
B
80
88
90
98
A0
A8
B0
B8
D0
E0
F0
Mnemnico
Operao
Tempo de
Execuo (s)
ANL C, bit
C = C and bit
ANL C, /bit
ORL C, bit
C = C or bit
ORL C, /bit
C = C or not bit
MOV C, bit
C = bit
MOV bit, C
bit = C
CLR C
C=0
CLR bit
bit = 0
SETB C
C=1
SETB bit
bit =1
CPL C
C = not C
57
MICROPROCESSADORES
CPL bit
JC REL
Jump If C = 1
JNC REL
Jump If C = 0
JB bit, REL
Jump If bit = 1
Jump If bit = 0
Este tipo de operao de bit no facilmente obtido em arquiteturas de microprocessador. Todos os bits
so acessados diretamente nos endereos 00H at 7FH na rea dos 128 bytes inferiores e de 80H at FFH no
espao SFR. Desta forma podemos atravs de instrues de programa, implementar circuitos lgicos dentro do
microcontrolador, evitando o uso de circuitos discretos ou PALs.
Endereo
Mnemnico
Opcode
5000
Valores solicitados:
07
06
05
04
03
End. 20h:
02
01
00
C:
Desvios Incondicionais
58
MICROPROCESSADORES
A tabela mostra uma nica instruo JMP end que na realidade implementada de trs formas. A
instruo SJMP (Short Jump) composta por dois bytes, constituindo um byte de opcode e um byte de offset.
Este fato limita o espao de endereamento em valores de -127 at +127 bytes em torno da instruo seguinte
do SJMP. Quando utilizamos a instruo LJMP (Long Jump) temos um comprimento de 3 bytes, que consiste
de dois bytes de endereo e um byte de opcode, permitindo o endereamento de 64Kbytes de memria de
programa. A instruo AJMP (Absolute Jump) codificada em 2 bytes sendo que o endereo formado por 11
bits e os 5 bits restantes utilizados no opcode.
Em todos os casos, o programador especifica o endereo de destino para o assembler da mesma forma,
um label ou uma constante de 16 bits. O assembler colocar o endereo de destino no formato correto para
cada dada instruo, e se o formato no comportar o valor, aparecer a mensagem Destination out of
range.
Temos ainda as instrues LCALL, que permite a chamada de subrotinas em qualquer posio dos
64Kbytes de memria, e ACALL, que se utiliza do mesmo formato de endereamento de 11 bits utilizado no
AJMP. As subrotinas devem ser finalizadas com o comando RET, e deve-se lembrar que cada chamada
demanda um RET, sem o qual o programa se perde.
Mnemnico
Operao
JMP end
JMP @A + DPTR
CALL end
RET
Retorno de subrotina
RETI
Retorno de interrupo
NOP
Sem operao
A instruo RETI utilizada como retorno da rotina de interrupo. A nica diferena entre a instruo
RET e a RETI, que a RETI informa ao sistema de controle de interrupo que a interrupo em progresso foi
atendida.
Os saltos acima listados so chamados de saltos incondicionais, pois no dependem de nenhuma
verificao de condies anteriores. Os chamados saltos condicionais, dependentes da verificao de certos
bits de controle, esto listados abaixo:
Desvios Condicionais
No existe bit de zero no registrador PSW, portanto as instrues JZ e JNZ devem testar o dado do
acumulador para estas condies. A instruo DJNZ adequada para controle de loops, pois sua configurao
de dupla funo (decrementa e testa) torna fcil a execuo de loops.
A instruo CJNE pode ser utilizada para controle de loops ou para teste condicional de bytes, na forma
de maior que ou menor que, pois existe a indicao de maior ou menor atravs do bit de CARRY, localizado
no PSW.
Mnemnico
Operao
Modo de
Endereamento
Tempo de
Execuo (s)
JZ rel
Salto se A=0
Acumulador
JNZ rel
Salto se A no 0
Acumulador
Decrementa e salta se no 0
Direto Registrador
Direto Imediato
Indireto Registrador
59
MICROPROCESSADORES
Endereo
Mnemnico
Opcode
5000
Valores solicitados:
Acc:
R3:
R5:
Exerccio 7: Preencha a tabela de acordo com os mnemnicos. Em seguida, execute o programa e preencha
os valores solicitados.
Endereo
RET
Mnemnico
5000
Opcode
MOV A, #3Ah
ADD A, R3
LCALL XYZ
DEC A
MOV DPTR, #5080h
INC DPTR
MOVX @DPTR, A
LCALL MONITOR
XYZ: MOV R5, #2Ch
XRL A, R5
MOV 25h, A
60
MICROPROCESSADORES
Valores solicitados:
A:
End. 25h:
R3:
DPTR:
R5:
End. 5081h:
61
MICROPROCESSADORES
8.
ENDEREO
DISPOSITIVO
0000H 3FFFH
ROM
4000H - BFFFH
RAM
C000H - DFFFH
Livre
E000H - FFFFH
Dispositivos perifricos
Dos 16 Kbytes disponveis de ROM, aproximadamente 12 Kbytes foram ocupados pelo programa
monitor, os 4 Kbytes restantes, de 3000H at 3FFFH esto disponveis. As posies iniciais da memria RAM
so utilizadas pelo programa monitor. Assim o usurio dever iniciar os seus programas a partir do endereo
5000H.
Alm das portas paralelas, porta serial e temporizadores, que so perifricos internos da famlia 8051,
foram incorporados alguns perifricos externos ao microcontrolador: teclado, display de cristal lquido,
conversor digital analgico de um canal de oito bits e um conversor analgico digital de oito canais
multiplexados de oito bits.
Tecla RESET.
Tecla 1 (INS/VER).
Tecla . (ESC).
Tecla 0 (EXEC).
ENTER.
62
MICROPROCESSADORES
ACC
DPTR
SP
PSW
PC
E_REG
REG_ESP
RBIT
Para visualizar outros registradores ou alguma posio de memria, teclar ESC e o registrador
desejado. Para voltar, pressione PPASSO.
63
MICROPROCESSADORES
9.
Os bits de flags sero afetados conforme indicado a seguir, ou por operaes no byte do registro SFR de
endereo 208 (PSW), ou ainda por operaes de bits nos endereos de 209 a 215 (bits do PSW).
Instrues
ADD
ADDC
ANL C, bit
ANL C, /bit
CJNE
CLR C
CPL C
DA
SUBB
C
X
X
X
X
X
0
X
X
X
Flags
OV
X
X
AC
X
X
Instrues
DIV
MOV C, bit
MUL
ORL C, bit
ORL C, /bit
RLC
RRC
SETB C
Flags
OV
X
C
0
X
0
X
X
X
X
1
AC
Direto ==> Indica um endereamento de memria de 8 bits (primeiras 256 posies interna ou externas).
@ ==> Significa "endereado pelo valor de ...."
#Dado ==> Indica valor constante de 8 bits.
#Dado 16 ==> Indica valor constante de 16 bits.
Addr 16 ==> Endereo destino de 16 bits. Usado para apontar para os 64 Kbytes do espao de memria de
programa.
Addr 11 ==> Endereo destino de 11 bits. Usado para apontar para os 2 Kbytes da pgina que contm a
instruo em uso.
Rel ==> Indica que endereamento relativo.
Bit ==> Usado para indicar endereamento direto de bit da RAM interna ou dos registros de funo especial.
INSTRUES ARITMTICAS
Opcode
Bytes
Perodo
ADD A, R0
28
12
ADD A, R1
29
12
ADD A, R2
2A
12
ADD A, R3
2B
12
ADD A, R4
2C
12
ADD A, R5
2D
12
ADD A, R6
2E
12
ADD A, R7
2F
12
ADD A, Direto
25
12
ADD A, @R0
26
12
ADD A, @R1
27
12
64
MICROPROCESSADORES
ADD A, #Dado
24
12
ADDC A, R0
38
12
ADDC A, R1
39
12
ADDC A, R2
3A
12
ADDC A, R3
3B
12
ADDC A, R4
3C
12
ADDC A, R5
3D
12
ADDC A, R6
3E
12
3F
12
35
12
36
12
37
12
ADDC A, R7
ADDC A, Direto
ADDC A, @R1
ADDC A, #Dado
34
12
SUBB A, R0
98
12
SUBB A, R1
99
12
SUBB A, R2
9A
12
SUBB A, R3
9B
12
SUBB A, R4
9C
12
SUBB A, R5
9D
12
SUBB A, R6
9E
12
SUBB A, R7
9F
12
95
12
96
12
ADDC A, @R0
SUBB A, @R0
SUBB A, @R1
97
12
SUBB A,#Dado
94
12
Incrementar acumulador.
04
12
Incrementar registro R0
08
12
Incrementar registro R1
09
12
INC R2
Incrementar registro R2
0A
12
INC R3
Incrementar registro R3
0B
12
INC R4
Incrementar registro R4
0C
12
INC R5
Incrementar registro R5
0D
12
INC R6
Incrementar registro R6
0E
12
INC R7
Incrementar registro R7
0F
12
INC Direto
05
12
INC @R0
06
12
INC @R1
07
12
DEC A
Decrementar acumulador.
14
12
DEC R0
Decrementar registro R0
18
12
SUBB A, Direto
INC A
INC R0
INC R1
65
MICROPROCESSADORES
DEC R1
Decrementar registro R1
19
12
DEC R2
Decrementar registro R2
1A
12
DEC R3
Decrementar registro R3
1B
12
DEC R4
Decrementar registro R4
1C
12
DEC R5
Decrementar registro R5
1D
12
DEC R6
Decrementar registro R6
1E
12
DEC R7
Decrementar registro R7
1F
12
DEC Direto
15
12
16
12
17
12
INC DPTR
A3
24
MUL AB
Multiplica A * B; resultado: BA
A4
48
DIV AB
84
48
DA A
D4
12
Opcode
Bytes
Perodo
DEC @R0
DEC @R1
INSTRUES LGICAS
ANL A, R0
58
12
ANL A, R1
59
12
ANL A, R2
5A
12
ANL A, R3
5B
12
5C
12
5D
12
5E
12
ANL A, R7
5F
12
ANL A, Direto
55
12
ANL A, @R0
56
12
ANL A, @R1
57
12
ANL A, #Dado
54
12
ANL Direto, A
52
12
53
24
ORL A, R0
OR registro R0 e acumulador.
48
12
ORL A, R1
OR registro R1 e acumulador.
49
12
ORL A, R2
OR registro R2 e acumulador.
4A
12
ORL A, R3
OR registro R3 e acumulador.
4B
12
ORL A, R4
OR registro R4 e acumulador.
4C
12
ORL A, R5
OR registro R5 e acumulador.
4D
12
OR registro R6 e acumulador.
4E
12
OR registro R7 e acumulador.
4F
12
45
12
46
12
ANL A, R4
ANL A, R5
ANL A, R6
ORL A, R6
ORL A, R7
ORL A, Direto
ORL A, @ R0
66
MICROPROCESSADORES
ORL A, @ R1
47
12
ORL A, #Dado
44
12
ORL Direto, A
42
12
43
24
XRL A, R0
68
12
XRL A, R1
69
12
XRL A, R2
6A
12
XRL A, R3
6B
12
6C
12
6D
12
XRL A, R6
6E
12
XRL A, R7
6F
12
XRL A, Direto
65
12
XRL A, @R0
66
12
XRL A, @R1
67
12
XRL A, #Dado
64
12
XRL Direto, A
62
12
63
24
CLR A
Zerar acumulador.
E4
12
CPL A
Complementar acumulador.
F4
12
23
12
33
12
03
12
13
12
C4
12
XRL A, R4
XRL A, R5
b0
b7
b0
b7
b0
SWAP A
b0
Cy
67
MICROPROCESSADORES
Opcode
Bytes
Perodo
MOV A, R0
E8
12
MOV A, R1
E9
12
MOV A, R2
EA
12
MOV A, R3
EB
12
MOV A, R4
EC
12
MOV A, R5
ED
12
MOV A, R6
EE
12
EF
12
E5
12
E6
12
E7
12
MOV A, R7
MOV A, Direto
MOV A, @R1
MOV A, #Dado
74
12
MOV R0, A
F8
12
MOV R1, A
F9
12
MOV R2, A
FA
12
MOV R3, A
FB
12
MOV R4, A
FC
12
MOV R5, A
FD
12
MOV R6, A
FE
12
MOV R7, A
FF
12
A8
24
A9
24
AA
24
AB
24
AC
24
AD
24
AE
24
AF
24
78
12
79
12
7A
12
7B
12
7C
12
7D
12
7E
12
7F
12
MOV Direto, A
F5
12
MOV Direto, R0
88
24
MOV Direto, R1
89
24
8A
24
MOV A, @R0
MOV Direto, R2
68
MICROPROCESSADORES
MOV Direto, R3
8B
24
MOV Direto, R4
8C
24
MOV Direto, R5
8D
24
MOV Direto, R6
8E
24
MOV Direto, R7
8F
24
85
24
86
24
87
24
24
F6
12
MOV @R1, A
75
F7
12
A6
24
A7
24
76
12
77
12
90
24
MOVC A, @A+DPTR
93
24
MOVC A, @A+PC
83
24
MOVX A, @R0
E2
24
MOVX A, @R1
E3
24
E0
24
F2
24
F3
24
F0
24
MOVX @DPTR, A
PUSH Direto
C0
24
POP Direto
D0
24
XCH A, R0
C8
12
C9
12
XCH A, R2
CA
12
XCH A, R3
CB
12
XCH A, R4
CC
12
XCH A, R5
CD
12
XCH A, R6
CE
12
XCH A, R7
CF
12
XCH A ,Direto
C5
12
XCH A, @R0
C6
12
XCH A, @R1
C7
12
MOVX A, @DPTR
MOVX @R0, A
MOVX @R1, A
XCH A, R1
69
MICROPROCESSADORES
XCHD A, @R0
D6
12
XCHD A, @R1
D7
12
Opcode
Bytes
Perodo
Zerar carry.
C3
12
C2
12
Setar carry.
D3
12
D2
12
CPL C
Complementar carry.
B3
12
CPL Bit
B2
12
ANL C, Bit
82
24
ANL C, /Bit
B0
24
ORL C, Bit
72
24
ORL C, /Bit
A0
24
MOV C, Bit
A2
12
MOV Bit, C
92
24
JC rel
Jump se carry = 1.
40
24
JNC rel
Jump se carry = 0.
50
24
JB Bit, rel
20
24
30
24
10
24
Opcode
Bytes
Perodo
a10a9a8 10001
a7a6a5a4a3a2a1a0
24
INSTRUES BOOLEANAS
CLR C
CLR Bit
SETB C
SETB Bit
INSTRUES DE DESVIO
ACALL End 11
LCALL End 16
12
24
RET
Retorno de subrotina.
22
24
RETI
Retorno de interrupo.
32
24
AJMP End 11
a10a9a8 00001
a7a6a5a4a3a2a1a0
24
LJMP End 16
Jump longo.
02
24
SJMP rel
80
24
JMP @A +DPTR
73
24
JZ rel
60
24
JNZ rel
70
24
B5
24
70
MICROPROCESSADORES
B4
24
B8
24
B9
24
BA
24
BB
24
BC
24
BD
24
BE
24
24
B6
24
BF
B7
24
D8
24
D9
24
DA
24
DB
24
DC
24
DD
24
DE
24
DF
24
DJNZ Direto,rel
D5
24
NOP
Nenhuma operao.
00
12
71
MICROPROCESSADORES
72
MICROPROCESSADORES
11. BIBLIOGRAFIA
Eletrnica Digital
Autor: Hairton Melo
Editora Makron Books
Microcontroladores 8051
Autor: Salvador P. Gimenez
Editora: Prentice Hall
73