Você está na página 1de 60

MANUAL

MICROCONTROLADORES

FAMLIA 8031/8051

PROF. EDSON PEDRO FERLIN

CURITIBA, PR
ABRIL 2004

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Sumrio
CAPTULO 1 INTRODUO ............................................................................................................................................. 3
CAPTULO 2 VISO GERAL ............................................................................................................................................. 4
1.1) Caractersticas de Hardware .......................................................................................................................................... 6
1.1) Pinagem do 8051 ........................................................................................................................................................... 7
1.2) Organizao da Memria .............................................................................................................................................. 9

Memria de Programa............................................................................................................................................... 9

Memria de Dados .................................................................................................................................................. 10


CAPTULO 2 - ARQUITETURA INTERNA........................................................................................................................ 12
2.1) Registradores da CPU ................................................................................................................................................. 13
2.2) Portas de E/S ............................................................................................................................................................... 16
2.3) Acesso Memria Externa .......................................................................................................................................... 19
2.4) Timing da CPU ............................................................................................................................................................ 19
2.5) Contadores / Temporizadores ...................................................................................................................................... 21
2.6) Porta Serial .................................................................................................................................................................. 24
2.7) Estrutura de Interrupo .............................................................................................................................................. 31
2.8) Reset da CPU e Reduo de Consumo ........................................................................................................................ 37
CAPTULO 3 CONJUNTO DE INSTRUES ................................................................................................................. 39
3.1) Modos de Endereamento ........................................................................................................................................... 39

Endereamento Direto ............................................................................................................................................ 39

Endereamento Indireto via Registrador ................................................................................................................. 39

Endereamento Imediato......................................................................................................................................... 40

Endereamento Indexado ........................................................................................................................................ 40

Endereamento Direto via Registrador ................................................................................................................... 40

Endereamento Implcito ........................................................................................................................................ 40


3.2) Instrues Aritmticas ................................................................................................................................................. 41
3.3) Instrues Lgicas/Manipulao de Variveis Booleanas ........................................................................................... 42
3.4) Instrues de Transferncia de Dados ......................................................................................................................... 44

Transferncia de e para a Memria Interna............................................................................................................. 44

Transferncia de/para a Memria Externa .............................................................................................................. 44


3.5) Instrues de Salto....................................................................................................................................................... 46
CAPTULO 4 PROGRAMAO EM ASSEMBLY 8051 ............................................................................................... 47
4.1) Programa de Extrao da Centena-Dezena-Unidade ................................................................................................... 47
4.2) Programa de Obteno do Maior valor em um Vetor .................................................................................................. 48
4.3) Programa de Potenciao de Po P1 ............................................................................................................................... 48
4.4) Programa de Teste da Memria Principal ................................................................................................................... 49
CAPTULO 5 PROJETOS DE SISTEMAS COM 8051 ..................................................................................................... 50
ANEXO 1 Conjunto de Instrues do 8051 ........................................................................................................................ 51
ANEXO 2 SAB 80C515/80C535 ........................................................................................................................................ 56
SAB 80C515/80C535 Microprocessadores CMOS de 8 bits ............................................................................................. 57
Estrutura Interna da famlia 80x535................................................................................................................................ 58
Caractersticas Tcnicas .................................................................................................................................................. 58
BIBLIOGRAFIA .................................................................................................................................................................... 60

______________________________________________________________________________________________

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

CAPTULO 1 INTRODUO
Neste manual detalhamos a famlia de microcontroladores 8031/8051 tanto no aspecto da
microarquitetura quanto de programao em assembly, desta famlia que amplamente utilizada no
mercado e tambm de fcil desenvolvimento, tendo inclusive compiladores C para ela.
Os microcontroladores so microprocessadores direcionados para aplicaes de controle, que j
possuem em seu interior recursos como memria de programa e dados, portas de comunicao,
controladores de interrupo, timers, e em alguns casos conversores A/D. A grande vantagem que por
j possurem estes recursos incorporados as aplicaes desenvolvidas com eles so mais compactas e
por conseqncia apresentam um custo menor, quando comparado com o desenvolvimento usando
microprocessadores, pois estes recursos devem ser agregados no sistema.
As informaes presentes neste manual foram obtidas de diversos documentos e compiladas de
uma maneira a proporcionar uma melhor viso sobre estes microcontroladores, seus recursos e
instrues necessrios para a programao assembly e para a compreenso do funcionamento deste,
verstil e prtico, microcontrolador.
Alm de ser utilizado para o desenvolvimento de projetos digitais compactos, direcionados para
aplicaes de controle e gerenciamento, ele pode ser utilizado como elemento didtico para a
demonstrar o funcionamento dos processadores, pois o desenvolvimento de programas usando
assembly para 8051 de fcil compreenso.

______________________________________________________________________________________________

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

CAPTULO 2 VISO GERAL


O Intel 8051 um microcontrolador clssico, e um verdadeiro microcomputador contendo
E/S paralela, contadores/temporizadores, E/S serial, RAM, e EPROM ou ROM (dependendo do tipo).
A famlia 8051 composta por vrios membros (a Intel se refere como a famlia MCS-51), cada um
adaptado para um tipo especfico de sistema.
As diferentes verses so mostradas na tabela 1. O 8051 tem dois parentes prximos, o 8751 e
o

8031,

um

primo,

8052.

Todas

as

verses

contm

mesma

CPU,

RAM,

contadores/temporizadores, portas paralelas, e E/S serial. O 8051 contm 4Kbytes de ROM, a qual
definida/mascarada quando o chip produzido. No 8751, a ROM trocada por EPROM que se pode
programar.
O 8031 destinado para aplicaes expandidas e usa memria externa. O 8031 usa trs das
quatro portas paralelas do chip para fazer o endereamento convencional e um barramento de dados
com linhas apropriadas de controle.
Desde que o 8031 ainda contenha RAM, uma porta paralela, e uma porta serial - at mesmo
quando funciona como uma CPU principal de um circuito expandido - o nmero de chips eventuais
necessrios para expandir o E/S ou memria ainda consideravelmente pequeno.
A Intel e outras companhias comercializam variaes da famlia MCS-51 com mais memria
interna, mais E/S, baixa potncia, e assim por diante. Um 80C31 uma verso CMOS de baixa
potncia do 8031, por exemplo. O 8052, o mesmo que o 8051, exceto que tem outro
contador/temporizador e RAM e ROM adicionais.
Como pode-se esperar, tanto a fabricao da mscara quanto a construo do chip demanda
tempo e dinheiro. A programao por mscara faz sentido para uma aplicao que usa milhares de
8051 idnticos, mas isto no prtico para baixo volume de sistemas e de prottipos.
O 8751 possui todas as caractersticas do 8051, exceto que uma nica EPROM substitui o
programa armazenado na ROM. Fazer uma mudana no programa to simples como apagar a
EPROM com luz ultravioleta e gravar outro programa. Muitos projetistas usam 8751 sobre o trabalho
de codificao, ento confiam para uma grande classe de 8051 com o programa em ROM. Se o volume
do produto suficientemente pequeno, freqentemente proveitoso o uso do 8751 mesmo no produto
final.

______________________________________________________________________________________________

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

O 8031 no tem o programa armazenado no prprio chip. O sistema incluir uma EPROM
externa e um latch de endereo, como visto na figura 1. Considerando a queda de preo das
EPROMs e o pesado custo do uso de ambos os 8051s ou 8751s em pouca quantidade, o 8031 uma
alternativa vivel apesar dos chips adicionais. Para muitos sistemas pequenos, a combinao
8031/EPROM muito melhor em custo/benefcio do que um 8051.
Todos os membros da famlia MCS-51 tem o mesmo ncleo do hardware e, portanto, usam o
mesmo ncleo do conjunto de instrues.

Figura 1. Sistema Mnimo com ROM externa

A famlia de microcontroladores MCS - 51 foi desenvolvida para aplicaes de controle e


oferece caractersticas de hardware sofisticadas que permitem seu uso no Controle Industrial,
Perifricos Inteligentes e em uma variada gama de produtos.
O 8031 um membro desta famlia que no possui memria interna de programa, embora toda
a arquitetura interna seja a mesma. As caractersticas de hardware e software da famlia 8051 permitem
a manipulao de bits com extrema facilidade e possibilitam o desenvolvimento de sistema
microprocessado de um nico chip.
Para os membros da famlia que contem ROM interna podem utilizam RAM adicional, como
pode ser visto na Figura 2.

______________________________________________________________________________________________

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Figura 2. (Sistema com ROM interna e RAM adicional externa)

Verses com ROM:


8051, 80C51, 80CL51, 8052, 83C053, 83CL410, 83C451, 83C528, 83C550, 83C552,
83C562, 83C575, 83C592, 83C652, 83C654, 83C751, 83C752, 83C851, 83C852
Verses sem ROM:
8031, 80C31, 8032, 80C32, 80CL410, 80C451, 80C528, 80C550, 80C552, 80C562,
80C575, 80C592, 80C652, 80C851
Verses com EPROM:
87C51, 87C52, 87C054, 87C451, 87C528, 87C550, 87C552, 87C575, 87C592,
87C652, 87C654, 87C751, 87C752

