Vous êtes sur la page 1sur 17

Microcontrolador 8051

Microcontrolador 8051
1 - Introduo.
Os microprocessadores so circuitos integrados extremamente flexveis devido s suas caractersticas de programabilidade. A programao do componente torna-o verstil para implementao de vrios
tipos de aplicaes ou tarefas. No desenvolvimento desses tipos de componentes, foi construdo o microcomputador em uma nica pastilha. Tal componente, contm o microprocessador, memrias somente de
leitura (ROM), memrias de acesso aleatrio (RAM) e circuitos de entrada e sada, para comunicao
com o mundo exterior.
Os microcontroladores so os componentes que, alm do microcomputador, incorporam circuitos
perifricos necessrios em aplicaes industriais, ou de controle, por exemplo, contendo circuitos de entrada/sada serial, temporizadores, perifricos paralelos, conversores AD, conversores DA, etc. Tais componentes so indicados para aplicaes que requerem uma configurao minimizada, de baixo custo e de
espao fsico reduzido. Obviamente que a soluo de nica pastilha ("single chip") preferida pelo custo,
bem como por razes de confiabilidade.
Assim vrios tipos de microcontroladores foram desenvolvidos para aplicaes especficas
tais como: aplicaes militares, controle automobilstico, instrumentaes mdicas, aplicaes de controle
em tempo real, controle de eletrodomsticos, etc.
Microcontroladores de uso geral foram construdos tendo a possibilidade de operar no modo microcomputador, onde todo recurso de hardware utilizado estar dentro do prprio componente, ou no modo microprocessador, onde perifricos externos so incorporados ao sistema.

2 - A Famlia 8051.
A famlia de microcontroladores 8051 baseada em padres industriais de microcontroladores de
8 bits. Sendo o CI 8051 o componente inicial desta famlia. Todos os membros desta famlia possuem verses tendo ROM interna, EPROM interna ou verso sem ROM interna. A tabela l apresenta os principais
membros desta famlia:
Sem ROM
Com Rom
Com EInterna
PROM
8051
8031
8751
80C51
80C31
87C51
8052
8032
8752
80C52
80C32
87C52
80C53
87C54
83CL410
80CL410
83C451
80C451
83C451
83C528
80C528
87C528
83C528
80C550
87C550
83C550
80C552
87C552
83C552
87C592
83C592
Obs: WD = WATCHDOG TIMER

Bytes de
ROM
4K
4K
8K
8K
8K
4K
4K
32K
4K
8K
16K
6K

Bytes de
RAM
128
128
256
256
192
128
128
512
128
256
512
256

Temporizadores de 16 bits
2
2
3
3
2
2
2
3 + WD
2 + WD
3 + WD
3 + WD
2

Tabela 1 Microcontroladores da famlia 8051

Existem outros membros desta famlia que incorporam padro de comunicao serial IC, maior
nmero de portas paralelas e sadas com modulao por largura de pulso (PWM). Maiores detalhes so
fornecidos nos manuais dos fabricantes.

E.B.

Pgina - 1

Microcontrolador 8051

As principais caractersticas do 8051 so:


CPU otimizada de 8 bits:
Processamento Booleano extensivo (operaes de 1 bit);
32 linhas de entrada/sada bidirecionais e individualmente endereadas;
128 bytes de RAM no chip;
02 contadores/temporizadores de 16 bits;
Transmissor/receptor universal assncrono "FVLL DUPLEX";
Os sinais de interrupo com dois nveis de prioridade;
Oscilador de temporizao no chip;
4K bytes de memria de programa no chip;
Espao de endereamento de 64K bytes de memria de programa;
Espao de endereamento de 64K bytes de memria de dados;
Encapsulamento nas verses DIP - 40 pinos e PLCC - 44 pinos;
O 8031 a verso sem ROM, portanto com todas as buscas de instrues externas
e o 8751 a verso com EPROM interna;
O 80C51 e seus derivados so verses CMOS do 8051.
uma verso fortalecida do 8051, contendo:
8052
256 bytes de RAM no chip;
03 temporizadores/contadores;
06 sinais de interrupo;
8K bytes de memria de programa no chip.
80C053 a verso do 8051 para aplicaes em controle central de televiso.
Contm:
Controlador de tela;
03 sadas de vdeo digital;
Controle de multiplexador/mixador e intensidade de fundo de
tela;
RAM de display de 128 x 10;
ROM gerador de caracteres de 60 x 18 x 14;
08 PWM de seis bits;
01 PWM de 14 bits;
Polaridade de entrada e sada de vdeo programvel;
12 sadas para +12 volts , dreno aberto;
04 sadas para alta corrente, dreno aberto.
83CL41O a verso do 8051 para tenses de alimentao de 1,5 a 6 volts. Operando em baixa
freqncia (de 32KHz a 20MHz).
83C451 a verso do 8051 com entrada/sada extendida, tendo 07 portas de entrada/sada com
recursos de interface direta e interface de impressora paralela.
83C528 uma verso extendida do 8051 com 32K bytes de memria de programa, 512 bytes
de RAM, 03 temporizadores internos e temporizador watchdog.
83C55O uma verso de 8051 contendo 08 canais de conversor AID de 08 bits.
83C552 uma verso extendida do 8051 contendo 08 canais de conversor A/D de 10 bits, 04
temporizadores/contadores, sadas PWM e 06 portas de entrada/sada.
83C592 a verso do 8051 contendo barramento de interface para rede (CAN-Control area
network) e transferncia de DMA entre RAM no chip e interface CAN.
83C862 a verso do 8051 desenvolvida para aplicaes de pequenos cartes com segurana,
contendo memria EEPROM e caractersticas de segurana do sistema.

