Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Microcontrolador 8051, Notas de estudo de Engenharia Informática

Mini-curso Microcontrolador 8051

Tipologia: Notas de estudo

2012

Compartilhado em 11/07/2012

thiago-nunes-65
thiago-nunes-65 🇧🇷

3.5

(2)

19 documentos

1 / 88

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Microcontrolador 8051 – Hardware
C
urso Completo – Hardware – Software - Interfaceamento
1INTRODUÇÃO
Na Década de 70 começaram a ser utilizados microprocessadores em
microcomputadores para uma maior eficiência no processamento de dados. O
microprocessador Intel foi um dos precursores e, a partir daí, houve uma preocupação
em melhorar cada vez mais o sistema de processamento de dados através desses
componentes. Baseado na arquitetura de um microprocessador e seus periféricos, foi
criado um componente que (fisicamente em uma unidade) comportasse todo um sistema
que equivalesse a um microprocessador e seus periféricos; assim surgiu o
microcontrolador.
1.1Unidade Central de Processamento (CPU)
A unidade central de processamento controla todas as funções realizadas pelo
sistema. A CPU de qualquer sistema de computador contém os seguintes grupos de
unidades
Funcionais:
Registradores e contadores
Os registradores e contadores são unidades funcionais usadas para
armazenamento temporário de bits dentro da CPU.
Unidade lógica e aritmética
A unidade lógica e aritmética é a unidade funcional da CPU que executa
operações lógicas e aritméticas entre palavras binárias, gerando uma outra palavra na
saída.
Unidade de controle e sincronização
A unidade de controle e sincronização coordena e controla todas as unidades
funcionais em uma seqüência lógica e sincronizada.
1.2Processamento
O processador ou unidade central de processamento (CPU) é a parte do sistema
que faz o processamento das informações para que as instruções sejam executadas; as
instruções devem estar armazenadas na memória de programa em seqüência, formando
assim o programa.
A CPU possui um registrador chamado de CONTADOR DE PROGRAMA (PC)
que contém o endereço da próxima instrução que deve ser executada. Toda vez que uma
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58

Pré-visualização parcial do texto

Baixe Microcontrolador 8051 e outras Notas de estudo em PDF para Engenharia Informática, somente na Docsity!

Microcontrolador 8051 – Hardware C

urso Completo – Hardware – Software - Interfaceamento

1INTRODUÇÃO

Na Década de 70 começaram a ser utilizados microprocessadores em microcomputadores para uma maior eficiência no processamento de dados. O microprocessador Intel foi um dos precursores e, a partir daí, houve uma preocupação em melhorar cada vez mais o sistema de processamento de dados através desses componentes. Baseado na arquitetura de um microprocessador e seus periféricos, foi criado um componente que (fisicamente em uma unidade) comportasse todo um sistema que equivalesse a um microprocessador e seus periféricos; assim surgiu o microcontrolador.

1.1Unidade Central de Processamento (CPU)

A unidade central de processamento controla todas as funções realizadas pelo sistema. A CPU de qualquer sistema de computador contém os seguintes grupos de unidades

Funcionais:

  • Registradores e contadores

Os registradores e contadores são unidades funcionais usadas para armazenamento temporário de bits dentro da CPU.

  • Unidade lógica e aritmética

A unidade lógica e aritmética é a unidade funcional da CPU que executa operações lógicas e aritméticas entre palavras binárias, gerando uma outra palavra na saída.

  • Unidade de controle e sincronização

A unidade de controle e sincronização coordena e controla todas as unidades funcionais em uma seqüência lógica e sincronizada.

1.2Processamento

O processador ou unidade central de processamento (CPU) é a parte do sistema que faz o processamento das informações para que as instruções sejam executadas; as instruções devem estar armazenadas na memória de programa em seqüência, formando assim o programa.

A CPU possui um registrador chamado de CONTADOR DE PROGRAMA (PC) que contém o endereço da próxima instrução que deve ser executada. Toda vez que uma

instrução é retirada da memória pela unidade central de processamento, automaticamente o contador de programa é incrementado para que, após o processamento desta instrução, quando a CPU for buscar a próxima instrução, basta usar o endereço contido no contador de programa.