1.1) Caractersticas de Hardware

______________________________________________________________________________________________

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

As caractersticas funcionais apresentadas abaixo referem-se ao microcontrolador 8051.


CPU de 8 bits otimizada para aplicaes de controle;
Memria Interna de Programa (4Kbytes);
Memria Interna de Dados (256 bytes);
2 Contadores/Temporizadores Programveis de 16 bits;
1 Porta Serial Full - Duplex;
32 linhas de E/S;
Estrutura de Interrupo com dois nveis de prioridade e 5 fontes (2 externas, 3
internas);
RAM interna enderevel bit-a-bit;
64Kbytes para Memria Externa de Programas;
64Kbytes para Memria Externa de Dados.
Cada dispositivo da famlia MCS-51 contm todas as caractersticas principais apresentadas e
mais algumas adicionais. Uma comparao das caractersticas de todos os dispositivos da famlia
MCS-51 mostrado na tabela abaixo.

Tabela 1. Dispositivos da famlia MCS-51

1.1) Pinagem do 8051

______________________________________________________________________________________________

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Figura 1. Sistema Mnimo com ROM externa

______________________________________________________________________________________________

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

1.2) Organizao da Memria


Todos os membros da famlia MCS-51 possuem espaos de endereamento separados para
Dados e Programas (arquitetura Harvard).

Memria de Programa
O espao de endereamento para a memria de programa de 64Kbytes. No 8051, os 4Kbytes
mais baixos esto na prpria CPU (memria interna de programa). Aps o reset, a CPU inicia a
execuo no endereo 0000H, onde deve residir uma instruo de salto para o endereo de inicio do
programa. As posies 0003H a 0023H (002BH) esto reservadas para as rotinas de atendimento a
interrupes.
FFFF H
EXTERNA

EA = 0

EA = 1

EXTERNA

INTERNA

0000 H

PSEN

Figura 3. Memria de Programa: Interna e Externa

Os 4Kbytes mais baixos da memria de programa podem residir tanto internamente no chip
como na memria externa. A seleo feita pelo pino EA (External Access). Quando EA=1, a CPU
busca as instrues de endereos 0000H a 0FFFH na ROM interna e as instrues de endereos 1000H
a FFFFH na memria externa. Se EA=0, ento todas as buscas sero feitas na memria externa. No
8031, como no existe ROM interna, o pino EA deve estar sempre em 0.

______________________________________________________________________________________________

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

No 8052 (8032) que tem 8Kbytes de memria ROM, quando EA=1, a CPU busca as instrues
de endereos 0000H a 1FFFH na ROM interna, e as instrues de endereo 2000H a FFFFH na
memria externa.

Memria de Dados
O 8051 pode acessar dados tanto na Memria Interna como na Memria Externa de dados. A
Memria Externa de Dados pode ter at 64Kbytes e acessada atravs da instruo MOVX. A
Memria Interna de Dados do 8051 composta por 2 blocos de 128 bytes. O bloco inferior (00H a
7FH) usado como RAM e pode ser endereado direto ou indiretamente. O bloco superior (80H a
FFH) um espao reservado para mapear os registradores internos da CPU (SFRs - Special Function
Registers). Este bloco s pode ser acessado diretamente.
FFFF H

EXTERNA

FF H

SFR
RAM
00 H

0000 H
Memria Interna

Memria Externa

Figura 4. Memria de Dados: Interna e Externa

O bloco inferior da Memria Interna de Dados (00H a 7FH) dividido em trs partes:
Banco de Registradores (00H a 1FH): 32 bytes
rea enderevel bit-a-bit (20H a 2FH): 16 bytes
rea de rascunho (scratch-pad) (30H a 7FH): 80 bytes

______________________________________________________________________________________________

10

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

7FH

Scratch Pad (80 bytes)


30H
2FH
rea enderea bit-a-bit (16 bytes)

20H
1FH

R0 a R7 ( Banco 3 )
R0 a R7 ( Banco 2 )

Banco de Registradores (32 bytes)

R0 a R7 ( Banco 1 )
R0 a R7 ( Banco 0 )

00H

Figura 5. Bloco inferior da Memria Interna de Dados

O bloco superior (rea dos SFRs 80H a FFH) est mostrado na figura abaixo.
F8
F0

FF
B

F7

E8
E0

EF
ACC

E7

D8
D0

DF
PSW

D7

C8 T2CON*

RCAP2L* RCAP2H

TL2*

TH2*

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

Figura 6. Bloco superior da Memria Interna de Dados - rea dos SFRs


______________________________________________________________________________________________

11

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

CAPTULO 2 - ARQUITETURA INTERNA


A famlia MCS-51 baseada no seguinte diagrama em blocos:

Figura 7. Diagrama em Blocos da CPU do 8051

______________________________________________________________________________________________

12

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

2.1) Registradores da CPU


Os registradores internos do 8051, com exceo do PC (Program Counter), esto alocados na
parte superior da Memria Interna de Dados. Este espao conhecido como SFR (Special Function
Register).

ACUMULADOR (ACC) - O ACC usado como acumulador. Nas instrues especficas do


acumulador, ele simplesmente referenciado como A.
Registrador B - O registrador B utilizado durante operaes de multiplicao e diviso e serve
como fonte e destino dos dados.
Stack pointer (SP) - o ponteiro de pilha da CPU. Tem largura de 8 bits e incrementado antes de
um PUSH ou CALL e decrementado aps um POP ou RET.
DPTR (Data Pointer) - O DPTR um registrador de 16 bits usado para o endereamento da
memria externa de dados. O DPTR ocupa dois endereos sucessivos no SFR e pode ser usado
separadamente como 2 registradores de 8 bits (DPL e DPH).
Portas 0 a 3 - Os registradores P0, P1, P2 e P3 so os latchs das portas 0 ... 3 de E/S.
SBUF (Serial Data Buffer) - O SBUF formado por dois registradores separados, um registrador de
transmisso e um de recepo. Quando um dado transferido para SBUF, ele levado porta serial
para ser transmitido. Na recepo o SBUF carregado com o byte recebido.
PSW (Program Status Word) - O registrador PSW contm os flags da CPU. A tabela a seguir
mostra os flags disponveis.
(MSB)
PSW

CY

(LSB)
AC

F0

RS1

RS0

OV

-------

______________________________________________________________________________________________

13

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Smbolo

Bit

Descrio

CY

PSW.7

Flag de Carry

AC

PSW.6

Flag de Carry Auxiliar (operaes BCD)

F0

PSW.5

Disponvel ao Usurio

RS1

PSW.4

Seleo do Banco de Registradores

RS0

PSW.3

Seleo do Banco de Registradores

OV

PSW.2

Flag de Overflow

--------

PSW.1

Reservado

PSW.0

Flag de Paridade

Tabela 2. Bits do registrador PSW

Registradores de Temporizao - Os pares de registradores (TH0, TL0), (TH1, TL1), e (TH2, TL2)
so os contadores/temporizadores do 8051 e do 8052. Cada par corresponde a um registrador de 16
bits do temporizador/contador correspondente (0, 1, e 2) respectivamente.
Registradores de Captura * (apenas no 8052) - O par de registradores (RCAP2H, RCAP2L) so
registradores de captura para o Timer 2 Modo de Captura. Neste modo, em resposta a uma
transio do pino T2EX do 8052, TH2 e TL2 so copiados para o RCAP2H e RCAP2L. Timer 2
tambm tem o modo de 16 bits auto-reload, e RCAP2H e RCAP2L armazena o valor de reload para
este modo.
Registradores de Controle - Os registradores IP, IE, TMOD, TCON, SCON e PCON so os
registradores de controle e estado do sistema de interrupo, da seo de temporizao/contagem e
da porta serial.
A figura 8 (abaixo), mostra o diagrama em blocos a arquitetura interna da famlia MCS-51,
constando todos os componentes internos da CPU.

______________________________________________________________________________________________

14

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Figura 8. Diagrama em Blocos da Arquitetura Interna da Famlia MCS-51

______________________________________________________________________________________________

15

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

2.2) Portas de E/S


O 8051 possui 4 (quatro) portas de E/S bidirecionais de 8 bits. Cada porta consiste de um latch
(P0 a P3), de um driver de sada e de um buffer de entrada. As portas de E/S do 8051 podem ser usadas
para E/S ou para funes genricas.

Porta P0
A porta P0 usada como barramento multiplexado (ADD/DATA) no acesso Memria
Externa de Programa e Dados. Em um acesso Memria de Programa ou Dados, a porta P0 contm os
8 LSBs do endereo (no incio do acesso) e contm os 8 bits de dados lidos ou escritos na memria.
Para sistemas que no utilizam memria externa, a porta P0 pode ser usada como porta de E/S
para propsitos gerais, mostrada na figura 10a.

Porta P1
A porta P1 usada exclusivamente como porta de E/S. Sua estrutura est mostrada na figura
10b. Para o 8052, os pinos P1.0 e P1.1, tem outra funo especial, como segue:
P1.0

