Estructura de memoria de microordenador de chip único de la serie MCS-51


Prefacio

Ayer por la tarde, resolví la estructura de hardware del microordenador de un solo chip de la serie MCS-51, incluida la estructura básica del microordenador de un solo chip 51, la descripción de los pines del microordenador de un solo chip 51 y la unidad central de procesamiento (CPU ) del microordenador de un solo chip 51. Quiero clasificar la estructura de la memoria por separado. Esta parte no se ajustó ayer, pero hoy aclararé la estructura de la memoria.


1. Descripción general de la estructura general de la memoria

Relación: Generalmente, una computadora generalmente comparte un espacio de almacenamiento para programas y datos, es decir, la ROM y la RAM se direccionan uniformemente, lo que pertenece a la estructura "Von Neumann". La estructura de memoria del microordenador de un solo chip separa estrictamente el espacio de almacenamiento y el espacio de almacenamiento de datos, es decir, la memoria ROM de programa y la memoria RAM de datos se direccionan por separado, que pertenece a la estructura "Harvard".

Propósito: La
ROM de memoria de programa se utiliza para curar programas, constantes y tablas de datos.
La memoria RAM de datos se utiliza para almacenar varios datos generados durante la ejecución del programa y utilizados para la pila.

La estructura de la memoria del microordenador de un solo chip 51 se muestra en la figura:

Inserte la descripción de la imagen aquí
División del espacio de almacenamiento:
(1) La memoria de microordenador de un solo chip 51 se divide en cuatro espacios en la estructura física : memoria de programa en chip, memoria de programa fuera del chip, memoria de datos en chip y memoria de datos fuera del chip. (2) Por consideraciones lógicas , hay tres espacios de almacenamiento: espacio de direcciones de memoria de programa de 64KB (0000H ~ FFFFH), 256B de espacio de direcciones de memoria de datos en el chip (00H ~ FFH) y espacio de direcciones de memoria de datos fuera del chip (0000H ~ FFFFH ).

Instrucciones de acceso a la CPU: cuando la
CPU accede a tres espacios lógicos diferentes, utiliza diferentes formas de instrucciones para generar las señales estroboscópicas de memoria correspondientes. La memoria del programa de acceso utiliza instrucciones MOVC, accede a la memoria de datos en el chip utiliza instrucciones MOV y accede a los datos fuera del chip la memoria utiliza la instrucción MOVX.

2. Programa de memoria ROM

(1) ROM de memoria de programa 51 MCU

Se utiliza para almacenar programas, constantes o tablas compilados. Durante el trabajo normal, solo se puede leer pero no escribir, y los datos no se perderán después de un corte de energía.
(1) Memoria de solo lectura borrable eléctricamente en chip con estructura Flash de 4 KB.
(2) ROM de 64 KB expandible externamente, se recomienda no usarlo. Elija expandir la ROM externa solo cuando el programa sea particularmente grande y el espacio interno no pueda cumplir con los requisitos.
(3) La dirección del extremo más bajo de la memoria del programa puede estar en el chip Flash o en la ROM externa, y puede seleccionarse por el nivel del pin MCU / EA.
Por ejemplo: en una microcomputadora 51 de un solo chip con 4 KB de Flash en el chip, si el pin / EA está conectado a VCC, cuando la dirección es 0000H ~ 0FFFH, se accederá al Flash interno; cuando la dirección es 1000H ~ FFFFH , cambiará automáticamente a la memoria de programa externa.
Si el terminal / EA está conectado a tierra, solo se accede a la memoria del programa externa, independientemente de si hay memoria Flash interna.

(2) 51 gestión de memoria del programa MCU

(1) Cada unidad ROM (Byte) corresponde a un código de dirección único de 16 bits (Dirección)
(2) La CPU debe ir a una determinada unidad ROM para obtener instrucciones escribiendo el código de dirección en la PC del contador de programa de 16 bits. Por lo tanto, el rango de codificación (generalmente llamado rango de direccionamiento) de la dirección del microordenador de un solo chip de la serie AT89 es:

Inserte la descripción de la imagen aquí
(3) Después de reiniciar el sistema, el valor inicial de la PC es 0000H, y la CPU carga automáticamente los valores subsiguientes de acuerdo con el proceso en ejecución del programa de usuario (cuando el programa se ejecuta secuencialmente, el valor de la PC se incrementa automáticamente en 1; las instrucciones de transferencia, las llamadas de subrutina y las interrupciones se ejecutan En el programa de servicio, el valor del PC es respectivamente igual a la dirección de destino de la transferencia, la dirección de entrada de la subrutina o la rutina de servicio de interrupción)

(3) La asignación de 51 memoria de programa de microordenador de un solo chip

Algunas unidades de la memoria del programa están reservadas para su uso por el sistema. La configuración de estas unidades se muestra en la figura: Después de reiniciar el microcontrolador, el contenido del contador de programa PC es 0000H, por lo que la CPU siempre ejecuta el programa desde el Unidad 0000H.

Inserte la descripción de la imagen aquí
A partir de la dirección 0003H, el sistema asigna una dirección de entrada fija para 6 subrutinas de servicio de interrupción cada 8 unidades.
Por ejemplo, la dirección de entrada de la interrupción externa 0 es 0003H; la dirección de entrada del
temporizador 0 es 000BH; la dirección de entrada de
la interrupción externa 1 es 0013H;
la dirección de entrada del temporizador es 001B;
después de la respuesta de interrupción, el puntero de programa PC sigue automáticamente la interrupción El tipo apunta a una de estas direcciones de entrada, y la CPU ejecuta la subrutina del servicio de interrupción desde aquí.
Por lo tanto, el área que comienza desde la unidad 0003H debe reservarse para el uso de interrupciones, por lo que al programar, coloque una instrucción de transferencia en la unidad 000H ~ 0002H, omita esta área y vaya directamente al programa principal del sistema. interrupciones, el principal El programa puede cubrir esta área.

Tres, memoria de datos en chip

El rango de direcciones de la memoria de datos en el chip es 00H ~ FFH, solo 256B, aquí solo se introduce el área baja de 128 bytes y el área alta de 128 bytes está ocupada por registros de funciones especiales.
El área baja de 128 bytes se divide principalmente en tres áreas: área de grupo de registro de trabajo, área de direccionamiento de bits y área de RAM de usuario.
La estructura de la memoria de datos en chip del microcontrolador se muestra en la figura:

Inserte la descripción de la imagen aquí

(1) Área de registro de trabajo

Las 32 unidades más bajas (direcciones 00H ~ 1FH) son 4 grupos de registro de trabajo de propósito general. Cada grupo de registros contiene 8 registros de 8 bits, numerados R0 ~ R7.
Los 2 bits RS0 y RS1 en la palabra de estado del programa PSW se utilizan para determinar qué grupo de registro de trabajo se está utilizando actualmente La relación correspondiente ayer tiene un gráfico dedicado para la estructura de hardware del microordenador de un solo chip.
Solo se puede seleccionar un grupo de registros para que funcione en un momento determinado. Después de reiniciar el sistema, apunta al grupo de registros de trabajo 0. Si el programa de usuario no necesita 4 áreas de registro de trabajo, se puede usar como RAM general sin el Unidad de registro de trabajo.

(2) Área de direccionamiento de bits

La unidad 20H ~ 2FH (16B) en el área de RAM interna se puede direccionar por bits. Estas 16 unidades tienen un total de 128 bits, cada uno de los cuales puede direccionarse directamente. El rango de direcciones de bit es 00H ~ 7FH. Consulte la tabla siguiente para detalles:

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Dos modos de direccionamiento:
1. Forma de dirección de bit, a saber, 00H ~ 7FH
2. Dirección de la unidad (20H ~ 2FH). Representada por el número de bits, a saber, 20H.0 ~ 20H.7

(3) Área de RAM de usuario

