Registre bancos y apile la asignación de memoria en el microcontrolador 8051

Pruebe Nuestro Instrumento Para Eliminar Los Problemas





La colección de registros de propósito general (R0-R7) se denomina bancos de registros, que aceptan un byte de datos. El registro bancario es parte del Memoria RAM en el incrustado microcontroladores, y se utiliza para almacenar las instrucciones del programa. Cada microcontrolador consta de varios bancos de memoria y cada registro bancario consta de una dirección única para reconocer la ubicación de almacenamiento.

Registrar bancos en 8051

Registrar bancos en 8051

Registrar bancos en 8051



El microcontrolador 8051 consta de cuatro bancos de registro, como Bank0, Bank1, Bank2, Bank3, que son seleccionados por el registro PSW (Program Status Word). Estos bancos de registros están presentes en la memoria RAM interna del microcontrolador 8051 y se utilizan para procesar los datos cuando se programa el microcontrolador.


Cambio de bancos de registro



De forma predeterminada, el microcontrolador 8051 se enciende con el banco de registros 0 y, mediante el uso de la palabra de estado del programa (PSW), podemos cambiar a otros bancos. Los dos bits de PSW se utilizan para cambiar entre los bancos de registros. A estos dos bits se accede mediante las instrucciones direccionables por bits SETB y CLR.

Según las posibles combinaciones de RS1 y RS0 de PSW, el banco de registros se cambia en consecuencia, es decir, si RS1 y RS0 son 0, entonces se selecciona el banco 0. De manera similar, los bancos 1, 2 y 3 se seleccionan según los valores de RS1 y RS0.

Asignación de memoria de pila en el microcontrolador 8051

La pila es un área de memoria de acceso aleatorio (RAM) asignada para contener temporalmente todos los parámetros de las variables. La pila también es responsable de recordar el orden en el que se llama una función para que pueda devolverse correctamente. Siempre que se llama a la función, los parámetros y las variables locales asociadas con ella se agregan a la pila (PUSH). Cuando la función regresa, los parámetros y las variables se eliminan ('POP') de la pila. Esta es la razón por la que el tamaño de la pila de un programa cambia continuamente mientras se ejecuta.


El registro utilizado para acceder a la pila se denomina registro de puntero de pila. El puntero de pila es un pequeño registro que se utiliza para apuntar a la pila. Cuando empujamos algo en la memoria de la pila, el puntero de la pila aumenta.

Asignación de memoria de pila en el microcontrolador 8051

Asignación de memoria de pila en el microcontrolador 8051

Ejemplo

Cuando se enciende un microcontrolador 8051, el valor que contiene el puntero de la pila es 07, por defecto, como se muestra en la figura anterior. Si realizamos la operación 'PUSH', entonces la dirección del puntero de la pila aumentará y se cambiará a otro registro. Para evitar este problema, antes de iniciar el programa, debemos asignar una ubicación de dirección diferente al puntero de la pila.

Operación PUSH

El 'PUSH' se utiliza para tomar los valores de cualquier registro y almacenarlos en la dirección de inicio del puntero de la pila, es decir, 00h mediante la operación 'PUSH'. Y, para el siguiente 'PUSH', incrementa +1 y almacena el valor en la siguiente dirección del puntero de pila, es decir, 01h.

Operación PUSH de Stack

Operación PUSH de Stack

La operación PUSH significa (primero en entrar, primero en salir)

Ejemplo: WAP en lenguaje ensamblador para operación PUSH

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

Operación POP

Se utiliza para colocar los valores desde la dirección máxima del puntero de pila a la dirección de cualquier otro registro. Si usamos este 'POP' de nuevo, entonces disminuye en 1, y el valor almacenado en cualquier registro se da como 'POP'.

Operación POP en pila

Operación POP en pila

Operación POP significa 'Último en entrar, primero en salir'.

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

Registros del microcontrolador 8051

Si realizamos alguna operación, ya sea de suma o de resta, entonces estas operaciones no se pueden realizar directamente en la memoria y, por lo tanto, se realizan utilizando los registros. Hay diferentes tipos de se registra en el microcontrolador 8051 .

Estos registros se clasifican en dos tipos según su funcionamiento:

• Registros de propósito general

• Registros de funciones especiales

Registros de propósito general