T2 (Timer/Contador 2 entrada externa)

P1.1

T2EX (Timer/Contador 2 Capture/Reload trigger)

Porta P2
A porta P2 usada para acomodar o byte mais significativo do endereo externo (a porta P0
acomoda o byte menos significativo deste endereo). As linhas de E/S de P2 podem ser usadas para
propsitos gerais se no forem afetados pela CPU durante o acesso Memria Externa. Sua estrutura
est mostrada na figura 10c.

Porta P3

______________________________________________________________________________________________

16

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

A porta P3 pode ser usada para E/S de uso genrico ou para acomodar as linhas externas da
CPU (interrupo, temporizadores, porta serial e sinais de RD/WR). A estrutura mostra na figura
10d. e a configurao de pinos da porta P3 esto mostradas na figura abaixo.
P3.0

RXD

(Entrada Serial)

P3.1

TXD

(Sada Serial)

P3.2

INT0

(Interrupo Externa 0)

P3.3

INT1

(Interrupo Externa 1)

P3.4

T0

(Entrada temp/cont 0)

P3.5

T1

(Entrada temp/cont 1)

P3.6

WR

Sinal de Ativao de Escrita

P3.7

RD

Sinal de Ativao de Leitura

Figura 9. Descrio dos pinos da porta P3


A figura 10 mostra as internamente as portas P0 a P3, apresentando a sua estrutura em termos
de dispositivos digitais.

______________________________________________________________________________________________

17

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Figura 10. Estrutura das portas P0 a P3

______________________________________________________________________________________________

18

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

2.3) Acesso Memria Externa


Os acessos externos podem ser feitos Memria de Programa e Memria de Dados. Os
acessos Memria Externa de Programa utilizam o sinal PSEN (Program Strobe Enable) como sinal
de strobe para leitura.
Os acessos Memria Externa de Dados utilizam os sinais RD e WR (P3.7 e P3.6) para
habilitar a leitura e escrita durante a instruo MOVX. O acesso Memria de Programa utiliza um
endereo de 16 bits, enquanto que, na memria de dados, podem ser usados endereos de 8 ou 16 bits
(MOV @Ri ou MOV @DPTR).
Em um acesso externo com endereo de 16 bits, o byte de mais alta ordem do endereo
emitido na porta P2 e permanece vlido durante todo o ciclo de leitura/escrita. O byte menos
significativo do endereo, em qualquer caso, emitido na porta P0.

2.4) Timing da CPU


No 8051, o ciclo de mquina composto por 12 perodos do oscilador. A cada 2 perodos,
definimos um estado. Logo, um Ciclo de Mquina (CM) composto por 6 (seis) estados (S1 a S6),
cada qual definido por dois perodos P1 a P2.

______________________________________________________________________________________________

19

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Figura 11. Timing da CPU

A execuo de uma instruo de 1 ciclo comea em S1P2 quando o opcode armazenado no


Registrador de Instruo (IR). No caso de uma instruo de 2 bytes, o segundo byte lido em S4 no
mesmo ciclo de mquina.

______________________________________________________________________________________________

20

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

No caso de uma instruo de 1 byte, o 8051 efetua o segundo fetch, mas o byte lido
ignorado e o contador de programa (PC) no incrementado. De qualquer forma, para uma instruo
de 1 ciclo, a execuo termina em S6P2, isto , no ltimo perodo do ciclo de mquina.
No 8051, a maior parte das instrues executada em 1 Ciclo de Mquina (CM). As instrues
MUL (multiplicao) e DIV (diviso) so as nicas que necessitam de mais de 2 ciclos (elas so
executadas em 4 ciclos de mquina).
A instruo MOVX (acesso Memria Externa) uma instruo de 1 byte e 2 ciclos. A sua
execuo envolve o endereamento e acesso Memria Externa entre S5 do primeiro CM e S3 do
segundo CM, intervalo no qual, o 8051 no efetua nenhum fetch.

2.5) Contadores / Temporizadores


A seo de temporizao/contagem do 8051 consiste de 2 temporizadores/contadores
programveis de 16 bits (Timer 0 e Timer 1). O 8052 possui um temporizador adicional (Timer 2). Os
temporizadores podem ser configurados para operar como:
Temporizadores ou
Contadores de eventos.
Na funo de temporizador, o registrador incrementado a cada ciclo de mquina, isto , a
cada 12 perodos do oscilador. Isto nos leva a refletir sobre a diferena conceitual entre um
temporizador e um contador de eventos. Em um temporizador o registrador executa uma contagem que
determinada por um evento peridico (o ciclo de mquina).
Na funo de contador, o registrador incrementado em resposta a uma transio 1 -> 0 em
seu pino externo correspondente (T0, T1 ou T2 (8052)). Neste caso, o pino externo amostrado
durante S5P2 de cada Ciclo de Mquina. Quando a amostragem detectar um nvel alto em um ciclo e
um nvel baixo no ciclo seguinte, o registrador incrementado. Desta forma, o 8051 precisa de 2 CMs
para reconhecer uma transio 1 -> 0, o que impe a condio de taxa mnima para a contagem de
eventos = 1/24 perodos de oscilador. Alm da seleo temporizador/contador, os temporizadores T0
e T1 podem operar em 4 modos diferentes.

Modo 0
______________________________________________________________________________________________

21

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Este modo configura o Timer 0/1 como um contador de 8 bits (THx) com um prescaler de 5
bits. Quando houver overflow, isto , quando a contagem passar de todos 1s para todos 0s, o flag
de interrupo TF1 setado.
A entrada de contagem habilitada pelos bits TR1 (Timer 1 Run 1) e GATE e pela entrada
INT1. Quando o bit GATE = 0, o contador ser habilitado somente pelo bit TR1. Quando GATE = 1, o
contador ser habilitado por TR1 durante o tempo em que INT1 = 1. Isto possibilita a medio da
largura do pulso em INT1 diretamente.
Os bits GATE e TR1 pertencem aos registradores TCON e TMOD respectivamente. A figura
abaixo mostra o formato destes registradores.
(MSB)
TMOD

GATE

(LSB)
C/T

M1

M0

GATE

C/T

M1

M0

GATE:

Se GATE = 1, o temporizador/contador x habilitado somente quanto Intx = 1.

Se GATE = 0, o temporizador/contador x habilitado somente quanto TRx = 1.

C/T: Define se a operao ser de contagem (entrada no pino Tx) ou temporizao


(entrada pelo oscilador).
M1, M0: Modo de Operao (0 ... 3)
(MSB)
TCON

TF1

(LSB)
TR1

TF0

TR0

IE1

IT1

IE0

IT0

TF1: Flag de overflow de Timer 1. Setado por hardware no overflow do Timer 1.


Resetado por hardware quando a CPU atender a interrupo.
TR1: Bit de RUN do Timer 1. Setado/resetado por software para ativar/desativar o
Timer 1.
TF0: Flag de Overflow do Timer 0.
TR0: Bit de RUN do Timer 0.
IE1: Flag de borda da interrupo externa 1. Setado por hardware quando a CPU
detectar uma borda em INT1. Resetado quando a CPU atender a interrupo.
______________________________________________________________________________________________

22

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

IT1: Bit de tipo de interrupo 1. Setado/resetado por software para especificar ativao
por borda de descida/nvel baixo em INT1.
IE0: Flag de borda da interrupo 0.
IT0: Bit de tipo de interrupo 0.
Se IT0 = 1 -> borda de descida
Se IT0 = 0 -> nvel baixo

Modo 1
O modo 1 semelhante ao Modo 0, com a diferena de que o contador, neste modo, opera com
todos os 16 bits.

Modo 2
O modo 2 configura o Timer 0/1 como um contador de 8 bits (TL1) com recarga automtica
(auto-reload). O modo 2 o mesmo para o Timer 0 e 1.
O registrador TH1 (8 bits) contm o valor de recarga, que transferido ao TL1 a cada overflow.
O bit TF1 (interrupo interna) setado a cada overflow. O valor de recarga inicializado em TH1 por
software.

Modo 3
Este modo s tem efeito sobre o Timer 0. O Timer 1, quando configurado neste modo,
simplesmente mantm seu valor (como se TR1=0). O Timer 0, quando configurado no modo 3, opera
como dois contadores de 8 bits separados (TL0 e TH0). O registrador TL0 utiliza os bits de controle de
Timer 0 (GATE, C/T, TR0), a entrada INT0 e ativa o flag de interrupo TF0. O TH0, por outro lado,
opera somente como temporizador (contador de Ciclos de Mquina) e utiliza o bit TR1 (do Timer 1)
para seu controle. Alm disso, o TH0 ativa o flag TF1 em seu overflow. Quando o Timer 0 estiver
programado no modo 3, o Timer 1 poder ser programado nos modos 0, 1 e 2, com a restrio de no
setar o flag TF1 e, portanto, no gerar interrupes de contagem. O Timer 1, neste caso, poder gerar
interrupes para a porta serial, definindo a taxa de transmisso (baud-rate).