8051

E.B.

Pgina - 2

Microcontrolador 8051

3 - A estrutura de Memria do 8051.


Todo microcontrolador da famlia 8051 possui espao de endereamento de memria de programa
separado da memria de dados.
A figura 1 apresenta o diagrama de bloco do 8051. O mesmo est dividido em unidade central de
processamento, Oscilador interno, memria ROM interna, memria RAM interna, dois temporizadores,
porta serial, quatro portas paralelas, circuito de controle de interrupo e circuito de controle de barramento.

Interrupes Externas

Controle
De
Interrupo

4K
ROM

128
RAM

Controle
De Barramento

4 Portas
De
E/S

Temporizador 1
Temporizador 2

Entradas Dos
Contadores

CPU

Oscilador

Porta
Serial

TxD
P0

P2

P1

RxD

P3

Endereos/Dados
Figura 1 - Diagrama de bloco do 8051

3.1 Organizao da memria.


A separao lgica das memrias de programa e de dado permite que a memria de dados possa
ser acessada por um endereamento de oito bits. Todavia, um endereamento de 16 bits poder tambm
ser gerado atravs de um registro apontador de dados (DPTR). A memria de programa ter o tamanho
mximo de 64K bytes onde, nas verses ROM ou EPROM, os 4K bytes menos significativos estaro no
chip. Nas verses sem ROM, toda a rea de memria de programa ser externa. O acesso a esta rea de
memria ser habilitado pelo sinal PSEN (program strobe enable).
A memria de dados ocupa um endereamento separado de 64K bytes. No 8051 os 128 bytes de
menos significativos de memria de dados esto no chip. Sinais de leitura (RD) e escrita (WR) so gerados durante um acesso externo de memria de dados.
Pode-se fazer um lgica E entre os sinais PSEN e RD combinando as reas de memria de programa externa e memria de dados em uma nica regio de memria. A figura 2 apresenta a estrutura da
memria do 8051.

E.B.

Pgina - 3

Microcontrolador 8051

Memria de Programa
(Somente leitura)

Memria de Dados

(Leitura / Escrita)
FFH

FFFFH

FFFFH

ROM
Externa

RAM
Externa
Registros
de
Funes
Especiais

80H

RAM
Externa

7FH

1000H

Uso
Geral

RAM
Interna

0FFFH
__
EA = 0
ROM
Externa

__
EA = 1
ROM

Uso Geral

e Stack

Interna

00H

0000H

0000H

____

__

PSEN

RD

WR

Figura 2 - Estrutura da memria do 8051

3.2 Memria de Programa.


A figura 3 apresenta o mapa de localizao da parte menos significativa da memria de programa.

0023H
001BH
Localizao
Das
Interrupes

8 bytes
0013H
000BH
0003H

RESET

0000H

Figura 3 - Memria de programa do 8051

Aps o reset. a CPU inicia a execuo a partir da localizao 0000H. Assim nesta localizao dever existir um salto para a rotina de servio de reset, ou programa operacional do sistema. Para o atendimento das rotinas de servio de interrupo so reservados oito bytes de espaamento para cada tipo de
E.B.

Pgina - 4

Microcontrolador 8051

interrupo. Assim, se o servio de interrupo for de pequeno tamanho, como em algumas aplicaes de
controle, o mesmo poder residir neste intervalo de oito bytes. Se for mais longo dever saltar para outra
regio e continuar a execuo da correspondente rotina. Portanto, para a interrupo externa 0 (zero) ser
usado o endereo 0003H, para a interrupo do temporizador 1, o endereo 000BH, etc.
Pode-se usar os 4K bytes menos significativos de ROM de programa internos ou, ento, usar estes
endereos externamente. A seleo feita atravs do pino EA. Se o mesmo estiver conectado ao nvel alto
(Vcc), o processador busca o programa dos endereos 0000H at 0FFFH diretamente na ROM interna e o
programa dos endereos I OOOH at FFFFH na ROM externa.
Se o pino EA estiver conectado ao nvel baixo, todo o endereamento de programa, de 0000H at
FFFFH, ser buscado na memria ROM externa. As verses sem ROM devem tambm ter este pino externamente conectado ao nvel baixo (Vss). O sinal PSEN o habilitador de leitura para a ROM externa,
durante uma busca a ROM interna ele estar desabilitado.
A figura 4 apresenta a configurao necessria para execuo externa de programa. Note que as linhas da porta 0 e da porta 2 sero usadas com funo de endereamento, durante o ciclo de busca de memria externa de programa. A porta 0 opera como multiplexador de endereos e dados. Ela emite o byte
menos significativo do endereo, vai para um estado de alta impedncia e recebe o byte endereado da
memria de programa.
Durante o tempo em que o byte menos significativo do endereo for vlido, o sinal ALE (habilitador de Latch de endereamento) atua para memorizao deste valor nos latches.