Hay unidades de 80 bytes en 30H ~ 7FH, que son áreas de RAM interna direccionables por bytes, que se pueden utilizar como áreas de almacenamiento de datos para los usuarios.

Pila: un área de RAM especial para lectura / escritura de acuerdo con el principio de primero en entrar, primero en salir o último en entrar, primero en salir. El área de pila del microordenador de un solo chip 51 no es fija. En principio, se puede configurar en cualquier área de la RAM interna. En realidad, se determina de acuerdo con el uso de cada área funcional de la chip RAM, evitando el área de registro de trabajo, el área de direccionamiento de bits y el área de datos de usuario real, generalmente en el área después de la unidad de dirección 2FH.

Función de pila: se utiliza principalmente en la depuración de subprogramas o en el procesamiento de interrupciones, se utiliza para proteger los puntos de interrupción y las escenas, y realizar el procesamiento de anidamiento multinivel de subprogramas o interrupciones. También puede proteger otra información importante. También se puede utilizar como área de intercambio de datos.

Determine la posición de la pila : la posición de la parte superior de la pila es señalada por el puntero de pila especialmente configurado SP.

(4) Registro de funciones especiales

El área superior de 128 bytes de la RAM interna se utiliza para registros especiales, también denominada área de registro especial Los bits de dirección de la unidad son 80H ~ FFH. Se ha estipulado especialmente la función del registro, también conocido como registro especial o registro de función especial, denominado SFR. El número total de 51 SFR de un solo chip es 26, lo que representa una parte muy pequeña de 80H ~ 0FFH, que es la unidad de comando en el microordenador de un solo chip.
Los pestillos de E / S, temporizadores, búferes de datos de puertos serie, varios registros de control y registros de estado en las microcomputadoras de un solo chip de la serie 51 aparecen en forma de registros de funciones especiales. Se distribuyen discretamente en el rango de espacio de direcciones de 80H ~ 0FFH, como se muestra en la siguiente tabla: La
Inserte la descripción de la imagen aquí
figura enumera todos los registros de funciones especiales y sus direcciones y valores iniciales.
El método para usar SFR es el siguiente:
1) El usuario no debe usar las unidades de repuesto que no sean SFR. La lectura de estas direcciones generalmente obtendrá datos aleatorios y los datos escritos no serán válidos.

2) Se debe utilizar el direccionamiento directo para acceder al SFR, se puede utilizar el nombre del registro (es su dirección simbólica) o la dirección. Por ejemplo:
0EOH —— La dirección del
acumulador ACC —— El nombre del acumulador

3) SFR con dirección de bit y nombre de bit puede ser direccionamiento de bit. La dirección de bit tiene las siguientes 4
representaciones: ①Use directamente la dirección de bit para indicar: 0D7H —— la dirección de bit más alta de PSW ②Utilice el
nombre de bit para indicar: CY— —El nombre del bit más alto de
PSW ③Utilice la dirección de byte SFR y la forma de bit para indicar: 0D7H.7 —— dirección de byte de PSW. El bit más significativo
④Utilice el nombre SFR y la forma de bit para indicar: PSW.7 —— Nombre de PSW. Bit más significativo

Cuatro, almacenamiento de datos fuera del chip

El puerto P0 de la memoria de datos fuera del chip se utiliza como dirección / bus de datos de la RAM. Cuando el espacio de direcciones externas es menor que FFH, solo se necesita el puerto P0 como bus de direcciones y se puede utilizar el puerto P2 como un puerto de E / S general.

Cuando el espacio de direcciones externas es mayor que FFH, el puerto P2 transmite la dirección alta de 8 bits. Para acceder a la memoria de datos fuera del chip, utilice la instrucción de direccionamiento indirecto de MOVX para distinguir el acceso a la RAM interna (MOV en el chip) y generar automáticamente las señales de control de lectura / escritura RD y WR.

La RAM fuera del chip se utiliza como RAM de uso general, almacenando principalmente una gran cantidad de datos recopilados o recibidos, datos intermedios de operaciones, estructura final y datos de pila, etc.

