Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
1 Prof. José Wilson Lima Nerys, PhD 1 Microcontrolador 8051
Microprocessadores e Microcontroladores
José Wilson Lima Nerys
Página: www.emc.ufg/~jwilsonEmails: [email protected] e [email protected]
Parte 3
Microcontrolador 8051
Expansão da Capacidade de Memória e Mapeamento de Memória
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
2 Prof. José Wilson Lima Nerys, PhD 2 Microcontrolador 8051
Expansão da Capacidade deMemória do 8051
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
3 Prof. José Wilson Lima Nerys, PhD 3 Microcontrolador 8051
Expansão de Memória
Um sistema microcontrolado consiste de Hardware e Firmware. O
Firmware de sistemas experimentais de propósito geral é normalmente
um programa monitor que permite ao usuário inspecionar e modificar
atributos do sistema, tais como memória e portas [3]. O programa monitor
deveria, ainda, permitir baixar e rodar outros programas aplicativos.
Uma vez que o programa aplicativo foi plenamente desenvolvido e
testado, ele pode ser colocado numa ROM e o sistema microcontrolado
pode ser usado como um controlador embarcado (embedded controller).
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
4 Prof. José Wilson Lima Nerys, PhD 4 Microcontrolador 8051
Expansão de Memória
Um sistema microcontrolado algumas vezes tem necessidade de
memória além da disponível internamente no microcontrolador,
principalmente para o armazenamento de dados. Assim, pode-se
expandir a memória com um chip externo. O diagrama de blocos a seguir
mostra o diagrama geral de um sistema com extensão de memória.
A(0 .. 15)
D(0 .. 7)
RD\
WR\
A(0 .. 15)
D(0 .. 7)
RD\
WR\
MEMÓRIACPU: 8051
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
5 Prof. José Wilson Lima Nerys, PhD 5 Microcontrolador 8051
Expansão de Memória
Observar que as Portas P0 e P2 são utilizadas, sendo que a Porta P0
tem dupla função: transportar o byte inferior do endereço e os dados
Dados/LSB
endereço
Byte superior (MSB) do endereço
LSB do
endereço
Dados
Sinais de
controle
Sinais de
controle
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
6 Prof. José Wilson Lima Nerys, PhD 6 Microcontrolador 8051
Expansão de Memória
Latch 74LS573
O Latch é um componente
importante para separar o
endereço dos dados na Porta P0
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
7 Prof. José Wilson Lima Nerys, PhD 7 Microcontrolador 8051
13 linhas de endereço: A0 ... A12
213 = 8192 (2000H) = 8 Kbytes
8 linhas de dados: I/O0 ... I/O7
WE\ Write Enable
OE\ Output Enable
CE\ Chip Enable
Um exemplo de memória EEPROM é a AT28C64 (8 Kbtes x 8 bits),
com capacidade de memória de 8 Kbytes
Operação CE\ WE\ OE\
Leitura de Memória 0 1 0
Escrita de Memória 0 0 1
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
8 Prof. José Wilson Lima Nerys, PhD 8 Microcontrolador 8051
Microcontrolador AT89S52
ALE
WR
\
RD
\
Latch
EEPROM AT28C64
0 V
LE
A12 A8A7A0
I/O7I/O0
WE\
OE\
0 V
CE\
OE\
Sistema com Memória EEPROM de 8 K
MOV DPTR,#1000H
MOVX A,@DPTR
Copia no acumulador o conteúdo da posição 1000H
da EEPROM externa
Nessa montagem os pinos P2.7, P2.6 e P2.5
são irrelevantes, mas criam sombras de
memória.
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
9 Prof. José Wilson Lima Nerys, PhD 9 Microcontrolador 8051
Sistema com Memória EEPROM de 8 K
Faixa de endereços da EEPROM
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
0 0 0 1 0 0 0 0
0 0 1 1 0 0 0 0
0 1 0 1 0 0 0 0
0 1 1 1 0 0 0 0
1 0 0 1 0 0 0 0
1 0 1 1 0 0 0 0
1 1 0 1 0 0 0 0
1 1 1 1 0 0 0 0
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Na conexão apresentada, o endereço 1000H da memória pode ser
acessado de 8 maneiras diferentes (sombras de memória)
Pode-se definir 8
regiões diferentes de
memória usando um
circuito lógico
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
10Prof. José Wilson Lima Nerys, PhD 10 Microcontrolador 8051
Procedimento para eliminar as sombras de memória:
Utilizar um circuito habilitador da pastilha de memória a partir das
linhas de endereço A15, A14 e A13, no caso da memória de 8K
A2
A1
A0
Y
A2 A1 A0 Y
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0
A porta NAND de 3 entradas
apresenta saída em nível lógico
baixo (0) somente quando todas as
entradas estão em nível lógico alto
(1).
A pastilha de memória é habilitada
com nível lógico baixo: CE\ = 0
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
11Prof. José Wilson Lima Nerys, PhD 11 Microcontrolador 8051
Procedimento para eliminar as sombras de memória:
Utilizar um circuito habilitador da pastilha de memória a partir das
linhas de endereço A15, A14 e A13, no caso da memória de 8K
A15 A14 A13
P2.7 P2.6 P2.5
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
A2
A1
A0Y
P2.7
P2.6
P2.5
EEPROM
Faixa habilitada de
endereços:
0000H a 1FFFH
CE\
A2
A1
A0Y
P2.7
P2.6
P2.5
EEPROM
Faixa habilitada de
endereços:
2000H a 3FFFH
CE\
A2
A1
A0Y
P2.7
P2.6
P2.5
EEPROM
Faixa habilitada de
endereços:
4000H a 5FFFH
CE\
A2
A1
A0Y
P2.7
P2.6
P2.5
EEPROM
Faixa habilitada de
endereços:
E000H a FFFFH
CE\
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
12Prof. José Wilson Lima Nerys, PhD 12 Microcontrolador 8051
Mapeamento de Memória com o decodificador 74LS138
A divisão da região total de memória (64 K) pode ser feita, nesse caso, em 8
regiões de 8K, como mostrado. No entanto, não é necessário utilizar portas
NANDs isoladas.
Um componente que pode ser usado nesse processo é o decodificador
74LS138, que contém 3 entradas de seleção e 8 saídas, sendo apenas 1 delas
ativa por vez.
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
13Prof. José Wilson Lima Nerys, PhD 13 Microcontrolador 8051
Divisão em Regiões de Memória com o decodificador 74LS138
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
14Prof. José Wilson Lima Nerys, PhD 14 Microcontrolador 8051
Tabela-verdade do 74LS138
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
15Prof. José Wilson Lima Nerys, PhD 15 Microcontrolador 8051
Dividindo-se a região total de memória (64 K) em 8 regiões iguais, pode-
se utilizar 8 pastilhas de memória de 8 K.
Mapeamento de Memória
Entrada do 74138
A2 A1 A0(A15) (A14) (A13)
Saída do
74138 RegiãoEndereço Inicial e
Final
Memórias
de 8 K
0 0 0 O0 0 0000H – 1FFFH EEPROM 1
0 0 1 O1 1 2000H – 3FFFH EEPROM 2
0 1 0 O2 2 4000H – 5FFFH EEPROM 3
0 1 1 O3 3 6000H – 7FFFH EEPROM 4
1 0 0 O4 4 8000H – 9FFFH EEPROM 5
1 0 1 O5 5 A000H – BFFFH EEPROM 6
1 1 0 O6 6 C000H – DFFFH EEPROM 7
1 1 1 O7 7 E000H - FFFFH EEPROM 8
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
16Prof. José Wilson Lima Nerys, PhD 16 Microcontrolador 8051
Mapeamento deMemória do 8051
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
17Prof. José Wilson Lima Nerys, PhD 17 Microcontrolador 8051
A Porta P0 e P2 podem ser usadas para acionar outros dispositivos, além
do acesso à memória EEPROM. Para isso é necessário fazer uma
divisão da memória em regiões (mapeamento de memória), como feito
na expansão da capacidade de memória.
No entanto, ao invés de dedicar todas as regiões para pastilhas de
memória, reserva-se cada região para um componente diferente. Por
exemplo:
Região 1: Memória EEPROM
Região 2: LCD
Região 3: Motor de Passo
Região 8: Teclado
Mapeamento de Memória
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
18Prof. José Wilson Lima Nerys, PhD 18 Microcontrolador 8051
Mapeamento de Memória
A15 A14 A13 A12 A11 A10 A9 A8
0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1
0 0 1 0 0 0 0 0
0 0 1 1 1 1 1 1
0 1 0 0 0 0 0 0
0 1 0 1 1 1 1 1
A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
EEPROM Motor de Passo LCD
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
19Prof. José Wilson Lima Nerys, PhD 19 Microcontrolador 8051
Dividindo-se a região total de memória (64 K) em 8 regiões iguais, tem-se
a definição dos intervalos de cada região e os dispositivos acionados.
Mapeamento de Memória
Entrada do 74138
A2 A1 A0(A15) (A14) (A13)
Saída do
74138 RegiãoEndereço Inicial e
Final
Dispositivo
escolhido
0 0 0 O0 0 0000H – 1FFFH EEPROM 8K
0 0 1 O1 1 2000H – 3FFFH Motor de Passo
0 1 0 O2 2 4000H – 5FFFH Display LCD
0 1 1 O3 3 6000H – 7FFFH
1 0 0 O4 4 8000H – 9FFFH
1 0 1 O5 5 A000H – BFFFH
1 1 0 O6 6 C000H – DFFFH
1 1 1 O7 7 E000H - FFFFH Teclado
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
20Prof. José Wilson Lima Nerys, PhD 20 Microcontrolador 8051
Mapeamento de Memória – Motor de Passo
Endereço escolhido para o motor de passo: 2000H a 3FFFH.
Driver para o motor de passo
ULN2004 ou ULN2803 –
Transistores Darlington
Não tem um pino de habilitação
Usar Latch para permitir a
habilitação/desabilitação
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
21Prof. José Wilson Lima Nerys, PhD 21 Microcontrolador 8051
Endereço escolhido para o Display LCD: 4000H – 5FFFH
Não há necessidade Latch porque o LCD já tem um pino de habilitação (E)
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
22Prof. José Wilson Lima Nerys, PhD 22 Microcontrolador 8051
Mapeamento de Memória – Display LCD 4000H – 5FFFH
R/W
A1RS
A0
MOV A,#18H
MOV DPTR,#4000H
MOVX @DPTR,A
O conteúdo de A (18H) é interpretado pelo LCD como uma
instrução, porque foi enviado para o endereço 4000H
deslocamento para a esquerda da mensagem do display
Os bits de dados (D0 a D7) podem ser
ligados diretamente no barramento da porta
P0, mas os pinos A0(RS) e A1(RW) devem
ser conectados através de um Latch, que
acionará esses pinos conforme a tabela a
seguir.
O Enable (LCD1) é acionado pela saída O2
do decodificador 74138.
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
23Prof. José Wilson Lima Nerys, PhD 23 Microcontrolador 8051
Comandos mais comuns para o Display LCD
DESCRIÇÃO MODO RS R/W Código (Hexa)
Display Liga (sem cursor) 0 0 0C
Desliga 0 0 0A/08
Limpa Display com Home cursor 0 0 01
Controle do Cursor Liga 0 0 0E
Desliga 0 0 0C
Desloca para Esquerda 0 0 10
Desloca para Direita 0 0 14
Cursor Home 0 0 02
Cursor Piscante 0 0 0D
Cursor com Alternância 0 0 0F
Sentido de deslocamento do cursorao entrar com caractere
Para a esquerda 0 0 04
Para a direita 0 0 06
Deslocamento da mensagem aoentrar com caractere
Para a esquerda 0 0 07
Para a direita 0 0 05
Deslocamento da mensagem sementrada de caractere
Para a esquerda 0 0 18
Para a direita 0 0 1C
Endereço da primeira posição Primeira linha 0 0 80
Segunda linha 0 0 C0
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
24Prof. José Wilson Lima Nerys, PhD 24 Microcontrolador 8051
Mapeamento de Memória – Seleção do Dispositivo
A15 A14 A13 Dispositivo
0 0 0 EEPROM
0 0 1 Motor de Passo
0 1 0 Display LCD
... ... ... ...
1 1 1 Teclado
Habilita EEPROM
Habilita Motor de Passo
Habilita LCD
Habilita Techado
Universidade Federal de GoiásEscola de Engenharia Elétrica e de Computação
25Prof. José Wilson Lima Nerys, PhD 25 Microcontrolador 8051
Bibliografia
[1] Salvador P. Gimenez, “Microcontroladores 8051: Teoria do hardware
e do software/Aplicações em controle digital/Laboratório e simulação”,
Pearson Education do Brasil, São Paulo, 2002.
ISBN: 85.87918-28-1.
[2] Vidal Pereira da Silva Jr., “Aplicações Práticas do Microcontrolador
8051”, Editora Érica, São Paulo, 1994.
ISBN: 85-7194-194-7
[3] Sencer Yeralan, Ashutosh Ahluwalia, “Programming and Interfacing the
8051 Microcontroller”, Addison-Wesley Publishing Company, 1995.
ISBN: 0-201-63365-5.