Você está na página 1de 14

Microcontrolador 8051 Memria RAM Interna

Especificao Descritiva

Projeto Fnix

BRAZIL IP

Verso 1.1 | 19/07/2004 Responsvel: Joo Fernando Bione da Silva

Microcontrolador 8051

Fnix Project

Histrico de Alteraes
Data Vers o Descrio Autor

14/08/2003 13/07/2004 19/07/2004

0.1 1.0 1.1

Primeira verso da especificao descritiva do mdulo referente memria RAM interna do 8051. Alteraes na figura e especificao do IP1 e IP0 Correes nos registradores PSW e IP0/IP1

gjcc, jfbs jfbs msml

Lista de Aprovadores
Nome Cargo

Edna Barros Srgio Cavalcante

Coordenadora do Projeto Fnix Coordenao de divulgao externa do Brazil-IP

Memria RAM

92298859.doc

Pg 2/14

Microcontrolador 8051

Fnix Project

Contedo

1. Memria RAM................................................................................................................................... 4 2. Descrio Dos Registradores de Funo Especial............................................................................ 5 3. Referncias....................................................................................................................................... 14 [1] Documento de Requisitos; <Nome do arquivo do documento de requisitos, com link>;............14 [2] Site 8052; http://www.8052.com/tutsfr.phtml ............................................................................... 14 [3] Livro The Microcontroller; Mackenzie, I. Scott; Terceira Edio............................................... 14 [4] Data Sheet Siemens: Microcontroller Components; SAB 80C517/80C537 8-Bit CMOS SingleChip Microcontroller............................................................................................................................. 14

Memria RAM

92298859.doc

Pg 3/14

Microcontrolador 8051

Fnix Project

1. 1.1

Memria RAM Organizao da Memria RAM Interna

A memria RAM interna do 8051 est dividida em trs partes: memria de propsito geral, banco de registradores e espao de memria enderevel a bit. Duas caractersticas a serem levadas em conta so: (1) Os registradores e as portas de entrada/saida so mapeados em memria e podem ser acessados como qualquer outra posio de memria, e (2) a pilha de execuo tambm armazenada na memria interna. Como mostra a figura abaixo a memria dividida em banco de registradores (00H 1FH), RAM enderevel a bit

Memria RAM

92298859.doc

Pg 4/14

Microcontrolador 8051

Fnix Project

(20H-2FH), RAM de propsito geral (30H-7FH), e registradores de funes especiais (80H-FFH). Cada um desses espaos ser discutido a diante.

1.2

Banco de Registradores

As primeiras 32 posies da memria interna contm 4 bancos de registradores. O conjunto de instrues do 8051 suporta 8 registradores, R0 at R7 (registradores do banco de registradores ativo), e por definio (depois de reiniciar o sistema) estes registradores esto no endereo 00H-07H, ou seja, o primeiro banco estar ativo. O banco de registradores ativo pode ser alterado por meio do Program Status Word (PSW). S permitido que um dos bancos de registradores esteja ativo por vez.

1.3

RAM Enderevel a Bit

O 8051 contm 210 posies de memria endereveis a bit, das quais 128 esto localizadas no intervalo 20H at 2FH, e o resto so os registradores de funes especiais. Este espao pode ser acessado de duas formas. Uma das formas fazer referncia ao endereo do bit, usando instrues apropriadas, no escopo 0H at 7FH. A outra maneira de acesso enderear os bytes de 20H at 2FH. Estes bits ainda podem ser referenciados como bits de acordo com a seguinte sintaxe: 20.0 (acessa o bit 0 do endereo 20).

1.4

RAM de Propsito Geral

A memria RAM de propsito geral, como o prprio nome diz, uma memria que pode ser usada livremente e diretamente pelas instrues, sem nenhuma restrio, a no ser o fato de ser acessada apenas por bytes. Este espao de memria o espao de armazenamento de dados em geral durante a execuo de um programa,.

2. Descrio Dos Registradores de Funo Especial

2.1

Definio dos Registradores de Funo Especial

O 8051 possui muitos modos de operao, e esses modos de operao so configurados nos SFRs, os chamados Special Function Registers, ou registradores de funo especial. Cada um deles possui um nome, e eles so acessados como se eles fossem da memria RAM interna, mas a diferena bsica que enquanto a RAM interna vai do endereo 00h at o 7Fh, os registradores SFRs ento compreendidos entre o endereo 80h at o FFh. Embora eles estejam compreendidos nesse intervalo de endereos, nem todas as 128 posies de endereo possveis possuem SFRs. Existem apenas 21 SFRs no 8051 padro. Todos os outros
Memria RAM 92298859.doc Pg 5/14