______________________________________________________________________________________________

23

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

2.6) Porta Serial


O 8051 possui uma interface serial full-duplex duplamente bufferizada que pode ser
programada para operar nos modos sncrono ou assncrono com taxa de transmisso varivel e quadro
de transmisso de 8, 10 ou 11 bits.
A transmisso/recepo serial feita atravs dos pinos TXD (P3.1) e RXD (P3.2). O pino RXD
amostrado periodicamente e quando a porta serial detecta um start-bit vlido, o dado
correspondente carregado no registrador SBUF.
O flag de interrupo serial (RI) , ento, setado e a rotina de atendimento da porta serial (se
estiver habilitada) ser executada.
A CPU tem acesso ao byte recebido, executando uma operao de leitura em SBUF. Na
transmisso, a CPU escreve o dado a ser enviado em SBUF e a porta serial encarrega-se de transmiti-lo
atravs do pino TXD.
A porta serial do 8051 pode operar em quatro diferentes modos:
Modo 0: Transmisso sncrona com taxa de transmisso fixa. O pino RXD usado
como entrada e sada dos dados enquanto o pino TXD emite o sinal de clock para a
transmisso.
Modo 1: Transmisso/Recepo assncrona com quadro de 10 bits (1 start bit, 8 bits de
dados, e 1 stop bit). Os bits so transmitidos atravs de TXD e recebidos por RXD. Na
recepo, o stop bit carregado no bit RB8 do registrador SCON. A taxa de transmisso
varivel.
Modo 2: Transmisso/Recepo assncrona com quadro de 11 bits (1 start bit, 8 bits de
dados, 1 bit de paridade, e 1 stop bit). O bit de paridade (TB8 do registrador SCON)
pode ser atribudo por software antes da transmisso fazendo TB8 <- PSW.0. Na
recepo, o bit de paridade carregado em RB8 e o stop bit ignorado. A taxa de
transmisso pode ser programada para 1/32 ou 1/64 da freqncia do oscilador.
Modo 3: Transmisso/Recepo assncrona com quadro de 11 bits. O modo 3 igual ao
modo 2 exceto pela taxa de transmisso, que varivel.
______________________________________________________________________________________________

24

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Em todos os modos, a transmisso serial inicia por uma instruo que utiliza o SBUF como
registrador de destino. A recepo inicia, no modo 0, quando RI = 0 e REN = 1 e nos outros modos
quando for detectado um start bit e REN = 1. O registrador SCON contm os bits de controle da porta
serial.
(MSB)
SCON

(LSB)

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

SM0

SM1

MODO

DESCRIO

TAXA TRANSMISSO

Shift Register

Osc./12

UART 8 bits

Varivel

UART 9 bits

Osc./64 ou osc./32

UART 9 bits

Varivel

Tabela 3. Combinaes de SM0 e SM1, determinando o modo e a taxa de transmisso

SM2: Habilita a comunicao entre processadores nos modos 2 e 3. Nestes modos, se


SM2 = 1, o flag RI no ser ativado se o 9 bit recebido (RB8) for zero. No modo 1,
se SM2 = 1, o flag RI no ser ativado se no for detectado um stop bit vlido. No
modo 0, o SM2 deve ser 0.
REN: Habilita a recepo serial. Setado/resetado para habilitar/desabilitar a recepo.
TB8: Representa o 9 bit de dados a ser transmitido nos modos 2 e 3. Setado/resetado
por software pelo programador.
RB8: Nos modos 2 e 3, recebe o 9 bit de dados da recepo. No modo 1, se SM2 =
0, o bit RB8 recebe o stop bit recebido. No modo 0, o RB8 no usado.
TI: Flag de interrupo de transmisso. Setado por hardware ao final do 8 bit
transmitido (modo 0) ou ao final do stop bit (nos outros modos). O flag TI deve ser
resetado por software.
RI: Flag de interrupo de recepo. Setado por hardware ao final do 8 bit recebido
(modo 0) ou durante a recepo do stop bit (outros modos). Deve ser resetado por
software.
______________________________________________________________________________________________

25

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

A Porta Serial no Modo 0


O modo 0 usado para expandir a capacidade de E/S do 8051, transferindo o contedo de
SBUF serialmente atravs de RXD e permitindo que um registrador de deslocamento externo utilize o
sinal de clock, emitido em TXD, para armazenar o dado transmitido. Da mesma forma na recepo,
RXD recebe os dados serialmente e um registrador de deslocamento interno coloca estes dados no
barramento interno do 8051.

A Porta Serial no Modo 1


No modo 1 so transmitidos e recebidos 10 bits atravs de TXD e RXD. O quadro de
transmisso composto por:
1 start bit;
8 bits de dados;
1 stop bit.
A taxa de transmisso serial determinada pela taxa de overflow do Timer 1.

A Porta Serial nos Modos 2 e 3


Nos modos 2 e 3, so transmitidos e recebidos 11 bits atravs de TXD e RXD. O quadro de
transmisso/recepo formado por:
1 start bit;
8 bits de dados;
1 (9) bit (normalmente paridade);
1 stop bit.
Na transmisso, o bit TB8 carregado pelo programador a partir do bit de paridade (PSW.0).
Na recepo, o 9 bit levado a RB8 (SCON.2). O trecho de programa abaixo mostra a carga do bit de
paridade em TB8 e a transmisso do contedo do ACC pela porta serial.
MOV A , < dado >

; dado a ser transmitido levado ao ACC

______________________________________________________________________________________________

26

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

MOV C , P

; CY:= Paridade

MOV TB8 , C

; TB8:= Paridade

MOV SBUF , A

; Transmisso serial do dado

No modo 2, a taxa de transmisso definida por 1/32 ou 1/64 da freqncia do oscilador


(dependendo do bit SMOD). No modo 3, a taxa de transmisso serial determinada pela taxa de
overflow do Timer 1.

Taxas de Transmisso
No modo 0, a taxa de transmisso fixa e igual a OSC/12.
No modo 2, a taxa de transmisso depende do bit SMOD (PCON.7). Se SMOD=0 (que o
valor de reset), a taxa de OSC/64. Se SMOD=1, a taxa OSC/32.

Usando o Timer 1 para Gerao da taxa de transmisso


Nos modos 1 e 3, a taxa de transmisso depende da taxa de overflow do Timer 1. A taxa de
overflow do Timer 1, por sua vez, depende do valor inicial carregado e da freqncia do oscilador. A
taxa de transmisso nos modos 1 e 3 pode ser calculada por:

Taxa TX = [ 2 ^ SMOD * (Taxa Overflow Timer 1)] / 32

Supondo que o Timer 1 seja configurado para operar no modo auto-reload, a taxa de
transmisso pode ser calculada por:

Taxa TX = ( 2 ^ SMOD * fosc) / (32 * 12 * (256 - TH1))

Usando o Timer 2 para Gerao da taxa de transmisso (apenas no 8052)


No 8052, o Timer 2 selecionado como o gerador da taxa de transmisso pelo setting TCLK
e/ou RCLK em T2CON. Nota-se ento que a taxa de baud para transmitir e receber podem ser
______________________________________________________________________________________________

27

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

simultaneamente diferentes. O modo de gerao da taxa de baud similar para o modo auto-reload, na
que um rollover no TH2 torna os registros do Timer 2 para ser recarregado com o valor de 16 bits
nos registradores RCAP2H e RCAP2L, os quais so pr-setados por software.
Agora, a taxa de baud nos Modos 1 e 3 so determinadas pela taxa de overflow do Timer 2
como segue:
Taxa TX = [ Taxa Overflow Timer 2] / 16

O Timer pode ser configurado para qualquer dos dois modos de operao timer ou
contador. Em aplicaes tpicas, configurado para operao timer (C/T2 = 0). A operao
Timer uma pequena diferena para Timer 2 quando iniciamos usando como um gerador de taxa de
baud. Normalmente, como um timer ser incrementado a cada ciclo de mquina (desta forma 1/12 a
freqncia de oscilao). Como a gerao da taxa de baud, entretanto, incrementamos cada um dos
tempos de estado (state time) (assim a freqncia de oscilao). Nestes casos a taxa de baud dada
pela frmula:

Taxa TX = (fosc) / (32 * [ 65536 - (RCAP2H, RCAP2L)])

onde (RCAP2H, RCAP2L) o contedo de RCAP2H e RCAP2L tendo como um inteiro sem sinal de
16 bits.
O seguinte trecho de programa, faz parte do programa do BASIC residente do 8052, que ajusta
automaticamente a taxa de transmisso via porta serial com outro sistema com o qual est interagindo.
MOV

R3,#00H

; INITIALIZE the AUTO BAUD COUNTERS

MOV

R1,#00H

MOV

R0,#04H

JB

RXD,$

; LOOP UNTIL a START BIT is RECEIVED

R0,$

; WASTE 8 CLOCKS INITIALLY, SIX CLOCKS

;
;
RESET5:

DJNZ

; IN THE LOOP (16) TOTAL


CLR

; 1 CLOCK (1)

MOV

A,R1