80C51

P1

EPROM

P0

Dados

__
EA
LATCH

ALE

P3

P2
____
PSEN

Endereo

__
OE

Figura 4 - Execuo externa de memria de programa

O endereamento da memria de programa realizado com tamanho de 16 bits. Assim o uso de


memria de programa externa sacrifica as portas P0 e P, para funcionar como barramento de endereo.

3.3 Memria de dados.


O endereamento externo da memria de dados pode ser feito com largura de 1 ou 2 bytes. Endereamentos de um byte so feitos usando uma ou mais linhas de paginao de RAM. A figura 5 mostra
urna configurao para acessar at 2K bytes de RAM externa.
A porta 0 (zero) opera como multiplexador de barramento de endereo e de dado para a memria e
trs linhas da porta 2 sero usadas para paginar a RAM. A CPU gera os sinais RD e WR necessrios para
acessar a RAM externa.

E.B.

Pgina - 5

Microcontrolador 8051

80C51 c/

RAM

ROM interna

P1

P0
__
EA

Dados

Vcc
LATCH

ALE

Endereo

__ P3 P2
RD

E/S

Bits de
paginao

WR

___

__

WE

OE

Figura 5 - Acesso a memria de dados externa

Neste caso, se a memria de programa do sistema for interna, os outros bits da porta 2 ficaro disponveis para entrada e sada. Endereamento de dois bytes tambm poder ser usado. Neste caso o byte
de endereamento superior ser enviado pela porta 2. A figura 6 apresenta o mapeamento da memria de
dados interna.
FFH
128 MSB
80H
7FH
128 LSB
00H

Acesso
Somente por
Endereamento
Indireto
Acesso por
Endereamento
Direto ou
Indireto

Acesso por
Endereamento
Direto

Registros
De funo
Especial

Portas
Status
Bits de Controle
Temporizadores
Apontadorde Stack
Acumulador, etc.

Figura 6 - Memria de dados interna

Este espao de endereamento est dividido em trs blocos, denominados por 128 bytes inferiores,
128 bytes superiores e espao de registros de funo especial (SFR).
O endereamento de dados interno sempre de tamanho de um byte, o que implica num espao de 256
bytes somente. Entretanto, o modo de endereamento para RAM interna de fato acessa 384 bytes, usando
um simples truque. Endereamento direto maior que 7FH acessa o endereamento dos registros de funo
especial, correspondendo ao apontador de pilha, acumulador, temporizadores, portas, controle de bits, status, etc. Endereamento indireto maior que 7FH acessam os 128 bytes superiores. Apesar de ocuparem o
mesmo bloco de endereamento (80H at FFH) so entidades fisicamente separadas. No 8051 e suas verses sem ROM, ou com EPROM, no so implementados os 128 bytes superiores de RAM interna. A figura 7 apresenta os 128 bytes superiores de RAM interna.
Os 128 bytes menos significativos da RAM de todos os 8051 so mapeados conforme a figura 8.
Os primeiros 32 bytes so agrupados em quatro bancos de oito registros. Instrues referem-se a estes registros como R0 at R7. Dois bits para palavra de status de programa (PSW) selecionam qual dos bancos
de registros ser usado. Isto possibilita maior eficincia no uso de espao de cdigo, visto que instrues
de registros so menores que instrues que usam endereamento direto.
E.B.

Pgina - 6

Microcontrolador 8051

Os prximos 16 bytes acima dos bancos de registros formam um espao de memria de bloco de
bits endereveis. O conjunto de instrues do 8051 inclui uma larga seleo de instrues de nico bit.
Os 128 bits desta rea podem ser diretamente endereado por estas instrues. Os endereos dos bits vo
de 00H at 7FH. Todos os 128 bytes inferiores desta regio de memria podero ser acessados por endereamento direto, ou indireto. Entretanto, os 128 bytes superiores somente sero acessados por endereamento indireto. A figura 9 apresenta um resumo da rea correspondente aos registros de funo especial
(SRF). Estes registros incluem latches das portas, temporizadores, controle de perifricos, etc. Estes registros podem somente ser acessado por endereamento direto. Dezesseis endereos deste espao de registros
so endereados por bytes ou por bits. Os endereos de bits so aqueles terminados por 0H (80H, 90H ,
..., FOH) ou por 8H (88H, 98H, ..., F8H).
FFH
Espao sem
Endereamento
De BIT
80H

Figura 7 - 128 bytes superiores da RAM interna


MSB
MSB

LSB

LSB

FFH

7FH
30H
2FH
2EH
2DH
2CH
2BH
2AH
29H
28H
27H
26H
25H
24H
23H
22H
21H
20H
1FH
18H
17H
10H
0FH
08H
07H
00H

F0H F7

7F
77
6F
67
5F
57
4F
47
3F
37
2F
27
1F
17
0F
07

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 7B
74 73
6C 6B
64 63
5C 5B
54 53
4C 4B
44 43
3C 3B
34 33
2C 2B
24 23
1C 1B
14 13
0C 0B
04 03
Banco 3

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

