Registre bancos e pilha de alocação de memória no microcontrolador 8051

Experimente Nosso Instrumento Para Eliminar Problemas





A coleção de registradores de uso geral (R0-R7) é chamada de bancos de registradores, que aceitam um byte de dados. O registro do banco faz parte do Memória RAM no embutido microcontroladores e é usado para armazenar as instruções do programa. Cada microcontrolador consiste em vários bancos de memória e cada registro de banco consiste em um endereço exclusivo para reconhecer o local de armazenamento.

Registre Bancos em 8051

Registre Bancos em 8051

Registre Bancos em 8051



O microcontrolador 8051 consiste em quatro bancos de registro, como Banco0, Banco1, Banco2, Banco3, que são selecionados pelo registro PSW (Palavra de status do programa). Esses bancos de registro estão presentes na memória RAM interna do microcontrolador 8051 e são usados ​​para processar os dados quando o microcontrolador é programado.


Troca de bancos de registro



Por padrão, o microcontrolador 8051 é ligado com o banco de registro 0 e, usando a palavra de status do programa (PSW), podemos alternar para outros bancos. Os dois bits de PSW são usados ​​para alternar entre os bancos de registro. Esses dois bits são acessados ​​pelas instruções endereçáveis ​​por bit SETB e CLR.

Com base nas combinações possíveis de RS1 e RS0 de PSW, o banco de registro é alterado em conformidade, ou seja, se RS1 e RS0 são 0, então o Banco 0 é selecionado. Da mesma forma, Bank1, 2 e 3 são selecionados de acordo com os valores de RS1 e RS0.

Alocação de pilha de memória no microcontrolador 8051

A pilha é uma área de memória de acesso aleatório (RAM) alocada para conter temporariamente todos os parâmetros das variáveis. A pilha também é responsável por lembrar a ordem em que uma função é chamada para que possa ser retornada corretamente. Sempre que a função é chamada, os parâmetros e variáveis ​​locais associados a ela são adicionados à pilha (PUSH). Quando a função retorna, os parâmetros e as variáveis ​​são removidos (“POP”) da pilha. É por isso que o tamanho da pilha de um programa muda continuamente enquanto o programa está sendo executado.


O registro usado para acessar a pilha é chamado de registro de ponteiro de pilha. O ponteiro da pilha é um pequeno registro usado para apontar para a pilha. Quando colocamos algo na memória da pilha, o ponteiro da pilha aumenta.

Alocação de pilha de memória no microcontrolador 8051

Alocação de pilha de memória no microcontrolador 8051

Exemplo

Quando um microcontrolador 8051 é ligado, o valor do stack pointer contido é 07, por padrão, conforme mostrado na figura acima. Se realizarmos a operação 'PUSH', o endereço do ponteiro da pilha será aumentado e deslocado para outro registrador. Para evitar esse problema, antes de iniciar o programa, devemos atribuir uma localização de endereço diferente ao ponteiro da pilha.

Operação PUSH

O ‘PUSH’ é usado para obter os valores de qualquer registro e armazená-los no endereço inicial do ponteiro da pilha, ou seja, 00h, usando a operação ‘PUSH’. E, para o próximo 'PUSH', ele incrementa +1 e armazena o valor no próximo endereço do ponteiro da pilha, ou seja, 01h.

Operação PUSH da pilha

Operação PUSH da pilha

Meios de operação PUSH (primeiro a entrar, primeiro a sair)

Exemplo: WAP em linguagem assembly para operação PUSH

0000h
MOV 08h, # 21h
MOV 09h, # 56h
PUSH 00h
PUSH 01h
FIM

Operação POP

É usado para colocar os valores do endereço máximo do ponteiro da pilha para o endereço de qualquer outro registro. Se usarmos este 'POP' novamente, ele diminui em 1, e o valor armazenado em qualquer registro é dado como 'POP'.

Operação POP na pilha

Operação POP na pilha

Operação POP significa ‘Último a entrar, primeiro a sair’.

000H
MOV 00H, # 12H
MOV 01H, # 32H
POP 1FH
POP 0EH
FIM

Registros do microcontrolador 8051

Se realizarmos qualquer operação, seja adição ou subtração, essas operações não podem ser realizadas diretamente na memória e, portanto, são realizadas usando os registradores. Existem diferentes tipos de registra-se no microcontrolador 8051 .