; 1 CLOCK (2)

SUBB

A,#1

; 1 CLOCK (3)

MOV

R1,A

; 1 CLOCK (4)

MOV

A,R3

; 1 CLOCK (5)

______________________________________________________________________________________________

28

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________
SUBB

A,#00H

; 1 CLOCK -- R3:R1 = R3:R1 - 1 (6)

MOV

R3,A

; 1 CLOCK (7)

MOV

R0,#3

; 1 CLOCK (8)

JNB

RXD,RESET5

; 2 CLOCKs (10), WAIT FOR END OF SPACE

JB

RXD,$

; WAIT FOR THE SPACE TO END (20H)

JNB

RXD,$

; WAIT FOR THE STOP BIT

MOV

RCAP2K,R3

; LOAD THE TIMER2 HOLDING REGISTERS

MOV

RCAP2L,R1

;
;

______________________________________________________________________________________________

29

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Comunicao entre Processadores


Os modos 2 e 3 tm uma caracterstica especial que torna-se muito til na comunicao entre
processadores. Nestes modos, so enviados 9 bits de dados. Na recepo, o 9 bit armazenado em
RB8. A porta serial pode ser programada de tal forma que, quando um dado for recebido, s haver
interrupo se o bit RB8=1. Esta programao feita com o bit SM2 (SCON.5)=1. Esta caracterstica
pode ser aproveitada para a comunicao entre processadores da seguinte forma:
Quando o processador-Mestre deseja enviar uma mensagem a um dos processadoresescravos, ele envia primeiro o endereo do processador com quem ele deseja se comunicar. Este
endereo deve diferir dos dados de comunicao pelo fato de que ele dever interromper todos
os processadores, enquanto que os dados no devem interromper os processadores que no
fazem parte da comunicao. Logo, o endereo dever ter o 9 bit = 1 para que todos os
escravos sejam interrompidos, analisem o valor do endereo e reconheam o destino correto.
Quando o processador endereado iniciar a comunicao com o processador-mestre, os dados
envolvidos nesta comunicao (RB8=0) no causaro interrupo nos demais processadores.
O procedimento de comunicao pode ser sintetizado pelos seguintes passos:
1. O processador-mestre envia o byte de endereo com o 9 bit setado. Isto faz com que
os processadores-escravos sejam todos interrompidos.
2. Os processadores-escravos recebem o byte de endereo e verificam se a comunicao
refere-se a eles.
3. O processador-escravo endereado reseta o bit SM2 para permitir que os dados, que
viro na sequencia, causem interrupes na sua porta serial. Durante a transmisso
dos dados entre o processador-mestre e o processador endereado, o 9 bit deve ser
sempre 0, fazendo com que os outros processadores no sejam interrompidos.

______________________________________________________________________________________________

30

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

2.7) Estrutura de Interrupo


O 8051 possui uma estrutura de interrupo com 5 fontes e o 8052 prov 6 fontes de
interrupo e dois nveis de prioridade. As fontes de interrupo so:
Timer 0;
Timer 1;
Timer 2 (apenas no 8052);
Porta Serial;
Interrupo Externa 0 (INT0);
Interrupo Externa 1 (INT1).
As interrupes externas INT0 e INT1 cada uma delas podem ser ativadas pelo nvel ou pela
transio de nvel, dependendo dos bits IT0 e IT1 no registrador TCON. Os flags que atualmente gera
estas interrupes so os bits IE0 e IE1 de TCON. Quando uma interrupo externa gerada, o flag
que geram zerado pelo hardware quando a rotina de servio vetorizada para somente se a
interrupo est ativada pela transio.
Se a interrupo est ativada pelo nvel, ento a origem de requisio externa que controla o
flag de requisio.
A interrupo Timer 0 e Timer 1 so geradas por TF0 e TF1, a qual so setadas por um
rollover nos seus respectivos registradores Timer/Contadores (exceto Timer 0 no Modo 3). Quando
uma interrupo de timer gerada, o flag que gera zerado pelo hardware on-chip quando a rotina
de servio vetorizada.
A interrupo da porta serial gerada por um OR lgico de RI e TI. Nenhum destes flags
zerado por hardware quando a rotina de servio vetorizado. De fato, a rotina de servio normalmente
tem determinado se estava RI ou TI que gerou a interrupo, e o bit ter de ser zerado em software.
Todos os bits que geraram interrupo podem ser setados ou zerados por software, com o
mesmo resultado como embora tenha sido setado ou zerado por hardware. Isto , as interrupes
podem ser geradas ou interrupes pendentes podem ser cancelados em software.
Cada uma destas fontes de interrupes podem ser individualmente habilitadas ou desabilitadas
pelo setting ou o zeramento de um bit no SFR (Special Function Register) IE. O IE contm tambm
um bit de desabilitao global, EA, a qual desabilita todas as interrupes de uma vez.

______________________________________________________________________________________________

31

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Quando uma das fontes solicita interrupo, o 8051 (8052) executa um salto para o endereo
de atendimento da fonte requisitante. Os endereos so:

FONTE

ENDEREO

INT 0

3 (0003 H)

TIMER 0

11 (000B H)

INT 1

19 (0012 H)

TIMER 1

27 (001B H)

PORTA SERIAL

35 (0023 H )

TIMER 2

43 (002B H) *

Tabela 4. Fontes de Interrupo e os seus respectivos endereos

Nos endereos de destino da tabela acima, normalmente encontram-se as instrues de JUMP


para o incio da rotina de atendimento.
O pedido de interrupo feito setando o flag de interrupo correspondente nos registradores
TCON e SCON. Os flags de interrupo so:

FONTE

FLAG

LOCALIZAO

INT0

IE0

TCON.1

TIMER0

TF0

TCON.5

INT1

IE1

TCON.3

SERIAL (TX)

TI

SCON.1

SERIAL (RX)

RI

SCON.0

Tabela 5. Fonte de Interrupo e respectiva localizao

Aceitao do pedido de Interrupo


Um determinado pedido de interrupo ser aceito se:
a fonte requisitante estiver habilitada, e
no houver outro pedido com maior prioridade sendo atendido.
O 8051 possui um registrador que armazena os bits de habilitao de cada fonte
individualmente e um bit de habilitao geral. Este registrador (IE - Interrupt Enable) est mostrado
abaixo.
______________________________________________________________________________________________

32

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

(MSB)
IE

EA

(LSB)
-----

ET2

ES

ET1

EX1

ET0

EX0

EA: Enable ALL - Habilita/desabilita todas as interrupes independentemente dos


bits IE.0 a IE.4.
ET2: Enable Timer 2 - Habilita/desabilita a interrupo do temporizador/contador 2
(apenas 8052)
ES: Enable Serial Port - Habilita/desabilita as interrupes (TI e RI) da porta serial.
ET1: Enable Timer 1 - Habilita/desabilita a interrupo do temporizador/contador 1.
EX1: Enable External Interrupt 1 - Habilita/desabilita a interrupo externa INT1.
ET0: Enable Timer 0 - Habilita/desabilita a interrupo do temporizador/contador 0.
EX0: Enable External Interrupt 0 - Habilita/desabilita a interrupo externa INT0.

Interrupes de Temporizao/Contagem
As interrupes dos Timers 0 e 1 so geradas pelos flags TF0 e TF1 respectivamente, quando o
timer correspondente sofrer overflow. Quando for gerada uma interrupo de temporizao/contagem,
o flag que gerou esta interrupo resetado por hardware quando a rotina de atendimento for iniciada.
Os flags TF0 e TF1 pertencem ao registrador TCON e esto localizados nas posies TCON.5 e
TCON.7 respectivamente.

Interrupo da Porta Serial


As interrupes da porta serial so geradas por um OR lgico entre os flags RI (recepo serial)
e TI (transmisso serial). Os flags RI e TI no so resetados pela CPU no atendimento a interrupes, e
eles devem ser resetados pelo programador como parte da rotina de atendimento.

Interrupes Externas
As interrupes INT0 e INT1 podem ser ativadas por nvel (baixo) ou borda (de descida)
dependendo dos bits IT0 e IT1 no registrador TCON. Os flags que geram as interrupes externas so
IE0 (TCON.1) e IE1 (TCON.3). Quando a CPU executa o atendimento a interrupes externas, os
flags IE0 e IE1 so resetados somente se a interrupo em questo estiver programada para ativao
por borda. No caso de ativao por nvel, o flag de interrupo ser controlado pela fonte externa.
______________________________________________________________________________________________

33

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Prioridade de Atendimento
Cada fonte de interrupes pode ser programada, individualmente, para operar em um dos dois
nveis de prioridade atravs do registrador IP (Interrupt Priority Register).
(MSB)
IP

-----

(LSB)
-----

PT2*

PS

PT1

PX1

PT0

PX0

PT2*: Define a prioridade do Timer 2 (apenas 8052)