Registradores
De
Hardware

F6 F5 F4 F3 F2 F1 F0 B

E8H
E0H E7 E6 E5 E4 E3 E2 E1 E0 ACC
D8H
D0H D7 D6 D5 D4 D3 D2 D1 D0 PSW
B8H --

--

-- BC BB BA B9 B8 IP

B0H B7 B6 B5 B4 B3 B2 B1 B0 P3
A8H AF

--

-- AC AB AA A9 A8 IE

A0H A7 A6 A5 A4 A3 A2 A1 A0 P2
98H 9F 9E 9D 9C 9B 9A 99

98 SCON

Banco 2
90H 97

96 95 94 93 92 91 90 P1

Banco 1
88H 8F 8E 8D 8C 8B 8A 89

88 TCON

Banco 0

Figura 8
128 bytes inferiores da RAM interna

80H 87

86 85 84 83 82 81 80 P0

Figura 9
Espao de registros de funo especial

4 - A Arquitetura do 8051
E.B.

Pgina - 7

Microcontrolador 8051

O 8051 e seus derivados so fabricados nas verses MOS e CMOS. Sua caracterstica de arquitetura
fortalecida e seu conjunto de instrues resultam em um controlador de baixo custo, usado em aplicaes
que requerem at 64K bytes de memria de programa e at 64K bytes de memria de dados. As figuras 10
e 11 apresentam a configurao de pinagem para os modelos 8031/8051/8751, nas verses de encapsulamentos DIP e QFP.
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST / VPD
RxD / P3.0
TxD / P3.1
INT0 / P3.2
INT1 / P3.3
T0 / P3.4
T1 / P3.5
WR / P3.6
RD / P3.7
XTAL2
XTAL1
Vss

DIP

40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21

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
EA / Vpp
ALE/ PROG
PSEN
P2.7 / A15
P2.6 / A14
P2.5 / A13
P2.4 / A12
P2.3 / A11
P2.2 / A10
P2.1 / A9
P2.0 / A8

Figura 10
Pinagem do 8031/8051
/8751 na verso DIP

P1.4
P1.3
P1.2
P1.1
P1.0
n.c.
Vcc
P0.0/ AD0
P0.1/ AD1
P0.2/ AD2
P0.3/ AD3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

6 5 4 3 2 1 44 43 42 41 40
P1.5
P1.6
P1.7
RST / VPD
RxD / P3.0
n.c.
TxD / P3.1
INT0 / P3.2
INT1 / P3.3
T0 / P3.4
T1 / P3.5

7
8
9
10
11
12
13
14
15
16
17

8 0 5 1

39
38
37
36
35
34
33
32
31
30
29

P0.4 / AD4
P0.5 / AD5
P0.6 / AD6
P0.7 / AD7
EA / Vpp
n.c.
ALE/ PROG
PSEN
P2.7 / A15
P2.6 / A14
P2.5 / A13

WR / P3.6
WR / P3.7
XTAL 2
XTAL 1
Vss
n.c.
P2.0 / A8
P2.1 / A9
P2.2 / A10
P2.3 / A11
P2.4 / A12

18 19 20 21 22 23 24 25 26 27 28

E.B.

Figura 11
Pinagem do 8031/8051/
8751 na verso Quad Pack

Pgina - 8

Microcontrolador 8051

4.1 Funo dos Pinos do 8051.


COMUM:
(VSS)
FONTE:
(VCC)
PORTA 0:

Pino de entrada de referncia zero volts.


Pino de entrada de tenso de alimentao de +5 volts.