Toda vez que a CPU é ligada ou resetada, automaticamente o seu contador de programa é zerado, desta forma, a primeira tarefa que a CPU irá realizar é a execução da instrução contida na posição de memória de endereço “0000”. Cada instrução possui duas fases distintas: o ciclo de busca e o ciclo de execução. Durante o ciclo de uma instrução a CPU faz com que o conteúdo do contador de programa seja colocado no barramento de endereços, endereçando, desta maneira, a posição de memória que contém a instrução que deve ser executada.

1.3Unidades de Entrada e Saída (I/O)

As unidades de entrada/saída são os meios pelos quais o usuário se comunica com o sistema. Essas unidades possuem interfaces que permitem a conexão com dispositivos chamados de periféricos, tais como teclado, LCDs, etc.

1.4Arquitetura

A performance do microcontrolador depende da sua arquitetura interna, ou seja, do modo em que o microcontrolador foi projetado tanto para o hardware como para software. No hardware apresentaremos a arquitetura Von-Neumann, na qual se refere o software CISC.

  • Arquitetura Von-Neumann

Na arquitetura Von-Neumann, os barramentos de dados e endereços são compartilhados entre memórias de programas e memórias de dados na comunicação com a CPU. Nesse tipo de arquitetura, quando a CPU está acessando a memória de programa não pode acessar a memória de dados, porque usa os mesmos barramentos para as duas memórias.

  • CISC (Complex Instruction Set Computer)

CISC: Computador com Set de Instrução mais Complexo, quanto maior a complexidade da instrução que deve ser executada, mais espaço ela ocupa no chip. Desse modo, chegará um momento que passaremos e ter um set de instruções tão grande que começará a afetar o desempenho, dificultando a possibilidade de implementar outras funções importantes. Ter um complexo (grande) set de instruções “CISC” nem sempre é interessante para um bom desempenho do processador.

Numa análise feita pelo laboratório da IBM sobre como estavam sendo usados os diversos tipos de instruções, concluíram que num microprocessador que usava um set de instruções de, por exemplo, 200 instruções, a maior parte do processamento era feita apenas com umas 10 instruções.

Uma grande parte das instruções era pouco usada, às vezes até uma única vez em um longo programa, de modo que elas poderiam ser implementadas pelas instruções básicas mais usadas.

-Estáticas: memórias estáticas são aquelas nas quais as informações permanecem armazenadas enquanto não houver escrita ou não faltar energia.

-Dinâmicas: memórias dinâmicas são memórias que perdem informações armazenadas mesmo com alimentação. Na RAM dinâmica (ou DRAM) isso acontece porque cada célula tem um transistor MOSFET e um capacitor que armazena um dado (1 bit).

1.5.5Tipos de Memórias

Veremos a seguir, alguns tipos de memórias existentes no mercado e que são muito utilizadas:

  • Memórias RAM (Random Access Memory)

Essas memórias são de acesso aleatório, que podem ser acessadas a qualquer momento e em qualquer endereço. Elas podem ser estáticas ou dinâmicas e também podem ser gravadas pelo sistema com a tensão de 5v. São memórias consideradas voláteis.

  • Memórias ROM (Read Only Memory)

Essas memórias são utilizadas somente para a leitura.

  • Memórias PROM (programable Read Only Memory)

Essas memórias são utilizadas no sistema somente para leitura; geralmente usadas como memórias de programa, só podem ser gravadas com gravadores específicos e só uma vez. São a memórias não Voláteis.

  • Memórias EPROM( Erasable Programmable Read Only Memory)

Essas memórias são utilizadas no sistema somente para leitura, também empregadas como memórias de programa e só podem ser gravadas com gravadores específicos. Podem ser apagadas por raios ultravioleta e regravadas por muitas vezes. São chamadas memórias não voláteis.

  • Memórias EEPROM ou E2PROM (Electrically Erasable Programmable Read Only Memory)

Essas memórias podem ser usadas no sistema tanto para leitura como para escrita. Podem ser gravadas com programadores ou pelo sistema; são apagadas eletricamente e regravadas por muitas vezes; são consideradas memórias não voláteis.

  • Memórias PEROM (programable Read Only Memory)

Uma linha de memórias programáveis apenas para leitura, de 3v e 5v, apenas dentro do sistema. Fabricadas com avançada tecnologia CMOS, não voláteis, suas características incluem:

-Operação de leitura e programação em apenas 3v e 5v;

-Proteção de dados de software e hardware;