PS: Define a prioridade (1 = alta; 0 = baixa) da porta serial
PT1: Define a prioridade do Timer 1
PX1: Define a prioridade da interrupo externa 1
PT0: Define a prioridade do Timer 0
PX0: Define a prioridade da interrupo externa 0
Uma interrupo com prioridade baixa pode ser interrompida por uma interrupo com
prioridade alta mas no pode ser interrompida por outra interrupo com mesma prioridade. Uma
interrupo com prioridade alta no pode ser interrompida por nenhuma outra interrupo.
Se duas interrupes com prioridades diferentes forem recebidas simultaneamente, a
interrupo com prioridade alta ser atendida primeiro. Se duas interrupes de mesma prioridade
forem recebidas simultaneamente, a CPU realiza um polling por hardware para determinar a
sequencia de atendimento. Sendo assim, cada nvel de prioridade possui ainda uma segunda estrutura
de prioridade determinada pela figura 12.
FONTE
IE0

PRIORIDADE ENTRE NVEIS


(Mais Alta)

TF0
IE1
TF1
RI + TI
TF2 + EXF2*

(Mais Baixa)

Figura 12. Fontes de Interrupo e prioridade entre os nveis

OBS: A prioridade mostrada acima s vlida para o caso de pedidos simultneos de fonte com
mesma prioridade.
______________________________________________________________________________________________

34

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Atendimento a Interrupes
Os flags de interrupo so armazenados em S5P2 de cada Ciclo de Mquina. Os flags so
examinados pelo circuito de polling no Ciclo de Mquina seguinte. Se um dos flags estava setado em
S5P2 do ciclo anterior, o circuito de polling detectar e o Sistema de Interrupo gerar uma
instruo LCALL (long CALL) para as rotina de atendimento em questo. Esta instruo gerada por
hardware ser inibida se:
1. Uma interrupo com igual ou maior nvel de prioridade estiver em execuo; ou
2. O ciclo de mquina no qual o polling foi executado no o ltimo CM da instruo atual;
ou
3. A instruo atual o RETI (retorno da interrupo) ou qualquer acesso aos registradores IE
ou IP.
A condio 2 assegura que a instruo atual ser completada antes do atendimento
interrupo. A condio 3 assegura que ao menos uma instruo ser executada depois de um RETI
antes do atendimento a uma outra interrupo e permite que as instrues que alteram a prioridade e
habilitao das interrupes sejam processadas.
A instruo forada (LCALL) empilha o PC (contador de programa) mas no empilha o PSW
(Program Status Word). Depois, PC carregado com o endereo da rotina de atendimento.
FONTE

VETOR DE
INTERRUPO

IE0

0003 H

TF0

000B H

IE1

0013 H

TF1

001B H

RI + TI

0023 H

TF2 +EXF2*

002B H

Tabela 6. Interrupo e o endereo da rotina de interrupo

A rotina de interrupo inicia no endereo correspondente e prossegue at que seja encontrada


uma instruo RETI. A instruo RETI informa ao processador que a rotina da interrupo terminou e

______________________________________________________________________________________________

35

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

o valor do PC recebe os dois bytes do topo da pilha para retornar ao programa no ponto onde foi
interrompido.

Interrupes por Borda


As interrupes externas (INT0 e INT1) podem ser programadas para ativao por borda de
descida (transio 1 -> 0). Neste caso, a entrada externa deve permanecer em nvel baixo por 12
perodos de oscilador para que possa ser reconhecida pelo Sistema de Interrupo. A transio 0 -> 1
poder ocorrer a qualquer momento aps os 12 perodos de oscilador, mas dever permanecer em nvel
alto pelo mesmo perodo antes da nova ativao.

Interrupo por Nvel


Quando as interrupes externas so programadas para ativao por nvel, a fonte de
interrupo deve manter a entrada ativa (em nvel baixo) at que a interrupo seja atendida e dever
desativ-la antes do final da rotina de atendimento, para evitar um novo atendimento em seguida.

______________________________________________________________________________________________

36

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

2.8) Reset da CPU e Reduo de Consumo


O reset da CPU feito atravs do pino RST mantendo-se um nvel alto por, no mnimo, 24
perodos de oscilador. A CPU responde executando um reset interno que iniciado no 2 ciclo aps o
nvel alto em RST e repetido em cada ciclo de mquina at que seja aplicado um nvel baixo em RST.
O reset da CPU coloca os seguintes valores nos registradores:
REGISTRADOR

CONTEDO

REGISTRADOR

CONTEDO

PC

0000 H

TCON

00 H

ACC

00 H

TH0

00 H

00 H

TL0

00 H

PSW

00 H

TH1

00 H

SP

07 H

TL1

00 H

DPTR

0000 H

SBUF

INDETERMINADO

P0 - P3

0FF H

PCON (CMOS)

0XXX0000 B

IP(8051)

XXX00000 B

PCON (NMOS)

0XXXXXXX B

IP(8052)

XX000000 B

TH2(8052)

00 H

IE(8051)

0XX00000 B

TL2(8052)

00 H

IE(8052)

0X000000 B

RCAP2H(8052)

00 H

TMOD

00 H

RCAP2L(8052)

00 H

SCON

00 H
Tabela 7. Valores de reset para os registradores da CPU

Power - On Reset
O reset automtico obtido quando a tenso Vcc de alimentao conectada ao pino RST
atravs de um capacitor de 10 F e o mesmo ponto ligado ao terra atravs de um resistor de 8,2K.

______________________________________________________________________________________________

37

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Reduo de Consumo
Para aplicaes onde o consumo de potncia critico, as verses NMOS e CMOS possuem um
modo de operao para reduo de consumo.

Reduo de Consumo em Verses NMOS


Nas verses NMOS, a tenso Vcc de alimentao pode ser reduzida a zero enquanto a RAM
interna mantida por uma fonte de alimentao externa conectada ao pino RST. Para colocar a CPU
no modo de reduo de consumo, o programador deve primeiro habilitar a fonte externa no pino RST
antes de retirar a tenso Vcc. Quando o 8051 for novamente alimentado, a fonte externa dever
permanecer ligada durante o tempo de reset e ento poder ser retirada.

Reduo de Consumo em Verses CMOS (Idle e Power-Down)


As verses CMOS possuem dois modos de operao para reduo de consumo - o modo Idle e
o modo Power-Down.
No modo Idle, o oscilador continua operando e os sistemas de interrupo, temporizao e a
porta serial continuam recebendo o sinal do oscilador. A CPU, no entanto no recebe o sinal do
oscilador.
No modo Power-Down, o oscilador desativado completamente. Os modos Idle e PowerDown so ativados atravs do registrador PCON.
(MSB)
PCON

SMOD

(LSB)
-----

-----

-----

GF1

GF0

PD

IDL

SMOD: Controla a diviso por 2 da taxa de transmisso serial


GF1: Flag de uso geral
GF0: Flag de uso geral
PD: Ativa o modo Power - Down
IDL: Ativa o modo Idle
OBS: Se PD=IDL=1, a CPU colocada no modo de Power-Down.

______________________________________________________________________________________________

38

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

CAPTULO 3 CONJUNTO DE INSTRUES


Todos os membros da famlia MCS-51 executam o mesmo conjunto de instrues. O conjunto
de instrues do 8051 proporciona uma ampla gama de modos de endereamento para o acesso da
RAM interna e fornece grande facilidade para as operaes de byte em estruturas de dados pequenas. O
8051 fornece um sub-conjunto de operaes de manipulao de bit, o que facilita o processamento de
variveis booleanas em aplicaes de controle.

3.1) Modos de Endereamento


A CPU do 8051 oferece os seguintes modos de endereamento:
Direto;
Indireto via Registrador;
Imediato;
Indexado;
Direta via Registrador;
Implcito.

Endereamento Direto
No endereamento direto, o operando especificado por um endereo de 8 bits contido no
opcode da instruo. Este modo s pode ser usado no acesso RAM interna a aos SFRs.

Endereamento Indireto via Registrador


Neste modo, a instruo especifica um registrador que contm o endereo do operando. Para
acessar operandos dentro do limite de 256 bytes, os registradores R0 e R1 do banco selecionado podem
ser usados. Para acessar a Memria Externa em toda a sua extenso (64Kbytes), usado o registrador
DPTR. Nas operaes de pilha (PUSH e POP), o registrador SP (Stack Pointer) usado como
ponteiro.

______________________________________________________________________________________________

39

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Endereamento Imediato
No endereamento imediato, o operando faz parte do opcode. Por exemplo, a instruo MOV
A,#100, a qual carrega o acumulador com o nmero decimal 100, que est contido no 2 byte.

Endereamento Indexado
O endereamento indexado s permitido para acessar a Memria de Programa. Este modo de
endereamento utilizado para acessar tabelas de constantes residentes em ROM. Os registradores
utilizados como base so o DPTR ou o PC, o Acumulador usado como valor de offset. O endereo
efetivo do operando, neste modo, calculado pela soma do registrador de base (PC ou DPTR) com o
contedo do Acc.

Endereamento Direto via Registrador