Microcontrolador 8051

Fnix Project

endereos no intervalo (80h at FFh) so considerados invlidos, e ler e escrever nessas posies de memria deve provocar um comportamento inesperado.

2.2

Tipos de Registradores de Funo Especial

Podemos classificar os SFRs em trs tipos: SFRs de Porta de I/O O 8051 tem 4 portas de I/O de 8 bits, por isso ele possui tambm quatro SFRs de I/O. P0 P1 P2 P3 SFRs de controle Eles controlam a configurao do 8051. Eles so: PCON TCON TMOD SCON IE IP0 IP1 PSW SFRs auxiliares Eles no controlam nem configuram diretamente o 8051, mas o micro-controlador no pode funcionar sem eles, pois eles possuem funes como ler e escrever na porta serial, entre outras. Eles so: SP DPL DPH TL0 TL1 TH0 TH1 SBUF ACC
Memria RAM 92298859.doc Pg 6/14

Microcontrolador 8051

Fnix Project

SFR

Endereo

Enderevel a Bit

P0 P1 P2 P3 PCON TCON TMOD SCON IE IP0 IP1 PSW SP DPL DPH TL0 TL1 TH0 TH1 SBUF ACC B

80h 90h A0h B0h 87h 88h 89h 98h A8h B8h B9h D0h 81h 82h 83h 8Ah 8Bh 8Ch 8Dh 99h E0h F0h

Sim Sim Sim Sim No Sim No Sim Sim Sim No Sim No No No No No No No No Sim Sim

Tabela 1: SFRs e seus respectivos endereos e se so endereados por bit.

2.3
P0

Descrio dos SFRs

a entrada e sada da porta 0. Cada bit corresponde a um dos pinos do 8051. O bit 0 do registrador equivale ao pino P0.0 do 8051, e o bit 7 do registrador equivale ao pino P0.7 do 8051. Ele
Memria RAM 92298859.doc Pg 7/14

Microcontrolador 8051

Fnix Project

tanto pode ser lido, reconhecendo o valor de entrada, como escrito, sendo usado assim como sada do 8051.

P1/P2 Possuem funcionamento equivalente a P0, mas agora relativos as portas 1 e 2 respectivamente.

P3

7 P3 RD

6 WR

5 T1

4 T0

3 INT1

2 INT0

1 TxD

0 RxD

Termo

Descrio

RxD TxD INT0 INT1 T0 T1 WR RD

Bit usado para receber dados da Porta Serial Bit usado para transmitir dados da Porta Serial Bit que indica interrupo externa 0 Bit que indica interrupo externa 1 Bit que a entrada para o timer 0 Bit que a entrada para o timer 1 um sinal ativo em nvel lgico baixo que significa que o processador est escrevendo na memria externa pela porta 0. um sinal ativo em nvel lgico baixo que significa que o processador est pronto para ler da memria externa pela porta 0.

PCON Ele o Power Control SFR, e controla os modos de controle de potncia do 8051. Certos modos de operao do 8051 permitem que ele entre num estado de sono, que controlado pelo PCON. Um dos bits dele usado para duplicar a taxa de baud efetiva da porta serial do 8051. Os seus bits so:

7 PCON SMOD

3 GF1

2 GF0

1 PD

0 IDL

Figura 1: Registrador PCON.


Termo
Memria RAM

Descrio
92298859.doc Pg 8/14

Microcontrolador 8051

Fnix Project

SMOD GF1 GF0 PD IDL

Quando setado, duplica a taxa de baud na porta serial, para os modos 1, 2 e 3. Flag de propsito geral bit 1. Flag de propsito geral bit 0. Quando setado, ativa o modo de baixa potncia, de onde s sair quando for resetado. Quando setado, ativa o modo idle, de onde s sair com uma interrupo ou quando for resetado. Tabela 2: Descrio do registrador PCON.

TCON usado para modificar e configurar a forma com que os dois timers do 8051 funcionam. Possui bits de overflow para cada um dos timers e bits que indicam se os timers funcionam ou ficam parados. Tambm possui bits para configurar a forma como as interrupes externas so ativadas e bits que so os flags das interrupes externas. Cada um dos bits possui uma funo, que so descritas abaixo:

7 TCON TF1

6 TR1

5 TF0

4 TR0

3 IE1

2 IT1

1 IE0

0 IT0

Figura 2: Registrador Timer Control.


Termo Descrio

TF1 TR1 TF0 TR0 IE1