-Operação de programação por setor

-1000 ciclos de programa;

-Retenção de dados de 10 anos;

-Baixa dissipação de potência;

-Tempo de ciclo de programa rápido;

-Detecção de fim de programa.

  • Memórias FLASH

A memória FLASH é um dispositivo de armazenamento confiável, não volátil, de boa relação custo/benefício e que possui características de leitura da EPROM, EEPROM e SRAM, porém quando se aplica 12v sobre o dispositivo, este pode ser gravado com base em bytes. No caso da memória FLASH – 5v estes dispositivos foram projetados para serem programados dentro do sistema com fornecimento padrão de 5V. Em programadores de EPROM convencionais não há necessidade de 12vpp, nem para programação, nem para apagamento. É composta de uma arquitetura de apagamento de setor (qualquer combinação pode ser apagada simultaneamente) e 100.000 ciclos de apagamento/programação.

  • Memória FLASHFILE

A memória FLASHFILE, simetricamente bloqueada, da intel, oferece uma solução não volátil com leitura e programação de mais alta densidade para armazenamento em massa. O armazenamento de aplicação de software e a operação com código de sistema em RFAs (Residential Flash Arrays) proporcionam execução instantânea , rápida e local (in Place). RFAs são protegidas também contra envelhecimento do software, já que este pode ser atualizado no sistema. O software RFA prolonga a vida da bateria e aumenta a confiabilidade do sistema através da redução do número de acessos ao disk-drive. 100.000 ciclos de apagamento/ programação.

  • Memórias Seriais

Estes dispositivos são de tamanho reduzido podendo ser ligados a um barramento serial I2C (Inter-Integrated Circuit Bus) ou SPI (Serial Peripheral Interface) junto com outros dispositivos seriais, com muitas vantagens em relação às memórias paralelas.

  • 128 bytes de RAM interna, destinada a dados;
  • 64 Kbytes endereçáveis de memória externa, de programa ou dados;
  • 2 temporizadores/contadores de 16 bits cada um;
  • Porta serial (UART) full-duplex, para comunicação com outro processador;
  • 5 estruturas (fontes) de solicitação de interrupção, com 2 níveis de prioridade;
  • Oscilador de clock interno;
  • Freqüência de clock entre 1,2 MHz e 12 MHz.

Figura 2.1 – Diagrama de blocos do 8051.

O 8051 é um microcontrolador de 8 bits, pois tanto a ROM, RAM, ULA e via de dados manipulam informação de 8 bits. O seu conjunto de instruções é formado por 111 instruções, onde se incluem as de transferência de dados, aritmética, lógica, desvio de fluxo de programa e booleanas. Estas são instruções de manipulação de variáveis de um bit do 8051 (lógica de bit único).

Figura 2.2 - Diagrama de blocos detalhado do 8051.

2.3Principais Vantagens do Microcontrolador 8051

  • Popular: prontamente disponível e amplo suporte. Gama completa de produtos de suporte estão disponíveis de graça e comercialmente, proporcionando economia real em termos de ferramentas de treinamento e suporte para software.
  • Rápido e eficaz: a arquitetura se correlaciona de perto com o problema sendo solucionado (sistemas de controle). Instruções especializadas significam que menos bytes precisam ser buscados e menos jumps condicionais são processados.
  • Baixo custo: alto nível de integração do sistema em um único componente. Poucos componentes a mais são necessários para se criar um sistema que funcione.
  • Compatibilidade: opcodes e código binário são os mesmos para todas as variações do 8051, diferente de outras famílias de microcontroladores.

resulta na necessidade de se executar rotinas complexas, mesmo para valores tipo inteiro. Isto torna os programas lentos e grandes. Pode-se dizer que o Basic, no contexto de sistemas dedicados, deve ser indicado para aplicações onde a facilidade de programação seja mais importante que a eficiência ou velocidade.

3ORGANIZAÇÃO DE MEMÓRIA EM DISPOSITIVOS MCS – 51

3.1Separação Lógica de Memória de Programa e de

Dados

Toda a família MCS-51 possui espaços de endereçamento separados para programas e dados, isto é, uma memória de programa e uma memória de dados com endereços independentes (configuração Harvard). Essa separação permite que a memória de dados seja acessada por endereços de 8 bits, que podem ser mais rapidamente manipulados pela CPU, também de 8 bits. Entretanto, endereços de 16 bits também podem ser utilizados para a memória de dados, podendo ser gerados através do registrador DPTR ( Data Pointer Register ).