Como comentamos anteriormente en este artículo, hay cuatro registros bancarios diferentes y cada banco tiene 8 registros direccionables de 8 bits, y solo se puede acceder a un registro bancario a la vez. Pero, al cambiar el número de registro bancario en el registro de bandera, podemos acceder a otros registros bancarios, que se han discutido anteriormente en este documento junto con concepto de interrupción en 8051 .

Registros de funciones especiales

Los registros de funciones especiales que incluyen el acumulador, el registro B, el puntero de datos, PCON, PSW, etc., están diseñados para un propósito predeterminado durante la fabricación con la dirección 80H a FFH, y esta área no se puede utilizar para el propósito de almacenamiento de datos o programas. Estos registros se pueden implementar mediante registros de dirección de bit y dirección de byte.

Tipos de registros de funciones especiales

El 8051 consta de cuatro registros de función especial relacionados con la entrada / salida en los que hay un total de 32 líneas de E / S. Los registros de funciones especiales controlan los valores leídos de las líneas de E / S y los registros de funciones especiales que controlan el funcionamiento del 8051. Los registros de funciones especiales auxiliares no están conectados directamente al 8051 - sino, de hecho, sin estos registros - al 8051 no puede funcionar correctamente. El conjunto de registros de 8051 se explica a continuación.

Conjunto de registro del microcontrolador 8051

Establecer un valor constante fijo en el registro se llama conjunto de registros. Los valores se establecen en los registros mediante el conjunto de instrucciones. El 8051 sigue las instrucciones de CISC con arquitectura 'Harvard'. los CISC significa computación de conjuntos de instrucciones complejos . Los diferentes tipos de instrucciones del microcontrolador 8051 incluyen:

  1. Instrucciones aritméticas
  2. Instrucciones condicionales
  3. Instrucciones de llamada y salto
  4. Instrucciones de bucle
  5. Instrucciones lógicas
  6. Instrucciones de lingotes

1. Instrucciones aritméticas

Las instrucciones aritméticas realizan varias operaciones básicas como:

  • Adición
  • Sustracción
  • Multiplicación
  • División
Instrucciones aritméticas en el microcontrolador 8051

Instrucciones aritméticas en el microcontrolador 8051

Ejemplos:

una. Adición:

Org 0000h
MOV R0, # 03H // mueve el valor 3 es el registro R0 //
MOV A, # 05H // mueve el valor 5 en el acumulador A //
Agregue A, 00H // valor del acumulador '5' con 0 y se almacena en el acumulador //
FIN

B. Sustracción:

Org 0000h
MOV R0, # 03H // mueve el valor 3 es el registro R0 //
MOV A, # 05H // mueve el valor 5 en el acumulador A //
SUBB A, 03H // A = 5-3 el valor final es 2 almacenado en el acumulador A //
FIN

C. Multiplicación:

Org 0000h
MOV R0, # 03H // mueve el valor 3 es el registro R0 //
MOV A, # 05H // mueve el valor 5 en el acumulador A //
MUL A, 03H // A = 5 * 3 El valor final es 15, almacenado en el Acumulador A //
FIN

D. División:

Org 0000h
MOV R0, # 03H // mueve el valor 3 es el registro R0 //
MOV A, # 15H // mueve el valor 5 en el acumulador A //
DIV A, 03H // A = 15/3 El valor final es 5 almacenado en el Acumulador A //
FIN

2. Instrucciones condicionales

La CPU puede ejecutar las instrucciones basándose en la condición comprobando el estado de un solo bit o el estado del byte se denomina instrucciones condicionales como:

Para comprobar el estado de un solo bit en el registro direccionable por bits

JB- salta si abajo

JNB- saltar si no está arriba

Para comprobar el estado del bit de acarreo

JC- saltar si lleva bandera

JNC-jump si no lleva

Para comprobar el estado del acumulador 0 o 1

JZ- saltar si bandera cero

JNZ- saltar si no es cero

Se trata del conjunto de registros en el microcontrolador 8051 y su asignación de memoria de pila. Esperamos que este artículo le haya brindado algunas ideas esenciales sobre el tema junto con algunos programas muy interesantes que acompañan a cada tema. También puede escribirnos para cualquier ayuda en codificar el microcontrolador y también sobre el últimos proyectos sobre microcontrolador .