Flag de overflow do Timer 1. Timer 1 run, ou seja, quando este bit est setado o Timer 1 est ligado, seno ele est desligado. Flag de overflow do Timer 0. Timer 0 run, ou seja, quando este bit est setado o Timer 0 est ligado, seno ele est desligado. Flag de interrupo Externa 1. setado quando uma descida (do nvel alto para o nvel baixo) de sinal recebido em INT1. resetado quando o processador atende a interrupo. Flag de controle da interrupo externa. Se IT1 = 1, a interrupo Externa 1 trigada por uma descida do sinal INT1. Se IT1 = 0, a interrupo Externa 1 gerada se INT1 se encontra em nvel baixo. Flag de interrupo Externa 0. setado quando uma descida (do nvel alto para o nvel baixo) de sinal recebido em INT0. resetado quando o processador atende a interrupo. Flag de controle da interrupo externa. Se IT0 = 1, a interrupo Externa 1 trigada por uma descida do sinal INT0. Se IT0 = 0, a interrupo Externa 0 gerada se INT0 se
92298859.doc Pg 9/14

IT1

IE0

IT0
Memria RAM

Microcontrolador 8051

Fnix Project

encontra em nvel baixo. Tabela 3: Descrio do registrador Timer Control.

TMOD usado para configurar o modo de operao de cada um dos dois timers, alm de outros parmetros relativos ao seu funcionamento, descritos abaixo:

7 TMOD GATE1

6 C/T1

5 T1M1

4 T1M0

3 GATE0

2 C/T0

1 T0M1

0 T0M0

Figura 3: Registrador TMOD.


Termo Timer Descrio

GATE1 C/T1 T1M1 T1M0 GATE0 C/T0 T0M1 T0M0

1 1 1 1 0 0 0 0

Quando ativado o timer s rodar quando INT1 (P3.3) estiver ativo. Quando estiver desativado o timer funcionar independente do estado de INT1. Quando ativo o timer ir contar eventos em T1 (P3.5). Quando desativado o timer ser incrementado todo ciclo da mquina. Timer mode bit 1. Timer mode bit 0. Quando ativado o timer s rodar quando INT0 (P3.2) estiver ativo. Quando estiver desativado o timer funcionar independente do estado de INT0. Quando ativo o timer ir contar eventos em T1 (P3.4). Quando desativado o timer ser incrementado todo ciclo da mquina. Timer mode bit 1. Timer mode bit 0. Tabela 4: Descrio do registrador TMOD.

SCON Usado para configurar o comportamento da porta serial do 8051. Controla a taxa de Baud da porta serial, se a porta serial est ativa para receber dados, e possui flags que so setados quando um byte recebido ou enviado com sucesso.

7 SCON SM0

6 SM1

5 SM2

4 REN

3 TB8

2 RB8

1 TI

0 RI

Figura 4: Registrador SCON


Termo
Memria RAM

Descrio
92298859.doc Pg 10/14

Microcontrolador 8051

Fnix Project

SM0 SM1 SM2 REN TB8 RB8 TI RI

Modo da porta serial bit 0. Modo da porta serial bit 1. Modo da porta serial bit 2. Receptor ativado, deve ser setado para receber caracteres.. Bit 8 transmitido, ou seja, 9 bit transmitido nos modos 2 e 3. Bit 8 recebido, idem ao item anterior para recepo. Flag de interrupo para transmisso, setado no fim de uma transmisso de caracter. Flag de interrupo para recepo, setado no fim de uma recepo de caracter. Tabela 5: Descrio do registrador SCON

IE usado apara habilitar e desabilitar interrupes especficas. Os 6 bits menos significativos so usados para desabilitar as interrupes especficas, enquanto que o mais significativo usado para desabilitar todas as interrupes. O 6 bit no utilizado. Um bit setado habilita a/as interrupes.

7 IE EA

5 ET2

4 ES

3 ET1

2 EX1

1 ET0

0 EX0

Figura 5: Registrador Interrupt Enable


Termo Descrio

EA

Flag responsvel por habilitar todas as interrupes. Se EA = 0, todas as interrupes so desabilitadas. Se EA = 1, cada interrupo pode ser individualmente habilitada ou desabilitada em seu flag correspondente. Flag de habilitao da interrupo do Timer 2. Flag de habilitao da interrupo da USART. Flag de habilitao da interrupo do Timer 1. Flag de habilitao da interrupo Externa 1. Flag de habilitao da interrupo do Timer 0. Flag de habilitao da interrupo Externa 0. Tabela 6: Descrio do registrador Interrupt Enable.