O preço a pagar pela facilidade de manipulação dos endereços, dada pela separação lógica das memórias, é o de um aumento de complexidade no conjunto de instruções; historicamente, esta separação presente na maioria dos dispositivos INTEL foi a responsável pela criação da arquitetura CISC, que vem há tempos sendo superada pela maior elegância de soluções apresentada pela arquitetura RISC, que já está sendo utilizada até pela própria INTEL nos seus dispositivos mais recentes.

3.2Memória de Programa

A memória de programa é composta por duas áreas distintas: 4KB de ROM interna e até mais 60KB externos. Entretanto, pode-se inibir os 4KB de ROM internos através do pino 31 (EA - External Access ), ficando a memória externa com todo o espaço de endereçamento. A memória de programa pode ser apenas lida, não escrita. Existem até 64K de memória de programa acessáveis, sendo que os primeiros 4K são disponíveis internamente no 8051, e selecionáveis através do sinal EA.

Os primeiros 4 Kbytes da memória de programas podem ser endereçados interna ou externamente. Se o pino EA estiver em nível alto, esses bytes são acessados no chip. Levando o pino EA a nível baixo, o acesso a tais bytes é feito na memória externa, como mostrado na figura 3.

A Figura 3.2 mostra a configuração de hardware para a execução de programas externos; nesta configuração, duas das 4 portas de E/S disponíveis (Portas 0 e 2) são utilizadas com função de barramento de endereço/dados, ou seja, essas 16 linhas de E/S são dedicadas para desempenhar função de bus durante buscas na memória de programas. Isto se deve ao fato de que os endereços da memória de programa são sempre de 16 bits, mesmo que o tamanho real desta seja menor que 64K bytes.

A porta 0 emite o byte menos significativo do contador de programas (PCL). Nesse momento o sinal ALE ( Address Latch Enable ) funciona como clock para o latch, armazenando o PCL. As linhas da Porta 0 entram em estado de alta impedância. Enquanto isso, a porta 2 emite o byte mais significativo do contador de programas (PCH). O latch e a porta 2 formam portanto o endereço necessário ao acesso da ROM externa. O dispositivo emite o sinal PSEN ( Program Store Enable ) para ler a memória de programa externa. Este sinal, em nível baixo, habilita a ROM à leitura. A porta 0 entra no modo entrada e a instrução da ROM do endereço correspondente é enviada a essa porta.

o ciclo de busca gera os sinais de controle necessários para acessar a memória de programa externa.

Certas posições na memória de programa estão reservadas para situações específicas. Uma destas situações é a condição de “reset”, que força o fluxo de execução para o endereço 0000H. Normalmente, usa-se as três primeiras posições para efetuar o desvio para a rotina de inicialização.

A seguir, estão alocadas as posições alvos de interrupções, ou seja, os endereços de 0003H a 0023H são reservados para cinco rotinas de tratamento de interrupção. Em cada uma dessas posições, deve-se armazenar a sub-rotina que atende à respectiva interrupção quando requisitada por um dispositivo. O espaçamento entre essas posições fixas é de 8 bytes. Na maioria das aplicações de controle, essas rotinas cabem inteiramente nesse intervalo, de outra forma faz-se necessário um jump nessas posições. A figura 3.3 mostra um mapa da parte inferior da memória de programa dos dispositivos MCS-51, com a localização dos vetores de interrupção. Após o reset, a CPU inicia a execução da posição 0000H.

Figura 3.3 – Mapa da parte inferior da memória de programa.

3.3Memória de Dados

A memória de dados ocupa, como já foi dito, um espaço de endereçamento separado da memória de programa, e até 64K bytes de RAM externa podem ser acessados neste espaço. Os 64 Kbytes de memória de dados externa são acessados pelo dispositivo através dos sinais RD/WR. Os sinais PSEN e RD podem ser injetados na entrada de uma porta AND e a saída dessa porta utilizada como sinal de requisição de leitura a uma memória externa de dados e programas convencional.

A memória de dados, como mostra a figura 3.4, é composta por uma área interna formada por 128 bytes, mais os registros de função especial, e por até 64Kb de memória externa.

