Capítulo 2
A família de Microcontroladores MCS-51
da Intel

Membro original é o 8051;
 CPU de 8 bits otimizada para aplicações de controle;
 Poderosa capacidade de processamento booleano, incluindo
lógica individual de bits;
 64 Kbytes de endereçamento de memória de programa;
 64 Kbytes de endereçamento de memória de dados;
 4 Kbytes de memória de programa interna;
Prentice Hall
Microcontroladores 8051
1
Capítulo 2:

128 bytes de memória RAM de dados interna;
 32 linhas de I/O bidirecionais endereçáveis individualmente;
 2 Timers/Contadores de 16 bits;
 5 entradas de interrupções (3 internas e 2 externas) com 2 níveis
de prioridade;
 1 oscilador interno de relógio.
Prentice Hall
Microcontroladores 8051
2
Capítulo 2:
Arquitetura do 8051
Interrupções Internas
(3) e Externas (2)
Controle de
Interrupções
ROM
RAM
Entradas
externas de
clock dos
Contadores
Timer 0
Timer 1
CPU
OSC
Bar.
Controle
4 Portes de Ent/Sai
P0
P1
P2
Porte Serial
P3
TX
RX
Figura 1: Arquitetura básica do microcontrolador 8051.
Prentice Hall
Microcontroladores 8051
3
Capítulo 2:

Família de Microcontroladores MCS-51 da Intel
Dispositivo
Versão sem
ROM
Versão
com
EPROM
8051
8031
-
8051AH
8031AH
8052AH
8032AH
8751AH
8751BH
8752BH
80C51BH
80C31BH
87C51
80C52
80C32
-
83C51FA
80C51FA
87C51FA
83C51FB
80C51FA
87C51FB
83C152JA
80C152JA
-
-
80C152JB
-
83C152JC
80C152JC
-
-
80C152JD
-
83C452
80C452
87C452P
Capacidade Capacidade
da ROM
da RAM
Portes
de E/S
de 8 bits
Timers/
Contadores de
16 bits
Matrizes de
contadores
programáveis
UART
Canais
de DMA
Canais
A/D
Fontes de
interrupção
4K
4K
128
128
4
4
2
2
X
X
6/5
6/5
8K
4K
8K
8K
16K
8K
8K
8K
256
128
256
256
256
256
256
256
256
256
4
4
4
4
4
5
7
5
7
5
3
2
3
3
3
2
2
2
2
2
X
X
X
X
X
X
X
X
X
X
8/6
6/5
8/6
14/7
14/7
19/11
19/11
19/11
19/11
9/8
X
X
2
2
2
2
Modos de
baixo
consumo e
Idle
X
X
X
X
X
X
X
X
X
Tabela 1: A família de microcontroladores de 8 bits da Intel.
Prentice Hall
Microcontroladores 8051
4
Capítulo 2:
Pinagem do 8051
Entrada do sinal externo de Reset
----9
----18
Reset
X2
EA/
ALE
----31
----30
----19
----39
X1
P0.0/AD0
PSEN/
P2.0/A8
----29
----21
----38
----37
----36
----35
----34
----33
----32
----1
----2
----3
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P1.0
P1.1
P1.2
8
----22
----23
----24
----25
----26
----27
----28
----10
----11
----12
Bit 0 do porte 3 ou pino de recepção de
dados seriais
Bit 1 do porte 3 ou pino de transmissão de
dados seriais
Bit 2 do porte 3 ou sinal de entrada externa
da interrupção 0
Bit 3 do porte 1
----4
P1.3
1
----13
Bit 3 do porte 3 ou sinal de entrada externa
da interrupção 1
Bit 4 do porte 1
----5
----6
----7
P1.4
P1.5
P1.6
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
/
P3.3/INT1
/
P3.4/T0
P3.5/T1
P3.6/WR/
----14
----15
----16
----8
P1.7
P3.7/RD/
----17
Bit 4 do porte 3 ou sinal de entrada de clock
do timer 0
Bit 5 do porte 3 ou sinal de entrada de clock
do timer 1
Bit 6 do porte 3 ou sinal de saída de
controle de escrita de memória de dados
externa (RAM)
Bit 7 do porte 3 ou sinal de saída de
controle de leitura de memória de dados
externa (RAM)
Entrada 2 do circuito oscilador
externo a cristal
Entrada 1 do circuito oscilador
externo a cristal
Porte 0 ou Barramento de
Endereços menos significativo e
dados (multiplexados): Bit 0 de
porte 0 ou A0 e D0
Bit 1 de porte 0 ou A1 e D1
Bit 2 de porte 0 ou A2 e D2
Bit 3 de porte 0 ou A3 e D3
Bit 4 de porte 0 ou A4 e D4
Bit 5 de porte 0 ou A5 e D5
Bit 6 de porte 0 ou A6 e D6
Bit 7 de porte 0 ou A7 e D7
Bit 0 do porte 1
Bit 1 do porte 1
Bit 2 do porte 1
Bit 5 do porte 1
Bit 6 do porte 1
Bit 7 do porte 1
0
5
Sinal de saída para acesso externo a
memória de programa
Sinal de saída habilitador de captura
externa do byte de endereço menos
significativo que está multiplexado com o
byte de dados
Sinal de saída de controle de leitura da
memória de programa externa (ROM)
Porte 2 ou Barramento de Endereços mais
significativo:
Bit 0 do porte 2 ou A8
Bit 1 do porte 2 ou A9
Bit 2 do porte 2 ou A10
Bit 3 do porte 2 ou A11
Bit 4 do porte 2 ou A12
Bit 5 do porte 2 ou A13
Bit 6 do porte 2 ou A14
Bit 7 do porte 2 ou A15
Figura 2:
Pinagem do
8051
Prentice Hall
Microcontroladores 8051
5
Capítulo 2:
Memória de programa e memória de dados
Memória de Programa:
Memória de Dados:
FFFFh
Externa
FFFFh
Externa
Interna
FFh
1000h
0FFFh
PSEN\
EA\=0
Externa
EA\=1
Interna
80h
7Fh
128 bytes
superiores
SFRs
128 bytes
inferiores
00h
0000h
RD\
0000h
WR\
Figura 3: Organização da Memória da família de microcontroladores MCS-51 da Intel.
Prentice Hall
Microcontroladores 8051
6
Capítulo 2:
Endereçamento das Interrupções
ROM
07FFh
Timer 2
(8052/32)
:
:
:
:
0033h
0032h
002Bh
Serial Port
002Ah
0023h
Timer 1
0022h
001Bh
Ext. Int. 1
Timer 0
Ext. Int. 0
Reset
001Ah
0013h
0012h
000Bh
000Ah
0003h
8 bytes
0002h
0000h
Figura 4: Memória de programa do MCS-51.
Prentice Hall
Microcontroladores 8051
7
Capítulo 2:
8051
P1
ROM/EPROM
OE\=OEbarra
D7-D0
PSENbarra
P0
Latch
ALE
P3
Endereços mais
significativos
P2
EAbarra
Endereços menos
significativo
GND
Figura 5: Hardware para memória de programa externa.
Prentice Hall
Microcontroladores 8051
8
Capítulo 2:
MCS-51 com ROM
interna
P1
RAM
P0
VCC
D7-D0
Latch
EAbarra
ALE
E/S
RD\ P3
WR\
P2
bits de paginação
E/S
Endereços menos
significativo
Endereços mais
significativos
WE\
OE\
Figura 6: Hardware para memória de dados externa.
Prentice Hall
Microcontroladores 8051
9
Capítulo 2:
FFh
FFh
Acessível somente por
endereçamento indireto (128 bytes
superiores)
80h
Acessível por endereçamento
direto (SFRs: Portes, Bits de
controles dos Timers,
Acumulador, etc)
80h
7Fh
Acessível por endereçamento
direto e indireto (128 bytes
inferiores)
00h
Prentice Hall
Figura 7:
Memória de
dados interna.
Microcontroladores 8051
10
Capítulo 2:
Figura 8: 128
bytes inferiores
da RAM interna.
7Fh
30h
2Fh
Endereçamento por byte
Endereçável
por bit e/ou byte
20h
1Fh
R7
Banco 3
18h
17h
R0
R7
Banco 2
Valor inicial do SP
(Stack Pointer:
ponteiro de pilha) após
um sinal de Reset.
10h
0Fh
R0
R7
Banco 1
08h
07h
R0
R7
Banco 0
00Hh
Prentice Hall
Microcontroladores 8051
R0
11
Capítulo 2:
Program Status Word
bits
7
6
(PSW) =
C
AC
5
4
3
2
F0 RS1 RS0 OV
1
0
-
P
RS1 RS0 Banco Selecionado Registradores Selecionados Endereços de Memória Selecionados
0
0
0
R0 a R7
00h a 07h
0
1
1
R0 a R7
08h a 0Fh
1
0
2
R0 a R7
10h a 17h
1
1
3
R0 a R7
18h a 1Fh
Prentice Hall
Microcontroladores 8051
12
Capítulo 2:
Bancos de Registradores
RS1 RS0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Prentice Hall
Endereço
1Fh
1Eh
1Dh
1Ch
1Bh
1Ah
19h
18h
17h
16h
15h
14h
13h
12h
11h
10h
0Fh
0Eh
0Dh
0Ch
0Bh
0Ah
09h
08h
07h
06h
05h
04h
03h
02h
01h
00h
Registrador
R7
R6
R5
R4
R3
R2
R1
R0
R7
R6
R5
R4
R3
R2
R1
R0
R7
R6
R5
R4
R3
R2
R1
R0
R7
R6
R5
R4
R3
R2
R1
R0
Microcontroladores 8051
Banco
3
3
3
3
3
3
3
3
2
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
13
Capítulo 2:
Endereçamento por bits/bytes
Endereço de Memória
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
2Fh
2Eh
2Dh
2Ch
2Bh
2Ah
29h
28h
27h
26h
25h
24h
23h
22h
21h
20h
7Fh
77h
6Fh
67h
5Fh
57h
4Fh
47h
3Fh
37h
2Fh
27h
1Fh
17h
0Fh
07h
7Eh
76h
6Eh
66h
5Eh
56h
4Eh
46h
3Eh
36h
2Eh
26h
1Eh
16h
0Eh
06h
7Dh
75h
6Dh
65h
5Dh
55h
4Dh
45h
3Dh
35h
2Dh
25h
1Dh
15h
0Dh
05h
7Ch
74h
6Ch
64h
5Ch
54h
4Ch
44h
3Ch
34h
2Ch
24h
1Ch
14h
0Ch
04h
7Bh
73h
6Bh
63h
5Bh
53h
4Bh
43h
3Bh
33h
2Bh
23h
1Bh
13h
0Bh
03h
7Ah
72h
6Ah
62h
5Ah
52h
4Ah
42h
3Ah
32h
2Ah
22h
1Ah
12h
0Ah
02h
79h
71h
69h
61h
59h
51h
49h
41h
39h
31h
29h
21h
19h
11h
09h
01h
78h
70h
68h
60h
58h
50h
48h
40h
38h
30h
28h
20h
18h
10h
08h
00h
Prentice Hall
Microcontroladores 8051
14
Capítulo 2:
Registradores de Funções Especiais (SFRs)
Registradores
A ou ACC
B*
DPL
DPH
IE*
IP
SCON*
SBUF
PSW*
PCON
TCON*
TMOD
TH0
TL0
TH1
TL1
P0*
P1*
P2*
P3*
Prentice Hall
Endereço
E0h
F0h
82h
83h
A8h
B8h
98h
99h
D0h
87h
88h
89h
8Ch
8Ah
8Dh
8Bh
80h
90h
A0h
B0h
Nome dos Registradores
Acumulador
Registrador B
Byte menos significativo do Ponteiro de Dados
Byte mais significativo do Ponteiro de Dados
Habilitador de Interrupções
Priorizador de Interrupções
Controlador da Comunicação Serial
Buffer de Dados Serial
Palavra de Status de Programa
Controle de Potência
Controle do Timer/Contador
Modo de operação de Timer/Contador
Byte mais significativo do Timer/Contador 0
Byte menos significativo do Timer/Contador 0
Byte mais significativo do Timer/Contador 1
Byte menos significativo do Timer/Contador 1
Porte 0
Porte 1
Porte 2
Porte 3
Microcontroladores 8051
15
Capítulo 2:
Registradores de Funções Especiais (SFRs)
para o 8052
Registradores Endereço Nome dos Registradores
T2CON*
C8h
Controle de Timer/Contador 2
TH2
CDh
Byte mais significativo do Timer/Contador 2
TL2
CCh
Byte menos significativo do Timer/Contador 2
RCAP2H
CBh
Byte mais significativo do Timer/Contador de captura 2
RCAP2L
CAh
Byte mais significativo do Timer/Contador de captura 2
* Registradores endereçados por bit;
Tabela 2 - Registradores de Funções Especiais.
Prentice Hall
Microcontroladores 8051
16
Capítulo 2:
Figura 10: Decodificador 74HC138
Figura 12: Decodificador 74138
Prentice Hall
Microcontroladores 8051
17
Capítulo 2:
Entradas
Saídas
G2A´ G2B´ G1 A2 A1 A0
Y0 Y1 Y2 Y3 Y4 Y5
1
X
X X X X
1
1
1
1
1
1
X
1
X X X X
1
1
1
1
1
1
X
X
0
X X X
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0: 0 lógico; 1: 1 lógico; X: pode ser 0 ou 1 lógico; ´ : representa entrada ativa em 0 lógico.
Y6
1
1
1
1
1
1
1
1
1
0
1
Tabela 3: Tabela verdade do 74138
Prentice Hall
Microcontroladores 8051
18
Capítulo 2:
Figura 11: Exemplo de mapeamento
de memória com o 74138.
Prentice Hall
Microcontroladores 8051
19
Capítulo 2:
A15
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
0
X
1
Dígito + sign. do endereço
Prentice Hall
2° dígito + sign do endereço
2° dígito - sign do endereço
Microcontroladores 8051
Endereço
Inicial e final
0000H
1FFFH
2000H
3FFFH
4000H
5FFFH
6000H
7FFFH
8000H
9FFFH
A000H
BFFFH
C000H
DFFFH
E000H
FFFFH
Dígito - sign do endereço
20
Capítulo 2:
Figura 12: Circuito de Reset para a
família de microcontroladores
MCS-51 da Intel.
Prentice Hall
Microcontroladores 8051
21
Capítulo 2:
Figura 13: Circuito do sinal de relógio (clock).
Prentice Hall
Microcontroladores 8051
22
Capítulo 2:
Sinal de relógio:
S1
S2
S3
S4
S5
S6
S1
S2
S3
S4
S5
S6
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
Sinal de ALE:
1- Um ciclo de instrução de um byte. Ex: INC A.
Lê Opcode
S1
S2
Lê o próx.
Opcode (descarta)
S3
S4
S5
Lê o próx.
Opcode novamente
S6
S1
S2
S3
S4
S5
S6
S2
S3
S4
S5
S6
2- Um ciclo de instrução de dois bytes. Ex: ADD A,#data.
Lê Opcode
S1
S2
Lê segundo
Byte
S3
S4
S5
Lê prox.
Opcode
S6
S1
3- Dois ciclos de instrução de um byte. Ex: INC DPTR.
Lê Opcode
S1
S2
Lê prox.
Opcode (descata)
S3
S4
S5
Lê prox.
Opcode (descarta)
S6
S1
S2
Lê prox.
Opcode (descarta)
S3
S4
S5
S6
Abaixo os sinais e tempos envolvidos na busca do programa em memória de programa externa em uso da
instrução MOVX.
S1
S2
S3
S4
S5
S6
S1
S2
S3
S4
S5
S6
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
Sinal de ALE:
PSEN\ :
RD\:
P2:
PCH Out
P0:
Inst.
in
Prentice Hall
PCH Out
PCL Out
PCH Out
Inst.
in
PCL Out
PCH Out
Inst.
in
PCL Out
Microcontroladores 8051
PCH Out
Inst.
in
PCL Out
23
Capítulo 2:
Operação de executar um
programa passo a passo:
JNB
JB
RETI
P3.2,$
P3.2,$
Prentice Hall
; Aguarda que o bit P3.2 vá para 1 lógico
; Aguarda que o bit P3.2 vá para 0 lógico
; Retorna da rotina de atendimento da fonte de interrupção INT0\
Microcontroladores 8051
24
Capítulo 2:
Modos de redução de potência em
microcontroladores CHMOS:
Modo Idle
Modo Baixa Potência
Registrador PCON:
bit 7
SMOD
bit 6
-
bit 5
-
bit 4
-
bit 3
GF1
bit 2
GF0
bit 1
PD
bit 0
IDL
-SMOD: Bit de duplo baud rate (freqüência de recepção e transmissão do canal de comunicação
serial). Quando igual a 1 lógico, o baud rate é dobrado quando o canal de comunicação serial ou está
no modo 1, ou 2, ou 3;
-GF1: flag de uso de propósito geral;
-GF0: flag de uso de propósito geral;
-PD: Bit de baixa potência (Power Down). Fazendo este bit igual a 1 lógico, ativa o modo de baixa
potência.
-IDL: Bit de Modo Idle. Fazendo este bit igual a 1 lógico, ativa o modo Idle.
Prentice Hall
Microcontroladores 8051
25
Download

Microcontroladores 8051