Os bancos de registradores, que contm R0 a R7, podem se acessados por instrues que
possuem um campo de 3 bits para especificar o registrador endereado. O operando da instruo o
valor contido no registrador. Desta forma, eliminamos a necessidade de incluir um byte completo no
opcode, o que torna a instruo eficiente do ponto de vista de espao de memria. A seleo do banco
de registradores a ser acessado definida pelos bits RS0 e RS1 do registrador PSW. Por exemplo, a
instruo MOV A,Rn.

Endereamento Implcito
Neste modo, o operando nico, ou seja, no h necessidade de especific-lo no opcode da
instruo. No 8051, algumas instrues sempre utilizam o Acumular ou o DPTR, de forma que a
codificao da instruo resume-se a um nico byte. Por exemplo, a instruo DIV AB.

______________________________________________________________________________________________

40

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

3.2) Instrues Aritmticas


O conjunto de instrues aritmticas oferecido pelo 8051 est contido na tabela abaixo.
MNEMNICO

OPERAO

ADD

A,< byte >

A = A + < byte >

ADDC

A,< byte >

A = A + < byte > + C

SUBB

A,< byte >

A = A - < byte > - C

INC

A=A+1

INC

< byte >

< byte > = < byte > + 1

INC

DPTR

DPTR = DPTR + 1

DEC

A=A-1

DEC

< byte >

< byte > = < byte > - 1

MUL

AB

B: A = B x A

DIV

AB

A = Inteiro [A/B]; B = resto [A/B]

DA

Ajuste Decimal
Tabela 8. Instrues Aritmticas

______________________________________________________________________________________________

41

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

3.3) Instrues Lgicas/Manipulao de Variveis Booleanas


As instrues lgicas do 8051 realizam operaes Booleanas (AND, OR, XOR, ..) em
operandos de 8 bits. As instrues que manipulam variveis Booleanas realizam operaes sobre
operandos de 1 bit.
As instrues lgicas esto mostradas na tabela abaixo:
MNEMNICO

OPERAO

ANL

A ,< byte >

A = A AND < byte >

ANL

< byte >,A

< byte > = < byte > AND A

ANL

< byte >,#DATA

< byte > = < byte > AND #DATA

ORL

A,< byte >

A = A OR < byte >

ORL

< byte >,A

< byte > = < byte > OR A

ORL

< byte >,#DATA

< byte > = < byte > OR #DATA

XRL

A ,< byte >

A = A XOR < byte >

XRL

< byte >,A

< byte > = < byte > XOR A

XRL

< byte >,#DATA

< byte > = < byte > XOR #DATA

CLR

A = 00H

CPL

A = .NOT. A

RL

Rot. Acc p/ esq. 1 Bit

RLC

Rot. Acc p/ esq. com CY

RR

Rot. Acc p/ dir. 1 Bit

RRC

Rot. Acc p/ dir. com CY

SWAP

Troca nibbles do Acc


Tabela 9. Instrues Lgicas

______________________________________________________________________________________________

42

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

As instrues que manipulam variveis Booleanas esto mostradas na tabela abaixo:


MNEMNICO

OPERAO

ANL

C,bit

C = C AND bit

ANL

C,/bit

C = C AND NOT 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=0

CLR

bit

bit = 0

SETB

C=1

SETB

bit

bit = 1

CPL

C = NOT C

CPL

bit

bit = NOT bit

JC

rel

Jump se C = 1

JNC

rel

Jump se C = 0

JB

bit,rel

Jump se bit = 1

JNB

bit,rel

Jump se bit = 0

JBC

bit,rel

Jump se bit = 1; CLR bit


Tabela 10. Instrues Manipulam Variveis Booleanas

Todos os acessos a bit so feitos com endereamento direto. Os bits com endereos de 00H at
7FH esto na parte baixa (128 primeiros bytes da RAM interna) e os bits com endereos de 80H at
FFH esto no espao dos SFRs.

______________________________________________________________________________________________

43

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

3.4) Instrues de Transferncia de Dados


As instrues de transferncia de dados realizam operaes de movimentao de contedo entre
a memria e o operando especificado pelo modo de endereamento.
Estas instrues podem efetuar transferncias de/para as Memrias Interna/Externa.

Transferncia de e para a Memria Interna


As instrues que transferem dados de/para a Memria Interna do 8051 esto apresentadas na
tabela abaixo:
MNEMNICO

OPERAO

MOV

A,< src >

A = < src >

MOV

< dest >,A

< dest > = A

MOV

< dest > , < src >

< dest > = < src >

MOV

DPTR,#DATA16

DPTR = dado imed. 16 bits

PUSH

< src >

INC SP:MOV@SP, <src>

POP

< dest >

MOV <dest>,@SP: DEC SP

XCH

A,< byte >

ACC <--> < byte >

XCHD

A,@Ri

ACC(3-0) <--> @Ri(3-0)

Tabela 11. Instrues de Transferncia de dados para Memria Interna

As instrues de PUSH e POP s aceitam endereamento direto para especificar o operando a


ser empilhado ou retirado da pilha, embora o endereo efetivo na pilha sempre calculado
indiretamente (usando SP como ponteiro). Sendo assim, a pilha no pode residir no espao dos SFRs
pois nesta rea, s permitido o acesso direto.

Transferncia de/para a Memria Externa


O 8051 permite que sejam feitas transferncias de dados entre um operando e as memrias
externas de Dados e Programa. As transferncias de dados envolvendo a Memria de Programa, no
entanto, s podem ser de leitura. As instrues que acessam a Memria Externa so MOVX (Memria
Externa de Dados) e MOVC (Memria de Programa). A tabela abaixo apresenta as transferncias de
dados obtidas com as instrues MOVX.

______________________________________________________________________________________________

44

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Tamanho

Mnemnico

Operao

do Endereo
8 bits

MOVX

A,@Ri

Leitura RAM externa em @Ri

8 bits

MOVX

@Ri,A

Escrita RAM externa em @Ri

16 bits

MOVX

A,@DPTR

Leitura RAM externa em @DPTR

16 bits

MOVX

@DPTR,A

Escrita RAM externa em @DPTR

Tabela 12. Instrues Transferncia para Memria Externa

O acesso Memria de Programa, feito pela instruo MOVC (Move Code), usado para
acessar tabelas de constantes em ROM. Estas instrues so conhecidas como instrues de Lookup
Table e esto mostradas na tabela abaixo.
Mnemnico

Operao

MOVC

A,@A+DPTR

Leitura da ROM em (A+DPTR)

MOVC

A,@A+PC

Leitura da ROM em (A+PC)

Tabela 13. Instrues de Acesso Memria de Programa

______________________________________________________________________________________________

45

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

3.5) Instrues de Salto


As instrues de salto podem ser divididas em saltos condicionais e incondicionais. As tabelas
abaixo mostram as instrues de salto do 8051.
SALTO CONDICIONAL
Mnemnico

Operao

JZ

rel

Jump se Acc = 0

JNZ

rel

Jump se Acc 0

DJNZ

< byte >,rel

Decrementa e salta se <byte> 0

CJNE

A,<byte>,rel

Compara e salta se A <byte>

CJNE

<byte>,#data,rel

Compara e salta se <byte> #data

Tabela 14. Instrues de Salto Condicional

SALTO INCONDICIONAL
Mnemnico

Operao

JMP

addr

Salta para addr

JMP

@A+DPTR

Salta para A+DPTR

CALL

addr

Chama subrotina em addr

RET

Retorna da subrotina

RETI

Retorna da interrupo

NOP

Nenhuma operao

LJMP

addr

Long Jump - (qualquer posio da Memria de Programas)

SJMP

rel

Short Jump - (Salto de 128 bytes)

AJMP

addr

Absolute Jump - (Salto dentro da pg. corrente 2K)

LCALL

addr

Long CALL - (Chama rotina - 64K da Memria Programa)

ACALL

addr

Absolute CALL - (Chama rotina na pgina corrente 2K)


Tabela 15. Instrues de Salto Incondicional

______________________________________________________________________________________________

46

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

CAPTULO 4 PROGRAMAO EM ASSEMBLY 8051


A seguir mostramos alguns exemplos de programas em Assembly para 8051, com base nas
instrues do Anexo 1.

4.1) Programa de Extrao da Centena-Dezena-Unidade


;------------------------------------------ -------------------------------------;
; Programa: Extrao da Centena-Dezena-Unidade
;
;------------------------------------------ --------------------------------------

inicio:

dezena:

unidade:

org 00h

;Posio de Reset

sjmp inicio

;Salto para o incio do Cdigo

org 30h

;Endereo de incio do programa

mov
mov
mov
mov
mov
mov
subb
mov
jc
div
mov
mov
mov
mov
subb
mov
jc
div
mov
mov
mov
sjmp

r1,#00
r2,#00
r3,#00
a,p1
b,#100d
r4,a
a,b
a,r4
dezena
ab
r1,a
a,b
b,#10d
r4,a
a,b
a,r4
unidade
ab
r2,a
a,b
r3,a
$

;inicio do programa
;Zera os registradores
;Leitura do valor
;Armazenamento do valor 100d

;Teste de valor >= 100d


;centena
;Armazenamento do valor 10d

;Teste de valor >= 10d