Figura 3.4: Composição da memória de dados do 8051

De outra forma, pode-se visualizar a memória do 8051 como sendo parte interna e parte externa. A memória interna é constituída pelos 4 Kb de ROM, pelos 128 bytes de RAM e pelos registros da CPU. Já a memória externa é formada por até 60 Kb (ou até 64 Kb, caso o pino EA seja aterrado) de memória de programa, e por até 64 Kb de memória de dados. Caso o espaço de memória interna seja suficiente para determinada aplicação, o sistema pode trabalhar sem a memória externa.

Os 64 Kb de memória externa de dados são acessados automaticamente quando a instrução MOVX (Move eXternal) for executada. Já os 128 bytes da RAM interna podem ser acessados por diferentes instruções, através de endereçamento direto ou indireto. Esta RAM interna pode ser subdividida em três segmentos que são:

  1. Banco de Registros : são quatro bancos de registros, numerados de 0 a 3, ocupando as posições de 0 até 1FH (32 bytes no total). Cada banco contém oito registros de um byte cada, numerados de 0 a 7. Por “default” o banco corrente é o 0, entretanto pode-se selecioná-lo por software, através de dois flags, RS0 e RS1, que fazem parte do registrador PSW, conforme a tabela 3.1.

Tabela 3.1 - Mapeamento dos bancos de registros BANCO RS1 RS0 REGISTRADORES POSIÇÃO DE MEMÓRIA 3 1 1 R7,R6,.. .,R0 1FH,1EH,.. .,18H 2 1 0 R7,R6,.. .,R0 17H,16H,.. .,10H 1 0 1 R7,R6,.. .,R0 0FH,0EH,.. .,08H 0 0 0 R7,R6,.. .,R0 07H,06H,.. .,00H

  1. Área de bits Endereçáveis : este segmento é composto por 16 bytes, ocupando as posições de 20H a 2FH. Pode-se acessar os dados contidos neste segmento de duas formas: individualmente cada um dos 128 bits do segmento; ou em grupos de 8 bits, ou seja, byte a byte. A CPU dispõe de instruções específicas para o manuseio de bits, onde se designa diretamente o endereço do bit desejado.

Figura 3.6 – Mapa da memória de dados interna.

Os 16 bytes acima do banco de registradores formam o espaço de bits endereçáveis. O conjunto de instruções do 8051 inclui uma grande quantidade de instruções de um único bit, e os 128 bits dessa área podem ser acessados por essas instruções. O bloco 128-Inferior ocupa o intervalo de endereços de 00H até 7FH, e seu mapeamento é visto na Figura 3.7.

Figura 3.7 – Mapeamento do bloco 128-Inferior.

Os bancos são selecionáveis pelas instruções através de dois bits do registrador PSW. Os próximos 16 bytes acima dos bancos de registradores formam um espaço de

memória endereçável-por-bit. Todos os bytes no 128-inferior podem ser acessados por endereçamento direto ou indireto; já o 128-Superior só pode ser acessado por endereçamento indireto, e ficam disponíveis como pilha nos dispositivos com 256 bytes de RAM. Mas o bloco 128-Superior não está implementado no 8051.

Figura 3.8 – Estrutura simplificada do espaço SFR.

A Figura 3.8 mostra a estrutura simplificada do espaço SFR; este inclui buffers (latches) de E/S, temporizadores, controles de periféricos, etc. Tais registradores só podem ser acessados por endereçamento direto, sendo que 16 endereços são simultaneamente endereçados-por-bit e endereçados-por-byte. O bloco SFR ocupa o espaço de endereçamento 80H a FFH. Tais registradores podem ser acessados exclusivamente por acesso direto.

Todos os membros da família 8051 executam o mesmo conjunto de instruções classificadas como: aritméticas, lógicas, transferência de controle, transferência de dados e booleanas. Dispõem de uma variedade de modos de endereçamento à RAM interna. Suporte a variáveis de um bit também é disponível, permitindo manipulação direta em sistemas de controle e lógica que requerem processamento booleano.

3.4Descrição dos Registros de Função Especial

Os registros mapeados em memória incluem os latches das portas de E/S, temporizadores/contadores, canal serial, registros ligados à unidade de lógica e aritmética (ULA), registros apontadores, registros usados no sistema de interrupção, além de outros registros de função especial. É importante ressaltar que, com exceção do contador de programa, todos os outros registros são mapeados em memória interna de dados.