ET2 ES ET1 EX1 ET0 EX0

IP0/IP1 Usados para especificar a prioridade de cada interrupo. No 8051, uma interrupo pode interromper outra de menor prioridade. Cada interrupo tem dois bits para determinar sua prioridade, podendo ter ento quatro nveis possveis.
Memria RAM 92298859.doc Pg 11/14

Microcontrolador 8051

Fnix Project

OBS1: Tanto no IP0 quanto no IP1 os bits dizem respeito mesma interrupo. Por exemplo o bit 0 do IP0 seta o nvel de prioridade da interrupo externa, sendo assim o bit 0 do IP1 seta a prioridade para a mesma interrupo. OBS2: IP1 no enderevel a bit. 7 IP0/IP1 6 5 4 PS 3 PT1 2 PX1 1 PT0 0 PX0

Figura 5: Registrador Interrupt Enable


Termo Descrio

PX0 PT0 PX1 PT1 PS

Flag responsvel por setar o nvel de prioridade da interrupo externa 0. Flag responsvel por setar o nvel de prioridade do timer 0. Flag responsvel por setar o nvel de prioridade da interrupo externa 1. Flag responsvel por setar o nvel de prioridade do timer 1. Flag responsvel por setar o nvel de prioridade da USART.

PSW Armazena um nmero importante de bits que so setados ou resetados pelas instrues do 8051. Contm o carry de flag, carry de flag auxiliar, flag de overflow e o flag de paridade. Alm disso, possui os flags de seleo de banco, que so usados para selecionar o banco de registradores que est atualmente ativo.

7 PSW CY

6 AC

5 F0

4 RS1

3 RS0

2 OV

1 F1

0 P

Figura 6: Registrador PSW


Termo Descrio

CY AC

Carry Flag. Setado quando a adio for maior que 0FFh ou quando a subtrao for menor que 0. Carry Flag Auxiliar. Setado a partir da adio ou subtrao, quando o nybble menos significativo afeta o valor do nybble mais significativo. Flag do usurio 0. Seleo do banco de registrador 1. Seleo do banco de registrador 0. Flag de Overflow. Setado depois de uma adio ou subtrao, quando ocorre overflow na operao. Flag do usurio 1.
92298859.doc Pg 12/14

F0 RS1 RS0 OV F1
Memria RAM

Microcontrolador 8051

Fnix Project

Flag de Paridade. Setado quando o acumulador tem um nmero mpar de bits. Tabela 7: Descrio do registrador PSW

SP o stack pointer do microcontrolador. Ele indica onde o prximo valor a ser usado pela pilha ser lido da RAM interna. Se colocarmos (push) um valor na pilha, o valor ser escrito no endereo SP +1. Ele modificado por todas as instrues que modificam a pilha. Ele inicializado com o valor 07h. Isso quer dizer que a pilha iniciar no endereo 08h e assim ir se expandindo. DPL/DPH Trabalham juntos para representar um valor de 16 bits chamado Data Pointer. Usado em operaes envolvendo RAM externa e algumas instrues envolvendo memria de cdigo. Desde que seja um nmero sem sinal, pode representar um valor de 0000h at FFFFh. TL0 o byte menos significativo do Timer 0. Seu comportamento depende de como o Timer est configurado, mas ele trabalha sempre incrementando seu valor. TL1 o byte menos significativo do Timer 1. Seu comportamento depende de como o Timer est configurado, mas ele trabalha sempre trabalha incrementando seu valor. TH0 o byte mais significativo do Timer 0. Seu comportamento depende de como o Timer est configurado, mas ele trabalha sempre incrementando seu valor. TH1 o byte mais significativo do Timer 1. Seu comportamento depende de como o Timer est configurado, mas ele trabalha sempre incrementando seu valor. SBUF Usado para enviar e receber dados pela porta serial. Serve tanto como transmissor quando escrito como receptor quando lido. ACC usado como um registrador geral para acumular resultados para um grande nmero de instrues. B usado em duas operaes: multiplicao e diviso.
Memria RAM 92298859.doc Pg 13/14

Microcontrolador 8051

Fnix Project

3. Referncias
[1] Documento de Requisitos; <Nome do arquivo do documento de requisitos, com link>; [2] Site 8052; http://www.8052.com/tutsfr.phtml [3] Livro The Microcontroller; Mackenzie, I. Scott; Terceira Edio [4] Data Sheet Siemens: Microcontroller Components; SAB 80C517/80C537 8-Bit CMOS SingleChip Microcontroller

Memria RAM

92298859.doc

Pg 14/14