Download - Aula 12 - 8051 Parte 4
-
SE
L 04
15
Prof. Dr. Marcelo A. C. Vieira
SEL 0415 INTROD. ORGANIZAO DE COMPUTADORES
Aula 12 Microcontrolador Intel 8051 Parte 4
-
Ligao de Memrias ROM e RAM Externas
SE
L 41
5
-
Gru
po d
e S
iste
mas
Dig
itais
-
Gru
po d
e S
iste
mas
Dig
itais
PINOS IMPORTANTES PARA INTERFACE COM MEMRIAS EXTERNAS
n RD [ leitura na memria de dados externa n WR [ escrita na memria de dados externa n PSEN [ leitura na memria de programa externa n P0 [ multiplexado com endereos (A0-A7) e dados (D0-D7)
n P2 [ endereos A8-A15 n ALE [ Address Latch Enable. Sinal para demultiplexar P0 n EA [ External Access Enable. Especifica o uso de memria de programa externa ou interna
Microcontrolador 80C51
-
Gru
po d
e S
iste
mas
Dig
itais
Organizao das Memrias na famlia MCS-51
Microcontrolador 80C51
At 64Kb
At 64Kb
256 ou 384 bytes
4Kb
At 60Kb
-
Gru
po d
e S
iste
mas
Dig
itais
n Os 4 KB de ROM interna podem ser usados ou no, de acordo com o estado do pino EA (External Access Enable):
se EA = 0 _ at 64 KB de memria de programa externa
se EA = 1 _ 4 KB de ROM interna e at 60 KB de programa externo
MEMRIA E PROGRAMA
Organizao da Memria na famlia MCS-51
Microcontrolador 80C51
-
Gru
po d
e S
iste
mas
Dig
itais
MEMRIA DE PROGRAMA Endereo das Memrias de Programa interna e externa
Organizao da Memria na famlia MCS-51
Microcontrolador 80C51
Se EA = 0 toda a memria de programa externa : 0000h a FFFFh
-
Gru
po d
e S
iste
mas
Dig
itais
n Externa (DADOS) expanso com at 64K RAM n Pode-se usar as memrias RAM interna e externa simultneamente
n As instrues de transferncia de dados so diferentes para a memria externa e interna
n Interna: endereamento direto n Externa: endereamento indireto (por ponteiro)
Organizao da Memria na famlia MCS-51
Microcontrolador 80C51
MEMRIA DE DADOS
-
Gru
po d
e S
iste
mas
Dig
itais
Mapeamento completo (64 Kbytes)
Mapeamento da Memria Externa de Programa
Memria de programa s pode ser lida. So sempre emitidos endereos de 16 bits c as portas P0 e P2 so sacrificadas quando se usa memria de programa externa.
-
Gru
po d
e S
iste
mas
Dig
itais
Memria de programa externa
Porta P2 8 bits mais significativos do endereo Porta P0 8 bits menos significativos do endereo + dados
1. pino ALE (address latch enable) nvel lgico 1 2. byte menos significativo endereo nos pinos da porta P0 e mais significativo
nos pinos da porta P2
3. pino ALE nvel lgico 0 (bits so gravados na memria do latch externo) 4. latch externo (ex.74373) pulso de descida bits de endereamento
armazenados na memria e presentes na sua sada
5. pino PSEN nvel lgico 0 ligado no Output Enable da memria externa 6. a instruo colocada nos pinos da porta P0
-
Gru
po d
e S
iste
mas
Dig
itais
Mapeamento completo (64 Kbytes)
Mapeamento da Memria Externa de Dados
-
Gru
po d
e S
iste
mas
Dig
itais
Memria de Dados externa Porta 2 8 bits mais significativos do endereo Porta 0 8 bits menos significativos do endereo + dados
1. pino ALE (address latch enable) nvel lgico 1 2. byte menos significativo endereo nos pinos da porta P0 e mais
significativo nos pinos da porta P2
3. pino ALE nvel lgico 0 (bits so gravados na memria do latch externo) 4. latch externo (ex.74373) pulso de descida bits de endereamento
armazenados na memria e presentes na sua sada
5. pinos RD e WR nvel lgico correspondente para operao de leitura ou escrita na memria RAM
6. o dado lido ou escrito nos pinos da porta P0
-
Memria de dados externa Portas I/O para expanso da memria
RD
WR
Ativos s se a CPU est executando instruo de leitura e escrita na memria de dados (RAM) externa
Leitura da RAM RD = 0 WR = 1 Escrita na RAM RD = 1 WR = 0 ROM externa PSEN = 0 RD = 1 WR = 1
Gerados pelos pinos da Porta 3
-
Gru
po d
e S
iste
mas
Dig
itais
Mapeamento da Memria Externa de Dados (RAM) e de Programa (ROM)
-
Operao com memria de dados externa
SE
L 41
5
-
Gru
po d
e S
iste
mas
Dig
itais
Memria de dados externa
(RAM)
Espao de endereos de at 64 Kbytes Espao todo indiretamente enderevel pelo ponteiro de dados DPTR (Data Pointer)
Pode ser endereado partes da memria (pginas de 256 bytes) utilizando ponteiro de 8 bits (R0 ou R1)
Instrues (usa-se o MOVX) MOVX A, @DPTR MOVX A, @R0
MOVX @DPTR, A MOVX @R0, A
Acesso atravs de ponteiro de 8 bits ou 16 bits
-
Gru
po d
e S
iste
mas
Dig
itais
Memria de dados externa
(RAM)
a. Armazenar 3Fh na posio 34CBh da memria externa :
MOV DPTR,#34CBH
MOV A,#3FH
MOVX @DPTR,A
b. Ler o contedo da posio 13F4h da memria externa :
MOV DPTR,#13F4H
MOVX A,@DPTR
EXEMPLO:
Acesso atravs de endereo de 16 bits
-
Gru
po d
e S
iste
mas
Dig
itais
Memria de dados externa
(RAM)
EXEMPLO:
Acesso atravs de endereo de 8 bits
a. Armazenar 3Fh na posio 00FFh da memria externa :
MOV R0,#FFH
MOV A,#3FH
MOVX @R0,A
b. Ler o contedo da posio 0013h da memria externa :
MOV R1,#13H
MOVX A,@R1
-
Gru
po d
e S
iste
mas
Dig
itais
Mapeamento da Memria Externa de Dados
Paginao de memria
Deve-se notar o uso de dois bits da porta P3 (RD e WR) Se a memria RAM externa menor que 64Kb a porta P2 (com endereos mais significativos) NO totalmente sacrificada somente so usados os bits necessrios para emitir os endereos.
Ex.: RAM externa de 2 KB
8 bits de P0 (menos significativos)
3 bits de P2 _ sobram 5 pinos da porta P2
2 bits de P3 (controle)
Os bits da Porta P2 podem ser utilizados para paginao de n memrias de 256 bytes (8 bits de endereamento menos significativo Porta P0)
-
Gru
po d
e S
iste
mas
Dig
itais
Paginao de Memria
Pgina P2.2 P2.1 P2.0 0 1 2 3 4 5 6 7
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
256
256 CS7
CS0 CS1
P2.0
P2.1
P2.2
Decodi-ficador
Um esquema que pode ser utilizado para acessar mais de 256 bytes externos
dividir a RAM externa em pginas de 256 bytes cada, por exemplo, utilizando a
Porta P2
Bits de pgina
-
Gru
po d
e S
iste
mas
Dig
itais
Paginao de Memria Bits de pgina
Para ler um byte nesta configurao: MOV R0,#end.byte MOV P2, #end.pgina MOVX A,@R0
Para escrever um byte nesta config.: MOV R0,#end.byte MOV P2,#end.pgina MOVX @R0,A
-
Gru
po d
e S
iste
mas
Dig
itais
Paginao de memria Bits de pgina
Escrever 3Fh no endereo 00h da pgina 0:
MOV R0,#00H ; endereo 00h em R0
MOV A,#3FH ; dado 3Fh no acumulador
MOV P2,#00H ; pgina 0
MOVX @R0,A ; escreve no end. 00h da pgina 0 3Fh
Ler o contedo do endereo 0FFh da pgina 5 :
MOV R1,#0FFH ; endereo 0FFh em R1
MOV P2,#05H ; pgina 5
MOVX A,@R1 ; armazena no acumulador o contedo do end. 0FFh da pgina 5
EXEMPLO:
-
Gru
po d
e S
iste
mas
Dig
itais
FIM