Esses registros são classificados em dois tipos com base em suas operações:

• Registros de uso geral

• Registros de funções especiais

Registros de uso geral

Como discutimos anteriormente neste artigo, existem quatro registros de banco diferentes, com cada banco tendo 8 registros de 8 bits endereçáveis ​​e apenas um registro de banco pode ser acessado por vez. Mas, ao alterar o número do registro do banco no registro de bandeira, podemos acessar outros registros do banco, que foram discutidos anteriormente neste documento junto com conceito de interrupção em 8051 .

Registros de funções especiais

Os registros de função especial, incluindo o acumulador, registro B, ponteiro de dados, PCON, PSW, etc., são projetados para uma finalidade predeterminada durante a fabricação com o endereço 80H a FFH, e esta área não pode ser usada para fins de armazenamento de dados ou programa. Esses registros podem ser implementados por registros de endereço de bit e endereço de byte.

Tipos de registros de funções especiais

O 8051 consiste em quatro registros de função especial relacionados à entrada / saída, nos quais existem no total 32 linhas de E / S. Os registros de função especial controlam os valores lidos nas linhas de E / S e os registros de função especial que controlam a operação do 8051. Os registros de função especial auxiliar não estão diretamente conectados ao 8051 - mas, na verdade, sem esses registros - o 8051 não pode funcionar corretamente. O conjunto de registros de 8051 é explicado abaixo.

Registre o conjunto do microcontrolador 8051

Definir um valor constante fixo no registro é chamado de conjunto de registros. Os valores são definidos nos registros usando o conjunto de instruções. O 8051 segue as instruções CISC com arquitetura ‘Harvard’. O CISC significa computação de conjunto de instruções complexas . Diferentes tipos de instruções no microcontrolador 8051 incluem:

  1. Instruções Aritméticas
  2. Instruções Condicionais
  3. Instruções de ligação e salto
  4. Instruções de loop
  5. Instruções Lógicas
  6. Instruções de ouro

1. Instruções aritméticas

As instruções aritméticas realizam várias operações básicas, como:

  • Adição
  • Subtração
  • Multiplicação
  • Divisão
Instruções aritméticas no microcontrolador 8051

Instruções aritméticas no microcontrolador 8051

Exemplos:

uma. Adição:

Org 0000h
MOV R0, # 03H // move o valor 3 para o registro R0 //
MOV A, # 05H // move o valor 5 no acumulador A //
Adicione A, 00H // valor do acumulador ‘5’ com 0 e armazenado no acumulador //
FIM

b. Subtração:

Org 0000h
MOV R0, # 03H // move o valor 3 para o registro R0 //
MOV A, # 05H // move o valor 5 no acumulador A //
SUBB A, 03H // A = 5-3 o valor final é 2 armazenado no Acumulador A //
FIM

C. Multiplicação:

Org 0000h
MOV R0, # 03H // move o valor 3 para o registro R0 //
MOV A, # 05H // move o valor 5 no acumulador A //
MUL A, 03H // A = 5 * 3 o valor final é 15, armazenado no Acumulador A //
FIM

D. Divisão:

Org 0000h
MOV R0, # 03H // move o valor 3 para o registro R0 //
MOV A, # 15H // move o valor 5 no acumulador A //
DIV A, 03H // A = 15/3 o valor final é 5 armazenado no Acumulador A //
FIM

2. Instruções condicionais

A CPU pode executar as instruções com base na condição, verificando o status de bit único ou o status do byte é chamado de instruções condicionais, como:

Para verificar o status de bit único no registro endereçável por bit

JB- pule se estiver abaixo

JNB- pule se não estiver acima

Para verificar o status do carry

JC- jump if carry flag

JNC-jump se não carregar

Para verificar o status do acumulador 0 ou 1

JZ- jump if zero flag

JNZ- pula se não for zero

Isso é tudo sobre o registro definido no microcontrolador 8051 e sua alocação de memória de pilha. Esperamos que este artigo tenha dado a você alguns insights essenciais sobre o tópico, juntamente com alguns programas muito interessantes que acompanham cada tópico. Você também pode nos escrever para qualquer ajuda em codificando o microcontrolador e também sobre o projetos mais recentes em microcontrolador .