A porta 0 uma porta bidirecional de 8 bits, com sada dreno aberto, ou entrada de alta
(P0.0 - P0.7) impedncia. usada para multiplexar o barramento de dados e o barramento de endereo
menos significativo, durante o acesso de memria de dados externa, ou de memria de
programa externa. No 8751 esta porta tambm usada para verificao do cdigo do byte
e, neste caso, so necessrios o uso de resistores "pull-up" externos.
A porta 1 uma porta bidirecional de 8 bits com resistores "pull-up" internos. Assim estes
PORTA 1:
(P1.0 P1.7) pinos podero funcionar como entradas, ou sadas Se uma entrada estiver conectada ao nvel baixo, ela fornecer corrente, devido aos resistores "pull-up" internos. Assim, deve-se
consultar as caractersticas eltricas deste circuito. Os pinos da porta 1 tambm recebem o
endereo menos significativo, durante a verificao de memria de programa para o 8751.
A porta 2 uma porta bidirecional de 8 bits com resistores "pull-up" internos. Esta porta
PORTA 2:
(P2.0 - P2.7) usada para colocar o byte de endereo mais significativo, quando um ciclo de busca externo de memria de programa, ou de dado, com endereo de 16 bits, est sendo realizado
(MOVX @ DPTR). Durante o acesso externo de memria de dados que usa endereo de 8
bits (MOV @ Ri), a porta 2 emite os contedos do registro de funo especial P2.
A porta 3 uma porta bidirecional de 8 bits com resistores "pull-up" internos. A porta 3
PORTA 3:
(P3.0 - P3.7) tem funes especiais para o 8051 que inclui as operaes de comunicao serial, interrupes externas, temporizaes e sinais de leitura escrita como se segue:
RxD (P3.0) - entrada da porta serial.
TxD (P3.1) - sada da porta serial.
INT0 (P3.2) - entrada de interrupo externa nvel 0.
INT1 (P3.3) - entrada de interrupo externa nvel 1. TO (P3.4) - entrada externa para
temporizador 0. T1 (P3.5) - entrada externa para temporizador 1. WR (P3.6) - sada
habilitadora de escrita para memria de dados externa RD (P3.7) - sada habilitadora
de leitura para memria de dados externa.
RESET: (RST) Um nvel alto neste pino com durao de dois ciclos de mquina. enquanto o oscilador estiver operando, realiza uma inicializao (reset) do circuito. Um resistor interno ligado a
Vss permite um reset na energizao do sistema, somente usando um capacitor externo
ligado a VCC.
ALE/PROG: Este pino opera como sada habilitadora de latches de endereamento, durante um acesso
a memria externa. Em operao normal, ALE emitido em uma taxa de 1/6 da freqncia de oscilao e pode ser usado para temporizao externa. Nas verses com EPROM
interna (8751) este pino opera como entrada recebendo o pulso de programao (PROG),
durante a programao da EPROM
Este pino uma sada que habilita a leitura de uma memria de programa externa. PSEN
PSEN:
no ser ativado durante uma busca na regio de memria de programa interna.
Este pino uma entrada que dever ser ligado ao nvel alto, para que o processador tenha
EA/VPP:
acesso a memria interna de programa, nos endereos de 0000H at 0FFFH e acesso a memria externa de programa, para endereos acima de OFFFH. Se estiver ligado ao nvel
baixo, toda a rea de memria de programa, de (3000H a FFFFH, ser externa. Nas verses
com EPROM interna (8751), este pino tambm recebe a tenso de programao de
12,75V, durante a programao da EPROM. Nas verses sem ROM interna, EA deve ser
conectado ao nvel baixo.
Entrada para o Oscilador inversor interno e para o circuito gerador de temporizao interXTAL 1:
no.
a sada do oscilador amplificador e inversor interno.
XTAL 2:

E.B.

Pgina - 9

Microcontrolador 8051

A figura 12 apresenta o diagrama de blocos detalhado do 8031/8051/8751.

Registro de
endereamento
de RAM

P0.0 ---- P0.7

P2.0 ---- P2.7

Drivers da
Porta 0

Drivers da
Porta 2

Latch da
Porta 0

Latch da
Porta 2

RAM

ROM/EPROM

Registro de
Endereo
de Programa
Registro
B

ACUMULADOR

Apontador
de Stack

TMP2

TMP1

ALU
Tempori- Registro
zador
de
e
InstruControle
es

Buffer

PCON SCON TMOD TCON


TH0
TL0
TH1
TL1
SBUF
IE
IP
Blocos de Temporizador
Porta Serial e Interrupo

PSW

Incrementador
de PC
Contador de
Programa
DPTR

Latch da
Porta 1

Latch da
Porta 3

Drivers da
Porta 1

Drivers da
Porta 3

P1.0 ----- P1.7

P3.0 ----- P3.7

Oscilador

Figura 12: Diagrama de blocos do 8031/8051/8751

O 8051 contm uma memria ROM interna de 4K x 8 bits usada como memria de programa. O
8031 a verso sem esta memria. O 8751 a verso com EPROM interna. Alm da memria ROM o
mesmo contm 128 x 8 bits de RAM, 32 linhas de entrada e sada distribudas em quatro portas paralelas,
dois contadores/temporizadores de 16 bits, uma estrutura de interrupo de dois nveis, uma porta serial
para comunicao de multiprocessador, oscilador interno e circuito de temporizao circuito de expanso
de perifricos ou UART "full duplex". Em adio o circuito opera com dois modos de consumo de potncia selecionveis por software, somente implementado nas verses CMOS. O modo denominado "ocioso"
(idle) e o modo "baixo consumo" (power-down). O modo ocioso "congela" a CPU, enquanto que a RAM,
temporizadores, porta serial e sistema de interrupo continuam operando normalmente. O modo baixo
consumo mantm o contedo da RAM mas "congela" o oscilador, fazendo com que todas as outras funes estejam inoperantes. Existem cinco verses de velocidade para a famlia 8031/8051/8751 19 MHz,
16 MHz, 24 MHz, 30 MHz e 33 MHz.
4.2 TEMPORIZAO DA CPU.

E.B.

Pgina - 10

Microcontrolador 8051

Todo microcontrolador da famlia 8051 possui um oscilador interno que poder ser usado para
temporizao da CPU. Para tal, um cristal dever ser conectado entre os pinos XTAL1 e XTAL2 do microcontrolador, com capacitores conectados entre estes pinos e a tenso de referncia Vss. Assim, o gerador de temporizao interna definir a seqncia de estados para o ciclo de mquina do 8051.
4.3 CICLO DE MQUINA.
Um ciclo de mquina consistir de uma seqncia de seis estados, numerados de S1 a S6. Cada estado dura dois perodos do oscilador. Ento, um ciclo de mquina tem 12 perodos do oscilador. Por exemplo 1 s para uma freqncia de 12 MHz.
Cada estado dividido em duas fases: fase 1 e fase 2, com durao de um perodo de oscilador.
A figura 13 mostra uma seqncia de busca/execuo para alguns tipos de instruo.
S1
OSC.
Xtal2

S2

S3

S4

S5

S6

S1

S2

S3

S4

S5

S6

S1

P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2

ALE
Leitura de OpCode

S1

S2

S3

Leitura do Prximo Leitura do Prximo


OpCode (Descartado) OpCode (Novamente)
S4

S5

S6

A) Instrues de 1 byte, 1ciclo.


