Análisis de la estructura de memoria del microcontrolador at89s52
1. Memoria de programa
El programa escrito por el diseñador se almacena en la memoria de programa del microprocesador.
at89s52 tiene un espacio de direccionamiento de memoria de programa de 64 kb, que se utiliza para almacenar programas de usuario, datos, tablas y otra información. La estructura de la memoria del programa se muestra en la Figura 1.
Figura 1 La estructura de la memoria del programa at89s52
La memoria del programa dentro y fuera del chip at89s52 está en un espacio lógico unificado, con direcciones que van desde 0000h a ffffh, con un rango máximo de 64k bytes. Cuando el pin está conectado a un nivel alto, el programa comienza a ejecutarse desde la memoria del programa en el chip 0000h, es decir, accede a la memoria en el chip. Cuando el valor de la PC excede la capacidad de la ROM en el chip, automáticamente pasará al espacio de memoria del programa fuera del chip para su ejecución. Cuando el pin está conectado a un nivel bajo, el sistema se ve obligado a ejecutar todos los programas almacenados a partir de las 0000 h en la memoria de programas fuera del chip.
2. Memoria de datos
El at89s52 tiene 256 bytes de memoria de datos en el chip. La dirección es 00h~ffh. Estas 256 unidades se dividen en dos partes. Una es que la dirección de la unidad 00h~7fh (***128 bytes) es la memoria RAM de datos del usuario. Las unidades de dirección de 80h a ffh (también 128 bytes) son unidades de registro especial (sfr). Los 128 bytes superiores se superponen con los registros de funciones especiales, lo que significa que los 128 bytes superiores tienen la misma dirección que los registros de funciones especiales, pero están físicamente separados.
Las 32 unidades 00h~1fh*** se dividen uniformemente en cuatro bloques, cada bloque contiene ocho registros de 8 bits, todos con el nombre de r0~r7, y estos registros se denominan registros de propósito general. Los registros en estos cuatro bloques se denominan r0 ~ r7. Usando los bits 3 y 4 de psw (rs0 y rs1), se pueden seleccionar estos cuatro conjuntos de registros de uso general.
Las unidades 20h-2fh de la memoria de datos interna son áreas direccionables por bits. Se pueden utilizar como unidades generales con direccionabilidad por bytes, o sus bits se pueden direccionar. Las direcciones del área direccionable por bits se muestran en. Tabla 1. Pantalla
Tabla 1 Tabla de direcciones del área de direccionamiento de bits de RAM
3. Dirección de entrada del programa de servicio de interrupción
En el área de almacenamiento del programa, es guardado para el programa de servicio de interrupción La dirección de entrada de un segmento del programa de servicio de interrupción: un grupo de unidades especiales es 0003h-0032h. Cada unidad tiene su propio propósito. Están divididas en seis segmentos, cada segmento tiene 8 bytes y tiene. Reservado para el programa de servicio de interrupción. Se llama Es el área del vector de interrupción. at89s52*** tiene 8 fuentes de interrupción y 6 vectores de interrupción. Sus definiciones se muestran en la Tabla 2 a continuación.
Tabla 2 Dirección de entrada de la rutina del servicio de interrupción
4. Registro de función especial sfr (¿registro de función especial?)
El registro de función especial se refiere a un conjunto de registros con propósitos especiales, también conocidos como registros de propósito especial. Son esencialmente algunas unidades de RAM en chip con funciones especiales. , que refleja el estado de ejecución del microcontrolador, muchas funciones también se definen y controlan a través de registros de funciones especiales.
Las direcciones internas altas 128 (80~ffh) del microcontrolador at89s52 están asignadas a registros de funciones especiales. Este espacio de direcciones se superpone completamente con la dirección superior de 128 bytes de la memoria de datos en el chip, pero los dos son completamente independientes en el hardware físico y se utilizan métodos de direccionamiento para distinguir este espacio de direcciones completamente superpuesto. Cuando se utiliza el direccionamiento directo para acceder a este espacio de direcciones, se accede al registro de función especial; cuando se utiliza el direccionamiento indirecto para acceder a este espacio de direcciones, se accede a la memoria de datos.
AT89s52 tiene 32 registros de funciones especiales, que están distribuidos discretamente en las direcciones 80h~ffh de la memoria RAM interna. Las funciones de estos registros se han especificado especialmente y los usuarios no pueden modificar sus estructuras.
5. Varias cuestiones a tener en cuenta
(1) Superposición de direcciones
A todas las memorias del microcontrolador se les deben asignar direcciones. El rango de direcciones direccionables es de 64 kb y tanto la memoria de datos como la memoria de programa están ocupadas. la misma dirección.
En la memoria del programa, las direcciones bajas de 4kb en el chip y fuera del chip 0000h ~ 0ffffh se superponen completamente, pero usamos pines para distinguir: cuando = 0, seleccione fuera del chip, cuando = 1, Seleccione en chip, para que esté completamente diferenciado.
Las 256 direcciones de unidad de 0000h a 00ffh en la memoria de datos se superponen completamente. El acceso a los datos en el chip y en el chip se distingue por diferentes instrucciones: la instrucción mov accede a la memoria de datos en el chip. y la instrucción movx accede a la memoria de datos fuera del chip.
(2) La distinción entre memoria de programa (rom) y memoria de datos (ram)
La distinción entre memoria de programa (rom) y memoria de datos (ram) se distingue estrictamente en el uso , la memoria del programa solo puede almacenar instrucciones del programa y tablas de constantes, y solo la instrucción movc se puede utilizar para acceder a los datos en la memoria del programa. La memoria de datos almacena datos y las instrucciones de operación dentro y fuera del chip se operan mediante mov y movx respectivamente.
(3) División de área del espacio de direcciones de bits
Los 128 bits 20h~2fh en la memoria RAM del chip y la dirección de bits en sfr, estas unidades de direccionamiento de bits están relacionadas con instrucciones de bits El conjunto constituye un sistema procesador de bits