O 8051 possui 20 SFRs de 8 bits cada, mapeados em memória interna, e um contador de programa (PC) de 16 bits. Na tabela 3.2 estão relacionados os 20 SFRs com

O bit de Carry, além de sua função tradicional em operações aritméticas, também tem função de “acumulador” em algumas operações booleanas.

Figura 3.9 – Flags do registrador PSW.

  • Apontador de Pilha (SP) : como o próprio nome sugere, é o registro que aponta para o topo da pilha. É manipulado pelas instruções de chamada e retorno de sub-rotinas, além de instruções específicas para inserção ou retirada de dados da pilha. Por conter apenas 8 bits, este registro endereça apenas a memória RAM interna. Desta forma, a pilha do sistema fica limitada a esta área.
  • Apontador de Dados (DPTR) : é usado basicamente para endereçar conteúdos dentro de uma memória externa (de dados ou programa), através da instrução MOVX. Pode ser dividido em dois registros de 8 bits (DPL e DPH).
  • Portas - P0, P1, P2 e P3 : são 4 registros usados para realizar as operações de E/ S, compondo 32 linhas de interface com o mundo exterior.
  • Controle de Prioridade de Interrupção (IP) : contém os bits de controle que indicam a prioridade das interrupções.
  • Controle de Habilitação de Interrupção ( IE ) : este registro controla as máscaras de habilitação global de interrupções e de cada interrupção em particular.
  • Registros TCON e TMOD : são registros usados para programar os temporizadores/contadores (T/C).
  • Registros TH1, TL1, TH0 e TL0 : são os registros de dados dos T/C’s. Estes 4 registros podem ser lidos ou escritos, facilitando o acesso aos T/C.
  • Registro de Controle da Serial (SCON) : serve para selecionar o modo de operação da interface serial.
  • Buffers” de dados da porta serial (SBUF) : são dois registros mapeados no mesmo endereço, entretanto um é de leitura (recepção de dados) e o outro é de escrita (transmissão de dados).

3.5Modos de Endereçamento

Para acessar um dado ou operando, as instruções dos microcontroladores MCS-51 contam com seis modos de endereçamento:

  • Endereçamento Direto
  • Endereçamento Indireto
  • Instruções de Registradores
  • Instruções de Registradores Específicos
  • Endereçamento Imediato
  • Endereçamento Indexado
  • Endereçamento Direto: nesse modo, o endereço do operando é especificado por um campo de 8 bits na instrução. Somente a RAM de dados interna e a região SFR podem ser diretamente endereçadas.
  • Endereçamento Indireto: a instrução especifica um registrador que contém o endereço do operando. Ambas as RAM's, externa e interna, podem ser indiretamente acessadas. Se tal endereço possui 8 bits, seu valor é armazenado em R0 ou R1 do respectivo banco selecionado, ou no Stack Pointer. Por outro lado, se tal endereço possui 16 bits, seu valor é armazenado no registrador DPTR.
  • (^) Endereçamento Direto por Registradores: é realizado por instruções de registradores, que são instruções que carregam uma especificação de 3 bits em seu opcode, com referência ao registrador a ser utilizado, podendo acessar registradores de R0 a R7 dos bancos de registradores. Instruções deste tipo são mais eficientes em termos de código, uma vez que eliminam um byte de endereço. Quando uma instrução desse tipo é executada, um dos quatro bancos de registradores é selecionado pelos bits de seleção de banco, RS0 e RS1, do PSW.
  • Endereçamento Inerente ou por Registrador Específico: algumas instruções são específicas a certos registradores. O próprio opcode é capaz de realizar tal tarefa. As instruções de Registradores específicos nada mais são do que aquelas que operam sempre num registrador em especial , como no acumulador, DPTR, etc. Ou seja, não é necessário um byte de endereçamento específico para apontar qual o registrador.
  • Endereçamento Imediato: quando uma constante (o próprio dado) segue o opcode.
  • Endereçamento Indexado: somente a memória de programa, cuja única operação é leitura, pode ser acessada por esse modo, usado para fazer leituras de tabelas nessa memória. Um registrador de 16 bits (DPTR ou PC) aponta para o início da tabela, enquanto o acumulador é ajustado para a n-ésima posição da mesma.