Leitura de OpCode
Leitura do Segundo
Byte
S1

S2

S3

S4

S5

Leitura do Prximo
OpCode

S6

B) Instrues de 2 bytes, 1 ciclo.


Leitura de OpCode Leitura do Prximo
OpCode (Descartado)
S1

S2

S3

S4

S5

S6

Leitura do Prximo
OpCode (Novamente)
S1

S2

S3

S4

S5

S6

nenhum ALE
C) Instrues de 1 byte, 2 ciclos
Leitura de OpCode
Leitura do Prximo Nenhuma Busca
Leitura do Prximo
OpCode (Descartado)
OpCode (Novamente)
S1

S2

S3

S4

S5
S6
Endereo

S1

S2
Dado

S3

S4

S5

S6

Acesso memria externa


Figura 13: Sequncia de estados para a famlia 8051

Normalmente em um ciclo de mquina so gerados duas buscas de programa, mesmo que a instruo, sendo executada, no requeira. Neste caso, a CPU simplesmente ignora a busca extra e o contador de
E.B.

Pgina - 11

Microcontrolador 8051

programa no ser incrementado. A execuo de uma instruo de um ciclo inicia-se no estado S1 do ciclo de mquina, quando o opcode ser armazenado no registro de instruo. Uma segunda busca ocorrer
durante o estado S4 do mesmo ciclo de mquina. A execuo estar completa no final do estado S6.
A instruo MOVX ser executada em dois ciclos de mquina. Nenhuma busca de programa ser
gerada no segundo ciclo desta instruo. As sequncias de busca/execuo sero as mesmas tanto para a
memria de programa interna, quanto para a memria de programa externa. O tempo de execuo no depende de onde ser buscado a instruo.
4.4 Reset.
A entrada de reset feita atravs do pino RST, conectado a um circuito do tipo Schmitt trigger.
Um reset realizado mantendo-se a entrada RST em nvel alto pelo menos por dois ciclos de mquina (24
perodos do oscilador) com o oscilador operando. O reset ir zerar todos os registros de funes especiais,
exceto os latches das portas o apontador de stack e o registro SBUF. Os registros das portas sero inicializados com FFH7 o apontador de stack; com OFH e o SBUF ser indeterminado. A tabela 2 resume estes
valores.
REGISTRO
PC

VALOR
0000H

ACC
B
PSW
SP
DPTR
P0-P3
IP
IE
TMOD

00H
00H
00H
07H
0000H
FFH
XXX00000 B
0XX00000 B
00H

REGISTRO
TCON

VALOR
00H

TH0
00 H
TL0
00 H
TH1
00 H
TL1
00 H
SCON
00 H
SBUF
Indeterm.
PCON (NMOS) 0XXXXXXX B
PCON (CMOS) 0XXX0000 B

Tabela 2 - Valores de SFR aps reset

A RAM interna no ser afetada pelo reset. Na energizao do sistema, o seu contedo ser aleatrio e, portanto, indeterminado.
4.5 Reset na energizao do sistemas.
Um reset automtico pode ser obtido quando o pino RST for conectado a fonte VCC atravs de um
capacitor de 10 F, e a referencia Vss, atravs de um resistor de 872 Kohms. Os componentes desta famlia, construdos na verso CMOS, no necessitam do resistor. Porm, sua presena no ser prejudicial.
Quando o sistema for energizado, o circuito manter um nvel alto no pino RST, por um tempo dependente dos valores do capacitor e do resistor, que definem o tempo de carga do capacitor. Para garantir urna
boa inicializao, o sinal de reset deve ter uma durao acima de dois ciclos de mquina de sistema (normalmente alguns mseg.).

E.B.

Pgina - 12

Microcontrolador 8051

4.6 Modos De Operao com Economia de Energia.


