Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo
Um sistema microprocessado bsico mostrado na figura abaixo:
Conceito de Barramento
O microprocessador tem trs barramentos que conduzem todas as
informaes e sinais necessrios operao do sistema. Estes barramentos
conectam o microprocessador (CPU) a cada um dos elementos de memria e de
E/S.
A15
0
0
1
1
A14
0
1
0
1
Microcontroladores
8048AH
8049AH
8050AH
8051
RAM
Interna
64
128
256
128
ROM
Interna
1K
2K
4K
4K
Linhas
I/O
27
27
27
32
8052AH
256
8K
32
80C51BH
128
4K
32
Perifricos
Timer
Timer
Timer
2 Timers
Canal Serial
3 Timers
Canal Serial
2 Timers
Canal Serial
Interrupes
Externas
1
1
1
2
Verso
EPROM
8748H
8749H
8751
Verso sem
ROM
8035AHL
8039AHL
8040AHL
8031
8751H
8032AH
87C51
80C31BH
Nome
Descrio
19
20
21 a 28
29
30
31
32 a 39
40
RXD/data
P3.1
TXD/clock
P3.2
INT0\
P3.3
INT1\
P3.4
P3.5
P3.6
P3.7
T0
T1
WR\
RD\
Memria de programa.
Os 64 Kbytes de memria de dados externa so acessados pelo dispositivo
atravs dos sinais RD e WR .
Memria de Dados:
A memria de dados corresponde s RAMs internas e externas.
7E
76
6E
66
5E
56
4E
46
3E
36
2E
26
1E
16
0E
06
7D
75
6D
65
5D
55
4D
45
3D
35
2D
25
1D
15
0D
05
7C
74
6C
64
5C
54
4C
44
3C
34
2C
24
1C
14
0C
04
7B
73
6B
63
5B
53
4B
43
3B
33
2B
23
1B
13
0B
03
7A
72
6A
62
5A
52
4A
42
3A
32
2A
22
1A
12
0A
02
79
71
69
61
59
51
49
41
39
31
29
21
19
11
09
01
78
70
68
60
58
50
48
40
38
30
28
20
18
10
08
00
Endereos
dos bytes
2FH
2EH
2DH
2CH
2BH
2AH
29H
28H
27H
26H
25H
24H
23H
22H
21H
20H
Endereo
80H
90H
A0H
B0H
81H
8DH
8BH
8CH
8AH
88H
89H
87H
98H
99H
A8H
B8H
D0H
E0H
F0H
83H
Funo
Port0 I/O
Port1 I/O
Port2 I/O
Port3 I/O
Indica ltimo endereo de armazenagem na pilha
Byte mais significativo do temporizador/contador T1
Byte menos significativo do temporizador/contador T1
Byte mais significativo do temporizador/contador T0
Byte menos significativo do temporizador/contador T0
Contm o Controle e Modo de Operao dos
temporizadores/contadores
Usado para Controle de Potncia
Contm dados para programao do canal serial
Contm o dado recebido ou a ser transmitido
Indica quais interrupes sero habilitadas ou desabilitadas
Contm a indicao da prioridade de cada interrupo
Sinaliza eventos na ULA e indica o Banco de Registros
Registros de uso geral
Registros de uso geral
Juntos formam o DPTR, usado para endereamento indireto
10
DPL
82H
Reset
O reset uma operao que causa reinicializao do sistema. Isso pode ser
feito quando o pino 9 (RST) permanecer em nvel alto por um determinado perodo.
Quando o reset ativado, a CPU executa as seguintes funes:
- o PC (Program Counter), o acumulador (A), o registro B, os flags, o DPTR e
todos os registros dos temporizadores/contadores so ZERADOS;
- no SP (Stack Pointer) colocado o valor 07;
- as portas P0 a P3 tero o valor FFH. Isso deve ser levado em considerao no
projeto do hardware, para evitar acionamentos indesejveis de algum perifrico
externo;
- o SBUF (Buffer Serial) estar com contedo indeterminado e o registro de
controle da porta serial (SCON) ser zerado;
- o registro PCON ter apenas seu bit mais significativo zerado;
- os registros de controle de interrupo (IE e IP) contero o valor binrio
XXX00000, onde X = irrelevante.
No reset forado, a RAM interna no afetada.
Ciclo de Mquina
Um ciclo de mquina consiste de uma sequncia de 6 estados (S1 a S6).
Cada estado toma 2 perodos de clock e, portanto, um ciclo de mquina toma 12
perodos de clock ou 1 s sob uma frequncia de 12 MHz.
A figura abaixo mostra a sequncia de busca/execuo para alguns tipos de
instrues. Normalmente dois ciclos de busca so executados em cada ciclo de
mquina mesmo que a instruo sendo executada no o requer, caso em que o byte
buscado ignorado e o PC no incrementado.
11
12
Interrupes
O microcontrolador 8051 possui as seguintes fontes de interrupo: 2
interrupes externas, 2 interrupes de temporizadores e uma interrupo pela
porta serial.
Interrupt Enable (IE) Cada uma das fontes de interrupo pode ser habilitada ou
desabilitada setando ou limpando um bit do registrador IE localizado na regio SFR.
Este registrador tambm contm um bit global que pode desabilitar todas as
interrupes de uma s vez. A figura abaixo mostra o registrador IE
13
Prioridade de Interrupes
Cada fonte de interrupo pode ser programada para um de dois nveis de
interrupo setando ou limpando um bit do registrador IP (Interrupt Priority)
localizado no espao SFR e mostrado na figura abaixo.
14
15
Interface Serial
O 8051 possui uma porta serial full-duplex, o significa que ela pode enviar e
transmitir dados simultaneamente. Essa interface pode operar em 4 modos:
- Modo 0: (modo sncrono) 8 bits do dado serial entram e saem por RxD0. TxD0
tem como sada o sinal de clock deslocado em fase. A velocidade de transmisso
de 1/12 clock.
-
16
PSW.6
AC
PSW.5
F0
PSW.4
RS1
PSW.3
RS0
PSW.2
OV
PSW.1
-
PSW.0
P
RS0
0
1
0
1
Banco de Registradores
0
1
2
3
Endereo
00H-07H
08H-0FH
10H-17H
18H-1FH
Modos de Endereamento
Para acessar um dado, as instrues do microcontrolador 8051 contam com
seis tipos de endereamentos:
Modo Imediato: nesse modo, o endereo do operando especificado por um
campo de 8 bits na instruo. Somente RAM de dados interna e a regio SFR
podem ser diretamente endereadas.
Ex: MOV A, 25H; A (25H)
- Move contedo da posio de memria 25H (RAM) para o acumulador (A).
Modo Registrador: a instruo a ser executada contm o nome de um dos
registradores de R0 a R7 que ser acessado. Um dos quatro bancos de registros
selecionado (RS1 e RS0, no registro PSW) em tempo de execuo do programa.
Assim podemos identificar qual registro (R0 a R7) e de qual banco de registros
estamos acessando.
Ex: MOV A, R1; A R1
- Move o contedo de R1 para o acumulador (A).
Modo Indireto: a instruo especifica um registrador que contm o endereo do
operando. Ambas externa e interna RAMs podem ser indiretamente acessadas. Se
tal endereo possui 8 bits, seu valor armazenado em R0 ou R1, do respectivo
Prof. Sidney Jos Montebeller - FACENS
17
banco selecionado, ou no Stack Pointer. Por outro lado, se tal endereo possui 16
bits, seu valor armazenado no registrador DPTR.
Ex: MOV @R1, 15H; (R1) (15H)
- Move contedo da posio de memria 15H (RAM) para a posio de memria
endereada por R1.
Modo Especfico a Registro: o registro a ser acessado faz parte do cdigo de
operao da instruo.
Ex: DA A;
- Ajuste decimal do acumulador.
Modo Constante Imediata: quando uma constante faz parte da instruo.
Ex: MOV A, #20H; A 20H
- Move o valor 20H para o acumulador.
Modo Indexado: somente a Memria de Programas, cuja nica operao leitura,
pode ser acessada por esse modo. usado para fazer leituras em tabelas na
Memria de Programas. Um registrador de 16 bits (DPTR ou PC) aponta para o
incio da tabela enquanto o Acumulador ajustado para a n-sima posio da
mesma. O endereo de uma entrada para a tabela formado pela soma entre o
Acumulador e o registrador de 16 bits.
Ex: JMP @A + DPTR; PC A + DPTR
- Desvia para o endereo obtido da soma do acumulador com o DPTR.
Modo Desvio Indexado: usado em instrues de desvio condicionais, onde estas
instrues somam ao PC j ajustado o dado de 8 bits presente no final da instruo.
Ex: JNZ 05H; PC PC + 05H
- Desvia se acumulador no for zero.
18
Generalidades
-
19
DPTR,
MOVC A, @A
+ DPTR
MOVC A, @A
+ PC
MOVX A, @Ri
MOVX
@DPTR
A,
MOVX @Ri, A
COND.
FLAGS
CY AC
OPERAO
DE
OV
N DE N
DE
BYTES ESTADOS
A Rn
12
A (N)
12
A (Ri)
12
AN
12
Rn A
12
Rn (N)
24
Rn N
12
(N) A
12
(N) (Rn)
24
(N1) (N2)
24
(N) (Ri)
24
(N) N
24
(Ri) A
12
(Ri) (N)
24
(Ri) N
12
DPTR NN
24
24
A (A + PC)
24
A (Ri)
24
A (DPTR)
24
(Ri) A
24
A (A
DPTR)
20
OPERAO
COND.
FLAGS
CY AC
DE
OV
N DE N
DE
BYTES ESTADOS
(DPTR) A
24
SP SP + 1
(SP) N
24
N (SP)
SP SP - 1
24
A Rn
12
A (N)
12
A (Ri)
12
A3-A0 (Ri)
3-0
12
21
OPERAO
ADD A, Rn
A A + Rn
COND.
FLAGS
CY AC
*
*
A A + (N)
12
A A + (Ri)
12
AA+N
12
A A + Rn +
*
CY
12
A A + (N) +
*
CY
12
A A + (Ri)
*
+ CY
12
12
12
A A - (N) *
CY
12
A A - (Ri) *
CY
12
12
1
1
12
12
12
12
1
1
12
12
(N) (N) - 1
12
(Ri) (Ri) - 1
12
24
48
48
12
Soma Rn ao Acumulador
Soma o contedo da posio
ADD A, N
de memria N ao Acumulador
Soma o contedo da RAM
ADD A, @Ri
endereada
por
Ri
ao
Acumulador
Soma a constante N ao
ADD A, #N
Acumulador
Soma Rn e o flag Carrry ao
ADDC A, Rn
Acumulador
Soma o contedo da posio
ADDC A, N
de memria N e o flag Carry
ao Acumulador
Soma o contedo da RAM
ADDC A, @Ri endereada por Ri e o flag
Carry ao Acumulador
Soma a constante N e flag
ADDC A, #N
Carry ao Acumulador
Subtrai Rn e o flag Carry do
SUBB A, Rn
Acumulador
Subtrai
o
contedo
da
posio de memria N e o
SUBB A, N
flag Carry do Acumulador
Subtrai o contedo da RAM
SUBB A, @Ri endereada por Ri e o flag
Carry do Acumulador
Subtrai a constante N e o flag
SUBB A, #N
Carry do Acumulador
INC A
Soma 1 ao Acumulador
INC Rn
Soma 1 ao Rn
Soma 1 ao contedo da
INC N
posio de memria N
Soma 1 ao contedo da RAM
INC @Ri
endereada por Ri
DEC A
Subtrai 1 do Acumulador
DEC Rn
Subtrai 1 de Rn
Subtrai 1 do contedo da
DEC N
posio de memria N
Subtrai 1 do contedo da
DEC @Ri
RAM endereada por Ri
INC DPTR
MUL AB
DIV AB
DA A
A A + N +
*
CY
A A - Rn *
CY
A A - N *
CY
*
AA+1
Rn Rn + 1
DE
OV
*
N DE N
DE
BYTES ESTADOS
1
12
(N) (N) + 1
(Ri) (Ri) +
1
AA-1
Rn Rn - 1
DPTR
DPTR + 1
Multiplica A e B, resultado: BA BA A x B
0
Divide A e B, resultado: A
AeBA/B 0
inteiro e B resto
Ajuste
decimal
do
*
A (A)10
Acumulador
Soma 1 ao registro DPTR
*
*
22
Instrues de Desvio
MNEMNICO DESCRIO
ACALL N
LCALL NN
RET
RETI
AJMP N
LJMP NN
SJMP N
JMP @A
DPTR
JZ N
JNZ N
CJNE A, N, N
CJNE A, #N,
N
CJNE Rn, #N,
N
CJNE
#N, N
@Ri,
DJNZ Rn, N
DJNZ N, N
NOP
OPERAO
COND.
FLAGS
CY AC
DE
OV
N DE N
DE
BYTES ESTADOS
2
24
24
1
1
24
24
PC PC + N
24
PC NN
24
PC PC + N
24
PC A +
DPTR
24
24
24
24
24
24
24
24
24
12
23
Operao E entre Rn e
Acumulador
Operao
E
entre
o
contedo da memria N e o
Acumulador
Operao E entre RAM
endereada
por
Ri
e
Acumulador
Operao
E
entre
a
constante N e Acumulador
Operao
E
entre
Acumulador e memria N
Operao E entre constante
N e memria N
Operao OU entre Rn e
Acumulador
Operao
OU
entre
memria N e Acumulador
Operao OU entre RAM
endereada
por
Ri
e
Acumulador
Operao
OU
entre
constante N e Acumulador
Operao
OU
entre
Acumulador e contedo da
memria N
Operao
OU
entre
constante N e contedo da
memria N
Operao OU EXCLUSIVO
entre Rn e Acumulador
Operao OU EXCLUSIVO
entre o contedo da memria
N e Acumulador
Operao OU EXCLUSIVO
entre RAM endereada por Ri
e Acumulador
Operao OU EXCLUSIVO
entre
constante
N
e
Acumulador
Operao OU EXCLUSIVO
entre Acumulador e contedo
da memria N
Operao OU EXCLUSIVO
entre a constante N e o
contedo da memria N
Faz A = 0
Inverte o estado dos bits do
Acumulador
Rotao do Acumulador para
esquerda
OPERAO
COND.
FLAGS
CY AC
DE
OV
N DE N
DE
BYTES ESTADOS
A A ^ Rn
12
A A ^ (N)
12
A A ^ (Ri)
12
AA^N
12
(N) (N) ^ A
12
(N) (N) ^ N
24
A A v Rn
12
A A v (N)
12
A A v (Ri)
12
AAvN
12
(N) (N) v A
12
(N) (N) v N
24
A A Rn
12
A A (N)
12
A A (Ri)
12
AAN
12
(N) (N) A
12
(N) (N) N
24
A 00H
12
A A
12
An + 1 An
A0 A7
12
24
RLC A
RR A
RRC A
SWAP A
OPERAO
COND.
FLAGS
CY AC
DE
OV
N DE N
DE
BYTES ESTADOS
1
12
12
12
12
25
Instrues de Flag/Bit
MNEMNICO DESCRIO
OPERAO
CLR C
CLR bit
SETB C
SETB bit
CPL C
CY 0
bit 0
CY 1
bit 1
CY CY
CPL bit
ANL C, bit
ANL C,bit
ORL C, bit
ORL C,bit
MOV C, bit
MOV bit, C
JC N
JNC N
JB bit, N
JNB bit, N
JBC bit, N
COND.
FLAGS
CY AC
0
DE
OV
N DE N
DE
BYTES ESTADOS
1
2
1
2
1
12
12
12
12
12
bit bit
12
CY CY ^
*
bit
24
CY
^bit
24
CY CY v
*
bit
24
CY
vbit
24
12
24
24
24
24
24
24
1
*
CY
CY
CY bit
bit CY
se CY = 1
PC PC + N
se CY = 0
PC PC + N
se bit = 1
PC PC + N
se bit = 0
PC PC + N
se bit = 1
PC PC + N
Bit = 0
26
Interrupes
Os tipos de interrupo do 8051 so:
Interrupo
Interrupo Externa 0 (INT0)
Temporizador/Contador 0
Interrupo Externa 1 (INT1)
Temporizador/Contador 1
Canal Serial
Interrupes do 8051.
Endereo
0003H
000BH
0013H
001BH
0023H
IE.5
-
IE.4
ES
IE.3
ET1
EA :
ES :
IE.2
EX1
IE.1
ET0
IE.0
EX0
IP.6
-
IP.5
-
IP.4
PS
IP.3
PT1
IP.2
PX1
IP.1
PT0
IP.0
PX0
27
Registro IP.
PS :
TCON.4 TCON.3
IE1
TCON.2 TCON.1
IT1
IE0
TCON.0
IT0
Registro TCON.
IE1 : setado com a ocorrncia de uma borda de descida no pino da Interrupo
Externa 1. zerado quando a interrupo for atendida.
IT1 : 0 = Deteco atravs de nvel 0 no pino da Interrupo Externa 1.
1 = Deteco atravs da ocorrncia de uma borda de descida no pino da
Interrupo Externa 1.
IE0 : setado com a ocorrncia de uma borda de descida no pino da Interrupo
Externa 0. zerado quando a interrupo for atendida.
IT0 : 0 = Deteco atravs de nvel 0 no pino da Interrupo Externa 0.
1 = Deteco atravs da ocorrncia de uma borda de descida no pino da
Interrupo Externa 0.
28
Temporizadores / Contadores
O 8051 possui dois temporizadores/contadores:
-
TCON.4 TCON.3
TR0
TCON.2 TCON.1
TCON.0
GATE-1 :
29
T/C-1 :
Modo de Operao
Modo 0
Modo 1
Modo 2
Modo 3
GATE-0 :
T/C-0 :
Modo de Operao
Modo 0
Modo 1
Modo 2
Modo 3
30
31
Contador (TH0)
15 14 13 12 11 10
9
8
Temporizadores/Contadores no modo 3.
Contador (TL0)
5
4
3
2
Comunicao Serial
O 8051 transmite dados seriais pelo pino TxD/clock e recebe dados seriais
pelo pino RxD/data.
Registrador SCON (Serial Port Control) Registrador de controle da comunicao
serial.
SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
Registro SCON.
SM0, SM1 : Definem o modo de operao do canal serial
SM0
SM1
Modo de Operao
Velocidade
Modo 0
Clock / 12
Modo 1
Varivel
Modo 2
Clock / 32 ou Clock / 64
Modo 3
Varivel
REN : 0 = Desabilita recepo (o pino RxD pode ser usado como E/S).
1 = Habilita recepo de dados seriais.
TB8 :
- Indica, nos modos 2 e 3, o estado do 9 bit a ser transmitido.
RB8 :
- No usado no modo 0.
32
No modo 1 indica o estado do bit de STOP recebido (desde que o bit SM2 esteja
zerado).
Nos modos 2 e 3 indica o estado do 9 bit do dado recebido.
SBUF.6
SBUF.5
SBUF.4
SBUF.3
SBUF.2
SBUF.1
SBUF.0
Registro SBUF.
Modo 0:
Transmisso e recepo so sncronas.
Os bits de dados so transmitidos e recebidos pelo pino RxD/data.
O clock de transmisso e da recepo gerado pelo pino TxD/clock.
So transmitidos ou recebidos dados de 8 bits.
A velocidade de comunicao clock / 12.
Modo 1:
Transmisso e recepo so assncronas.
Os bits de dados so transmitidos pelo pino TxD.
Os bits de dados so recebidos pelo pino RxD.
Velocidade de comunicao varivel e fornecida pelo temporizador/contador
1.
Os dados tem 10 bits, sendo:
- 1 bit de Start (nvel 0).
- 8 bits de dados.
- 1 bit de Stop (nvel 1).
Modo 2:
33
Modo 3:
Idntico ao modo 2, mas com velocidade varivel.
34