MICROPROCESSADORES E MICROCONTROLADORES Parte 3 Microcontrolador 8051 José Wilson Lima Nerys Página: www.emc.ufg/~jwilson Emails: jwlnerys@gmail.com e jose_wilson_nerys@ufg.br 1 Prof. José Wilson Lima Nerys, PhD 1 Microcontrolador 8051
Expansão da Capacidade de Memória do 8051 2 Prof. José Wilson Lima Nerys, PhD 2 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). 3 Prof. José Wilson Lima Nerys, PhD 3 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. 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. CPU: 8051 A(0.. 15) D(0.. 7) RD\ WR\ MEMÓRIA A(0.. 15) D(0.. 7) RD\ WR\ 4 Prof. José Wilson Lima Nerys, PhD 4 Microcontrolador 8051
Expansão de Memória Latch 74LS573 5 Prof. José Wilson Lima Nerys, PhD 5 Microcontrolador 8051
Memória EEPROM de 8 K AT28C64 (64 K = 8 K 8 bits) 13 linhas de endereço: A 0... A 12 2 13 = 8192 (2000H) = 8 Kbytes 8 linhas de dados: I/O 0... I/O 7 WE\ Write Enable OE\ Output Enable CE\ Chip Enable 6 Prof. José Wilson Lima Nerys, PhD 6 Microcontrolador 8051
Expansão de Memória Memória EEPROM AT28C256 (64 K = 8 K 8 bits) Operação CE\ WE\ OE\ Leitura de Memória 0 1 0 Escrita de Memória 0 0 1 7 Prof. José Wilson Lima Nerys, PhD 7 Microcontrolador 8051
ALE WR\ RD\ Universidade Federal de Goiás Sistema com Memória EEPROM de 8 K CE\ 0 V I/O 0 A 0 I/O 7 A 7 Nessa montagem os pinos P2.7, P2.6 e P2.5 são irrelevantes, mas criam sombras de memória. EEPROM AT28C64 A 12 A 8 OE\ WE\ OE\ 0 V Latch LE MOV DPTR,#1000H MOVX A,@DPTR Copia no acumulador o conteúdo da posição 1000H da EEPROM externa 8 Prof. José Wilson Lima Nerys, PhD 8 Microcontrolador 8051
Sistema com Memória EEPROM de 8 K Faixa de endereços da EEPROM A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 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 Na conexão apresentada, o endereço 1000H da memória pode ser acessado de 8 maneiras diferentes (sombras de memória) 9 Prof. José Wilson Lima Nerys, PhD 9 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 A porta NAND de 3 entradas, portanto, somente apresenta saída em nível lógico baixo (0) quando todas as entradas estão em nível lógico alto (1). 1 0 0 1 1 0 1 1 E a pastilha de memória é habilitada com nível lógico baixo: CE\ = 0 1 1 0 1 1 1 1 0 10 Prof. 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 A15 A14 A13 P2.7 P2.6 P2.5 A2 A1 A0 CE\ Y EEPROM Faixa habilitada de endereços: 0000H a 1FFFH P2.7 P2.6 P2.5 0 0 0 0 0 1 P2.7 P2.6 P2.5 A2 A1 A0 CE\ Y EEPROM Faixa habilitada de endereços: 2000H a 3FFFH 0 1 0 0 1 1 1 0 0 P2.7 P2.6 P2.5 A2 A1 A0 CE\ Y EEPROM Faixa habilitada de endereços: 4000H a 5FFFH 1 0 1 1 1 0 1 1 1 P2.7 P2.6 P2.5 A2 A1 A0 CE\ Y EEPROM Faixa habilitada de endereços: E000H a FFFFH 11 Prof. José Wilson Lima Nerys, PhD 11 Microcontrolador 8051
Mapeamento de Memória do 8051 12 Prof. José Wilson Lima Nerys, PhD 12 Microcontrolador 8051
Mapeamento de Memória A Porta P0 e P2 podem ser usadas para acionar outros dispositivos, além do acesso à memória EEPROM. Para isso é necessário fazer um mapeamento de memória, de modo que cada dispositivo tenha um endereço, ou região de endereços associados a ele. Pode-se, por exemplo, compartilhar as Portas P0 e P2 para acionar um motor de passo, um conjunto de Leds e um display LCD, além da memória EEPROM. A divisão da região total de memória (64 K) pode ser feita, nesse caso, em 8 regiões de 8K, como foi feito no final da seção anterior. Um componente que pode ser usado nesse processo é o decodificador 74LS138, que contém 3 entradas de seleção e 8 saídas. 13 Prof. José Wilson Lima Nerys, PhD 13 Microcontrolador 8051
Mapeamento de Memória com o decodificador 74LS138 14 Prof. José Wilson Lima Nerys, PhD 14 Microcontrolador 8051
Mapeamento de Memória com o decodificador 74LS138 15 Prof. José Wilson Lima Nerys, PhD 15 Microcontrolador 8051
Tabela-verdade do 74LS138 16 Prof. José Wilson Lima Nerys, PhD 16 Microcontrolador 8051
Mapeamento de Memória 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. Entrada do 74138 A2 A1 A0 Saída do 74138 Região Endereço Inicial e Final Dispositivo escolhido 0 0 0 O 0 0 0000H 1FFFH EEPROM 8K 0 0 1 O 1 1 2000H 3FFFH Motor de Passo 0 1 0 O 2 2 4000H 5FFFH Display LCD 0 1 1 O 3 3 6000H 7FFFH 1 0 0 O 4 4 8000H 9FFFH 1 0 1 O 5 5 A000H BFFFH 1 1 0 O 6 6 C000H DFFFH 1 1 1 O 7 7 E000H - FFFFH 17 Prof. José Wilson Lima Nerys, PhD 17 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 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 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 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 18 Prof. José Wilson Lima Nerys, PhD 18 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 19 Prof. José Wilson Lima Nerys, PhD 19 Microcontrolador 8051
Endereço escolhido para o Display LCD: 4000H 5FFFH 20 Prof. José Wilson Lima Nerys, PhD 20 Microcontrolador 8051
Mapeamento de Memória Display LCD 4000H 5FFFH R/W A1 RS A0 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 O 2 do decodificador 74138. 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 21 Prof. José Wilson Lima Nerys, PhD 21 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 Sentido de deslocamento do cursor ao entrar com caractere Deslocamento da mensagem ao entrar com caractere Deslocamento da mensagem sem entrada de caractere 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 Para a esquerda 0 0 04 Para a direita 0 0 06 Para a esquerda 0 0 07 Para a direita 0 0 05 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 22 Prof. José Wilson Lima Nerys, PhD 22 Microcontrolador 8051
Mapeamento de Memória Seleção do Dispositivo Habilita EEPROM Habilita Motor de Passo Habilita LCD A15 A14 A13 Dispositivo 0 0 0 EEPROM 0 0 1 Motor de Passo 0 1 0 Display LCD 23 Prof. José Wilson Lima Nerys, PhD 23 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. 24 Prof. José Wilson Lima Nerys, PhD 24 Microcontrolador 8051