Para aplicaes onde o consumo de potncia ser crtico, as verses CMOS permitem a reduo do
mesmo. Para tal, atravs de programao poder ser acionado a economia de energia. Esta caracterstica
s possvel nas verses CMOS. As verses CMOS possuem dois tipos de reduo de potncias, denominados de operao no modo "ocioso" (idle) e no modo "baixo consumo" (power-down). Este controle
realizado por dois bits (PD e IDL) do registro de funo especial de controle de potncia, PCON "power
control". No modo ocioso, com IDL = 1, o oscilador continua operando, mas a sua sada de temporizao
no ser levada para a CPU Somente as interrupes, porta serial e temporizadores continuaram operando.
Este modo ser encerrado por um sinal de interrupo, ou atravs do sinal de reset. No modo baixo consumo, com PD = 1, o oscilador estar bloqueado Assim, todas as funes estaro paradas, mantendo-se
todos os contedos da RAM interna e dos registros de funo especial. Os sinais ALE e PSEN ficaro em
nvel baixo. Neste modo de operao, a tenso de alimentao poder ser reduzida para at 2 Volts. Entretanto, deve-se ter a certeza de que a tenso no ser reduzida antes da ativao do modo baixo consumo e
de que ela ser restaurada antes deste modo terminar. Este modo ser encerrado somente com um sinal de
reset. O registro PCON um registro de funo especial, acessado pelo endereo 87H, que ser analisado
no captulo registros de funo especial. Se forem escritos valores 1 simultneos em PD e IDI, o modo
baixo consumo ser assumido.
4.7 REGISTROS DE FUNO ESPECIAL .
A figura 14 apresenta a rea de memria interna denominada rea de registros de funo especial
(SFR). Estes registros sero acessados por endereamento direto.
8 bytes
FF

F8

F7

F0

EF

E8

E7

ACC E0

DF

D8

D7

PSW D0

CF

C8

C7

C0

BF
B7
AF
A7
9F
97
8F
87 PCON

TH1

TH0

TL1
DPH

TL0
DPL

IP
P3
IE
P2
SBUF SCON
P1
TMOD TCON
SP
P0

Podem sem Bit Endereados


So Bit Endereados
Endereados por Byte
No Implementados

B8
B0
A8
A0
98
90
88
80

Figura 14 - Mapa de memria dos Registros de Funo Especial do 8051

Note que nesta regio nem todos os endereos foram ocupados. As posies no ocupadas no foram implementados no componente. Assim, acessos de leituras nestes endereos geralmente retornam valores aleatrios,
enquanto que acessos de escrita no tero efeitos. Usurios de programao devem evitar a escrita nestas localizaes, visto que outros produtos desta famlia podero estar usando tais endereos para novas implementaes. Os
registros com endereamento terminado por OH ou 8H so tambm bits endereveis. A figura 15 apresenta os endereos, ou smbolos, ou funes dos bits dos registros de funo especial do 8031/8051.

E.B.

Pgina - 13

Microcontrolador 8051

Smbolo
B*
ACC*
PSW*

Descrio

Endereo Endereo do Bit, Smbolo ou Funo Alternativa da Porta


MSB
LSB
Direto

FFH-F1H
F7H
F0H
EFH-E1H
Acumulador
E7H
E0H
DFH-D1H
Palavra Status de Programa
D7H
D0H
Registrador B

F6H

F5H

F4H

F3H

F2H

F1 H

F0H

E6H

E5H

E4H

E3H

E2H

E1H

E0H

CY

D6H
AC

D5H
F0

D4H
RS1

D3H
RS0

D2H
OV

D1H
--

D0H
P

BFH
--

BEH
--

BDH
--

BCH
PS

BBH
PT1

BAH
PX1

B9H
PT0

B8H
PX0

B7H
RD

B6H
WR

B5H
T1

B4H
T0

B3H
INT1

B2H
INT0

B1H
TxD

B0H
RxD

AEH
--

ADH
--

ACH
ES

ABH
ET1

AAH
EX1

A9H
ET0

A8H
EX0

A15

A6H
A14

A5H
A13

A4H
A12

A3H
A11

A2H
A10

A1H
A9

A0H
A8

9FH
SM0

9EH
SM1

9DH
SM2

9CH
REN

9BH
TB8

9AH
RB8

99H
TI

98H
RI

97H
--

96H
--

95H
--

94H
--

93H
--

92H
--

91H
T2EX

90H
T2

TF1
SMOD

C/T
8EH
TR1
--

M1
8DH
TF0
--

M0
8CH
TR0
--

GATE
8BH
IE1
GF1

C/T
8AH
IT1
GF0

M1
89H
IE0
PD

M0
88H
IT0
IDL

87H
AD7

86H
AD6

85H
AD5

84H
AD4

83H
AD3

82H
AD2

81H
AD1

80H
AD0

IP*

Habilitador de Interrupo

BFH-C9H
B8H

P3*

Porta 3

B7H-B1H
B0H

IE*

Habilitador de Interrupo

AFH-A9H
AFH
A8H
EA

P2*

A7H-A1H
A7H
A0H

Porta 2

SBUF Buffer de Dados Serial


SCON* Controlador Serial

P1*

9FH-9AH
99H
98H
97H-91H
90H

Porta 1

TH1
TH0
TL1
TL0
TMOD
TCON* Controle de Temporizador
PCON

Controle de Potncia

DPH
DPL
SP
P0*

Data Pointer High


Data Pointer Low
Stack Pointer
Porta 0

8FH-8EH
8DH
8CH
8BH
8AH
GATE
89H
8FH
88H
87H
86H-84H
83H
82H
81H
80H

Figura 15: Bits dos Registradores de Funo Especial do 8051

4.8 Descrio detalhada dos Registradores do 8051.


E.B.

Pgina - 14

Microcontrolador 8051

4.8.1 Acumulador (ACC).