Cinco, espacio de direcciones

(1) Estructura de bus fuera del chip

1) Bus de direcciones (AB). El ancho del bus de direcciones es de 16 bits, por lo que el rango direccionable es de 64 KB. Utilizando la tecnología de multiplexación de tiempo compartido, puede direccionar directamente la memoria de datos externa de 64 KB o la memoria de programa. Proporciona los 8 bits bajos (A0 ~ A7) del bus de direcciones de 16 bits del puerto P0 y los 8 bits altos (A8 ~ A15) del bus de direcciones del puerto P2

2) Bus de datos (DB). El ancho del bus de datos es de 8 bits, proporcionado por el puerto P0

3) Bus de control (CB). El bus de control consta de la segunda función del puerto P3 (RXD, TXD, INT0, INT1, T0, T1, RD, WR) y 4 líneas de control independientes (RST, EA, ALE, PSEN)

(2) Espacio de direcciones de la memoria del programa

La memoria del programa se direcciona mediante un contador de programa de 16 bits, con una capacidad de direccionamiento de 64 KB, lo que permite que las instrucciones salten arbitrariamente dentro del espacio de 64 KB. El rango de direcciones de 51 MCU ROM es 0000H ~ 0FFFH.
Inserte la descripción de la imagen aquí

(3) Espacio de direcciones de almacenamiento de datos

1) RAM en el chip
①Área de registro de trabajo: Las primeras 32 unidades (dirección 00H ~ 1FH) de 51 microcomputadoras de un solo chip se denominan área de registro. Programando los dos bits de RS1 y RS0 en el registro de función especial PSW, se puede seleccionar cualquier grupo de registro como grupo de registro de trabajo.
② Área de direccionamiento de bits: la dirección de bytes 20H a 2FH se denomina área de dirección de bit, un total de 16B, 128 bits en total, cada uno tiene una dirección de bit correspondiente, el rango de dirección de bit es 00H ~ 7FH.
③ Área de memo j (ian): 30H ~ 7FH, hay 80 unidades de RAM en el área de memo, que se utilizan para almacenar datos de usuario o como área de pila. El microordenador de un solo chip 51 accede a cada unidad de RAM en el área de notas por byte.
④Registros de funciones especiales (26): En 51 RAM de 128B de un solo chip, hay 26 registros de funciones especiales (SFR), que se distribuyen discretamente en el espacio de RAM de 80H ~ FFH. Solo el direccionamiento directo puede acceder a registros de funciones especiales. Los registros de funciones especiales se muestran en la siguiente tabla:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
2)
El sistema de aplicación compuesto por el microordenador de un solo chip RAM 51 fuera del chip puede expandir la memoria de datos fuera del chip cuando la RAM en el chip no es suficiente. El microordenador de un solo chip 51 proporciona a los usuarios la capacidad de direccionar 64 KB (0000H ~ FFFFH) de expansión de RAM externa. La cantidad de expansión de RAM depende de las necesidades reales de los usuarios.


para resumir

Vaya, finalmente terminé de escribir. Esta parte del conocimiento es realmente demasiado trivial. Desde la descripción general de la estructura de la memoria, también está la ROM de memoria de programa de un solo chip 51, incluida la gestión de memoria de programa de un solo chip 51 y la Asignación de memoria de programa de un solo chip.
Y luego a la memoria de datos en el chip, el área de registro de trabajo, el área de direccionamiento de bits, el área de RAM del usuario, los registros de funciones especiales, etc.,
así como la memoria de datos fuera del chip y el espacio de direcciones. Estos conocimientos son fáciles de aprender, pero permiten lo uso después de aprenderlo, creo que todavía hay un largo camino por recorrer, pase lo que pase, solo trátalo como una memoria y búscalo si lo olvidas / (ㄒ o ㄒ) / ~~. ¡Sigue adelante!

Supongo que te gusta

Origin blog.csdn.net/qq_45252077/article/details/108943400
Recomendado
Clasificación