;Dezena
;Unidade
;Fim do programa

______________________________________________________________________________________________

47

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

4.2) Programa de Obteno do Maior valor em um Vetor


;------------------------------------------ -------------------------------------;
; Programa: Obteno do Maior valor em um vetor (30h a 40h)
;
;------------------------------------------ -------------------------------------org
00h
;Reset
sjmp
inicio
;Salta para inicio do programa
org
30h
;Endereco do inicio do programa
inicio:
mov
r0,#30h
;Endereco do inicio do vetor
mov
r3,#00
;Maior valor <--- 00
salto1:
mov
a,@r0
;Leitura da posicao do vetor
mov
b,a
mov
a,r3
clr
c
subb
a,b
jnc
salto2
;Teste para ver se eh maior
mov
r3,b
;Maior recebe valor
salto2:
inc
r0
;Incrementa ponteiro
mov
b,r0
mov
a,#40h
;Endereco de fim de vetor
clr
c
subb
a,b
jnc
salto1
;Teste de fim de vetor
sjmp
$
;Fim do programa

4.3) Programa de Potenciao de Po P1


;------------------------------------------ -------------------------------------;
; Programa: Potenciao de P0p1
;
;------------------------------------------ -------------------------------------org
00h
;Reset
sjmp
inicio
;Salta para inicio do programa
inicio:

loop:

fim:

org
mov
mov
mov
mov
mov
mov
jz
mov
mov
jz
mov
dec
mov
mul
mov
sjmp
sjmp

30h
a,p0
r0,a
a,p1
r1,a
20h,#00
a,r0
fim
20h,#01h
a,r1
fim
a,20h
r1
b,r0
ab
20h,a
loop
$

;Endereco de inicio do programa


;Leitura do numero
;Leitura do expoente
;Posio de armazenamento
;Testa se numero = zero
;Testa se expoente = zero
;Decrementa expoente
;Multiplica
;Volta para nova multiplicacao
;Fim do programa

______________________________________________________________________________________________

48

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

4.4) Programa de Teste da Memria Principal


;------------------------------------------ -------------------------------------;
; Programa: Teste de Memria Principal
;
;------------------------------------------ -------------------------------------org
00h
sjmp inicio
org
30h
inicio:
loop1:

loop2:

zero:

alter:

uns:

erro:

mov
mov
nop
djnz

P1,#00
a,#10d

; P1 <----- 00h

a,loop1

; delay

mov

P1,#ffh

; P1 <----- ffh

mov
nop
djnz

a,#10d
a,loop2

; delay

mov

P1,#10101010b

; P1 <----- 10101010b

mov
mov
mov
movx
movx
cjne
inc
mov
cjne
mov
cjne
mov
mov
mov
movx
movx
cjne
inc
mov
cjne
mov
cjne
mov
mov
mov
movx
movx
cjne
inc
mov
cjne
mov
cjne
sjmp
mov
sjmp

DPTR,#0000h
a,#00
b,#00
@dptr,a
a,@dptr
a,b,erro
dptr
a,dph
a,#ffh,zero
a,dpl
a,#ffh,zero
DPTR,#0000h
a,#0101010b
b,#0101010b
@dptr,a
a,@dptr
a,b,erro
dptr
a,dph
a,#ffh,alter
a,dpl
a,#ffh,alter
DPTR,#0000h
a,#ffh
b,#ffh
@dptr,a
a,@dptr
a,b,erro
dptr
a,dph
a,#ffh,uns
a,dpl
a,#ffh,uns
$
p1,#00h
$

; Testa a memria com 0000h

; Testa a memria com 10101010b

; Testa a memria com ffh

______________________________________________________________________________________________

49

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

CAPTULO 5 PROJETOS DE SISTEMAS COM 8051

______________________________________________________________________________________________

50

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

ANEXO 1 Conjunto de Instrues do 8051

______________________________________________________________________________________________

51

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Tabela 16a. Conjunto de Instrues da famlia MCS-51


______________________________________________________________________________________________

52

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Tabela 16b. Conjunto de Instrues da famlia MCS-51


______________________________________________________________________________________________

53

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Tabela 16c. Conjunto de Instrues da famlia MCS-51


______________________________________________________________________________________________

54

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Tabela 16d. Conjunto de Instrues da famlia MCS-51

______________________________________________________________________________________________

55

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

ANEXO 2 SAB 80C515/80C535

______________________________________________________________________________________________

56

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

SAB 80C515/80C535 Microprocessadores CMOS de 8 bits


SAB 80C515/80C515-16:
um microprocessador CMOS com ROM programada por mscara.

SAB 80C535/80C535-16:
um microprocessador CMOS para ROM externa. Os

integrados

ACMOS

SAB

80C515/80C535 so as ltimas verses da famlia SAB 8051 da Siemens, e so 100% compatveis


com os SAB 80515/80535 fabricados com tecnologia MYMOS. OS novos integrados esto disponveis
em verses de 12MHz e 16MHz.
Cada integrado pode servir de processador e co-processador aritmtico. Possui melhores
caractersticas de aritmtica binria e BCD e possui uma excelente capacidade de tratamento de bits
solitrios.
A utilizao muito eficiente da memria resulta num conjunto de instrues com 44% de
instrues de um s byte, 41% de instrues de 2 bytes e apenas 15% de instrues de 3 bytes.
Controlado por um cristal de quartzo de 12 MHz, o que resulta em 58% das instrues so executadas
em 1s.
A arquitetura dos SAB 80C515/535 baseada nas da famlia de microprocessadores SAB
8051/80C51. As seguintes caractersticas dos SAB 80C515/535 so 100% compatveis com as dos
SAB 80C51:
Conjunto de instrues;
Interface de extenso com memria externa (portas 0 e 2);
Porta serial Full-duplex;
Contadores/temporizadores 0 e 1;
Funes alternativas da porta 3;
Funes alternativas dos 128 bytes inferiores da RAM interna e dos 4Kbytes inferiores da
ROM interna.
______________________________________________________________________________________________

57

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Estrutura Interna da famlia 80x535

A estrutura interna do 80535 mostrada na figura 12 .

Figura 12. (Estrutura Interna do 80535)

Caractersticas Tcnicas

As caractersticas tcnicas do 80515 e 80535 so mostradas a seguir:


ROM de 8x8kbits (s no 80C515);
RAM de 8x256 bits;
6 portas de E/S de 8 bits;1 porta de entrada, digital ou analgica;
Vrias possibilidades de recarga, captura e comparao;
Canal srie full-duplex;
12 vetores de interrupo com 4 nveis de prioridade;

______________________________________________________________________________________________

58

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

Conversor A/D de 8 bits com de 8 entradas multiplexadas e tenses de referncia internas


programveis;
Temporizador co de guarda de 16 bits (watchdog);
Processador de lgebra de Boole;
256 posies de endereo por bit;
Durao de execuo da quase totalidade das instrues: 1s (750ns);
Multiplicao e diviso: 4s (3s);
Memria externa extensvel at 128Kbytes;
Retro-compatibilidade com o SAB 8051;
Funcionamento 100% compatvel com o SAB 80515;
Modos de funcionamento idle e power-down.

______________________________________________________________________________________________

59

Microcontroladores - Famlia 8051


Prof. Edson Pedro Ferlin
__________________________________________________________________________________

BIBLIOGRAFIA

1. CIARCIA, Steve., Ciarcias Circuit Cellar. Why Microcontrollers?. Revista Byte


Internacional. August. 1988. Pg. 239 a 247.
2. INTEL Corporation., Advance Information 8052AH-BASIC. March 1985. Pg. 1 a 10
3. INTEL Corporation., MCS-51 Architectural Overview. Pg. 5-1 a 5-19
4. INTEL Corporation., MCS-51 Programmers Guide and Instruction Set. Pg. 6-1 a 6-25
5. INTEL Corporation., Hardware Description 8051, 8052 e 80C51. Pg. 7-1 a 7-33
6. INTEL Corporation., Application Note. AP-69. An Introduction to the Intel MCS-51 SingleChip Microcomputer Family. May 1980. Pg. 2-1 a 2-30
7. INTEL Corporation., Application Note. AP-70. Using the Intel MCS-51 Boolean Processing
Capabilities. April 1980. Pg. 2-31 a 2-71
8. INTEL Corporation., Application Brief. AB-40. 32-bit Math Routines for the 8051.
December 1987. Pg. 2-166 a 2-174
9. INTEL Corporation., Application Brief. AB-12. Designing a Mailbox Memory for Two
80C31 Microcontrolers Using EPLDs. October 1987. Pg. 2-175 a 2-188
10.INTEL Corporation., Application Note. AP-252. Designing With the 80C51BH. September
1987. Pg. 2-189 a 2-212
11.INTEL Corporation., Application Note. AP-410. Enhanced Serial Port on the 83C51FA.
November 1987. Pg. 2-213 a 2-220
12.INTEL Corporation., MCS-Basic-52. Pg. 148 a 151
13._____., Microcontrolador 8051. Traducomp Informtica.

______________________________________________________________________________________________

60

Você também pode gostar