O registro acumulador (ACC) referido simplesmente pela letra "A" nos mnemnicos das instrues. acessado pelo endereo E0H e um registro de bit enderevel, onde os seus bits sero acessados
pelos endereos E0H at E7H, respectivamente do menos significativo at o mais significativo. Note que
existem instrues que sero executadas sem o uso do acumulador. Por exemplo, em operaes Booleanas
o valor do acumulador ser preservado. Nestas operaes o bit de carry ser usado como acumulador.
4.8.2 Registro B (B).
O registro B usado durante operao de multiplicao e de diviso. Para outras instrues este
registro poder ser tratado como um registro de armazenagem temporria. um registro bit enderevel.
cujo endereo de acesso F0H. Os seus bits so acessados pelos endereos F0H at F7H.
4.8.3 Registro de palavra de status de programa (PSW).
O registro PSW contm as informaes de status de programa que refletem o estado corrente da
CPU. Este um registro acessado pelo endereo D0H e tambm bit enderevel. A tabela 3 abaixo, apresenta um resumo dos bits do registro PSW.
Bit

Smbolo EndereaFuno
mento de bit
PSW.7 CY
D7H
Flag de carry nas operaes aritmticas e acumulador nas operaes Booleanas.
PSW.6 AC
D6H
Flag de carry auxiliar para as operaes BCD
PSW.5
F0
D5H
Flag disponvel para propsito geral
PSW.4 RS1
D4H
Bit 1 de seleo do Banco de Registros
PSW.3 RS0
D3H
Bit 0 de seleo do Banco de Registros
PSW.2 OV
D2H
Flag de Overflow
PSW.1
-D1H
Flag definvel pelo usurio, disponvel para propsito geral
PSW.0
P
D0H
Flag de paridade correspondente quantidade de bits em 1 no aumulador,
onde P=1 par e P=0 mpar.
Tabela 3 - Bits do PSW

A seleo do banco de registros, realizada pelos bits RS1 e RS0, seleciona os seguintes endereos:
RS1 RS0
0
0
0
1
1
0
1
1

Seleo
Banco 0
Banco 1
Banco 2
Banco 3

Endereos de cada banco


00H 07H
08H 0FH
10H 17H
18H 1FH

4.8.4 Registro Apontador de pilha (SP).


O registro SP um registro de tamanho 8 bits. Este ser incrementado antes que um dado seja armazenado na pilha, durante a execuo de uma instruo PUSH, ou CALL. Assim, a regio de pilha
(stack) ir residir no espao de RAM interna do 8051. O SP inicializado com o valor 07H aps ocorrer
um reset. Isto faz com que a pilha inicie na localizao 08H. Este acessado pelo endereo 81H e, portanto, no bit enderevel.
4.8.5 Registro apontador de dados (DPTR).
E.B.

Pgina - 15

Microcontrolador 8051

O registro apontador de dados formado por um byte alto (DPH) acessado pelo endereo 83H e
por um byte baixo (DPL), acessado pelo endereo 82H. A sua funo a de manter um endereo de 16
bits, usado para acessar memrias externas. Portanto, este registro pode ser manipulador como um registro de 16 bits, ou como dois registros independentes de 8 bits.
4.8.6 REGISTROS DAS PORTAS 0 3 (P0-P3).
Os registros P0, P1, P2 e P3 so latches das portas 0, l, 2 e 3, respectivamente. O registro P0 acessado pelo endereo 80H. O registro P1, pelo endereo 90H. O P2, pelo endereo A0H e o P3 por B0H.
Todos estes registros so bit enderevel. Escrever 1 no bit de uma porta causar uma sada de nvel alto
no correspondente pino da porta. Quando usado como entrada, o estado externo aplicado ao pino ser
armazenado no correspondente bit do registro da porta.
4.8.7 REGISTRO DE BUFFER DE DADO SERIAL (SBUF).
O registro de buffer de dado serial, na realidade, composto de dois registros separados. Um registro buffer transmissor e um registro buffer receptor. Estes registros so denominados por SBUF e so diferenciados pelas operaes de leitura ou escrita. Quando o dado for movido para SBUF, ele ir para o buffer transmissor que executar a operao de transmisso serial, iniciada pelo prprio movimento do dado.
Quando o dado for movido de SBUF, ele ser lido do buffer de recepo. Este registro acessado pela escrita, ou pela leitura do endereo 99H.
4.8.8 REGISTRO DOS TEMPORIZADORES.
O par de registros (TH0, TL0) e (TH1, TL1) formam o registro contador para o temporizador/contador 0 e 1, respectivamente. So acessados respectivamente pelos endereos 8CH, 8AH, 8DH e
8BH.
4.8.9 REGISTROS DE CONTROLE.
Os registros de funo especial denominados IP, IE, TMOD, TCON, SCON e PCON contm bits
de controle e de status para o sistema de interrupo, os temporizadores/contadores e a porta serial.

E.B.

Pgina - 16

Microcontrolador 8051

5. BIBLIOGRAFIA
- The 8051 Microcontroler. Hardware, Software and Interfacing
Stewart, James W.
Regents / Prentice Hall
- Aplicaes Prticas do Microcontrolador 8051.
Silva Jr., Vidal Pereira da
rica

E.B.

Pgina - 17

Vous aimerez peut-être aussi