Red de conocimiento informático - Conocimiento informático - ¿Qué conocimientos básicos necesitas para aprender sobre microcontroladores?

¿Qué conocimientos básicos necesitas para aprender sobre microcontroladores?

Conocimientos básicos del microordenador de un solo chip

Feixiang Electronic Technology 2003-11-04

Composición del microordenador de un solo chip

Para completar los cálculos automáticamente, la microcomputadora de un solo chip debería ¿Cuáles son las partes más importantes?

Utilizamos el ábaco como ejemplo para calcular un problema aritmético. Ejemplo: 36+163×156-166÷34. Ahora bien, para realizar cálculos, primero necesitas un ábaco, seguido de papel y bolígrafo. Registramos el problema a calcular, y luego el primer paso es calcular 163 × 156, sumarlo a 36 y anotar el resultado en el papel, luego calcular 166÷34 y luego restarlo del resultado anterior. resultado final.

Ahora, usamos una microcomputadora de un solo chip para completar el proceso anterior. Obviamente, primero debe tener un componente que pueda reemplazar el ábaco para el cálculo, que es la "calculadora"; un dispositivo que puede funcionar como papel y bolígrafo, es decir, puede recordar las preguntas originales, los datos originales y los resultados intermedios, y también recordar los diversos comandos compilados para permitir que el microcontrolador realice cálculos automáticamente. Este tipo de dispositivo se llama "memoria". Además, también existe la necesidad de un controlador que pueda reemplazar a los humanos. Puede enviar varias señales de control según comandos predeterminados para que todo el proceso de cálculo pueda realizarse paso a paso. Pero estas tres partes por sí solas no son suficientes: es necesario ingresar los datos y comandos originales y generar los resultados del cálculo. Todos deben realizarse en orden y, a veces, hay que esperar.

Como en el ejemplo anterior, al calcular 163×156, el número 36 no puede ingresar la unidad aritmética al mismo tiempo. Por lo tanto, es necesario configurar una "puerta" en el microcontrolador que actúe de acuerdo con el comando del controlador y permita que ingresen nuevos datos cuando la unidad aritmética los necesite. O, cuando la unidad aritmética obtiene el resultado final, genera el resultado y el resultado intermedio no puede "salir" del microcontrolador a voluntad. Este tipo de circuito de "puerta" que realiza cierta gestión de datos de entrada y salida se denomina "Puerto" en el microcontrolador. En el microcontrolador, fluyen básicamente tres tipos de información. Un tipo son los datos, es decir, varios datos sin procesar (como 36, 163, etc. en el ejemplo anterior), resultados intermedios (como el cociente 4 obtenido por 166). ÷34, el resto 30, etc.), Programa (una colección de comandos), etc. De esta manera, el dispositivo externo ingresa al microcontrolador a través del "puerto" y luego se almacena en la memoria. Durante el proceso de operación, los datos se leen de la memoria a la unidad aritmética para su operación y se obtienen los resultados intermedios de la operación. almacenado en la memoria o finalmente emitido por el operador a través de la "entrada".

Varios comandos (programas) que el usuario desea que ejecute el microcontrolador también se envían desde la memoria al controlador en forma de datos, que son interpretados (decodificados) por el controlador y convertidos en diversas señales de control. para ejecución Varios comandos como suma, resta, multiplicación, división y otras funciones. Por lo tanto, este tipo de información se denomina comando de control, es decir, el controlador controla la unidad aritmética para realizar cálculos y procesamiento paso a paso, y controla la lectura (recuperación de datos) y escritura (almacenamiento de datos) de la memoria. El tercer tipo de información es la información de dirección, cuya función es indicarle a la unidad aritmética y al controlador dónde obtener comandos y datos, dónde almacenar los resultados y a través de qué puerto ingresar y emitir información, etc.

La memoria se divide en dos tipos: memoria de solo lectura y memoria de lectura y escritura. La primera almacena programas fijos y constantes depurados, y la segunda almacena algunos datos que pueden cambiar en cualquier momento. Como sugiere el nombre, una vez que los datos se almacenan en una memoria de solo lectura, solo se pueden leer y no se pueden cambiar (EPROM, E2PROM y otros tipos de ROM pueden cambiar y escribir datos a través de ciertos métodos - Nota del editor). La memoria de lectura y escritura puede almacenar o leer datos en cualquier momento.

De hecho, la gente suele combinar la unidad aritmética y el controlador y lo llaman unidad central de procesamiento: CPU. Además de realizar cálculos, el microcontrolador también necesita completar funciones de control. Por eso contar y sincronizar son inseparables. Por lo tanto, el microcontrolador incluye un temporizador y un contador, y su estructura básica es similar al ejemplo de la parte (2) de esta serie. Hasta ahora, hemos conocido los componentes básicos de una microcomputadora de un solo chip, es decir, una microcomputadora de un solo chip está compuesta por una unidad central de procesamiento (es decir, la unidad aritmética y el controlador en la CPU), una memoria de solo lectura ( generalmente representada como ROM), una memoria de lectura y escritura (también conocida como memoria de acceso aleatorio (generalmente representada como RAM), un puerto de entrada/salida (también dividido en puerto paralelo y puerto serie, representado como puerto de E/S), etc.

De hecho, hay un circuito de reloj dentro del microcontrolador, que le permite realizar operaciones y controles rítmicamente. Además, existe el llamado "sistema de interrupción", que funciona como una "sala de comunicación". Cuando los parámetros del objeto de control del microcontrolador alcanzan un estado que requiere intervención, se puede notificar a la CPU a través de esta "sala de comunicación". ", para que la CPU tome las contramedidas adecuadas en función de la prioridad de los eventos externos.

Ahora que ya conocemos la composición del microcontrolador, la pregunta que queda es ¿cómo conectar sus partes en un todo interrelacionado? De hecho, dentro del microcontrolador existe un "lazo" que los conecta, el llamado "bus interno". Este bus es como el "troncal" de una gran ciudad, y la CPU, ROM, RAM, puerto de E/S, sistema de interrupción, etc. están distribuidos a ambos lados de este "bus" y conectados a él. Por lo tanto, todas las instrucciones y datos se pueden transmitir a través del bus interno, al igual que varios elementos en una gran ciudad se transmiten a través de las carreteras principales.

Sistema de instrucciones MCU y programa en lenguaje ensamblador

Ya hemos descrito varios componentes principales del microcontrolador, que constituyen el hardware del microcontrolador. El llamado hardware es una entidad que se puede ver y tocar. Sin embargo, con este tipo de hardware sólo existe la posibilidad de realizar funciones informáticas y de control. Para que un microcontrolador realmente pueda realizar cálculos y control, también debe contar con la cooperación de un software. El software se refiere principalmente a varios programas. Sólo "llenando" (almacenados) varios programas correctos en el microcontrolador podrá funcionar eficazmente. La razón por la que el microcontrolador puede realizar cálculos y controles automáticamente es precisamente porque las personas usan los pasos para implementar el cálculo y el control paso a paso en forma de comandos, es decir, las instrucciones (Instrucciones) se almacenan en la memoria de antemano, y el microcontrolador Está bajo el control de la CPU. A continuación, saque las instrucciones una por una, tradúzcalas y ejecútelas. Para la sencilla operación de sumar dos números, una vez almacenado en la memoria el número a calcular, se deben realizar los siguientes pasos:

Paso uno: Sumar el primero Se saca el número de su unidad de almacenamiento (Ubicación) y se envía a la unidad aritmética. Paso 2: Tome el segundo número de la unidad de almacenamiento donde se encuentra y envíelo a la unidad aritmética Paso 3: Sumar Paso 4: Envíe el resultado agregado a la unidad de memoria especificada;

Todas estas operaciones de buscar, enviar, agregar, almacenar, etc. son una operación (Operación). Anotamos las diversas operaciones que la computadora debe realizar en forma de comandos. . Pero, ¿cómo se pueden identificar y realizar estas operaciones? Esto está determinado por el sistema de instrucciones que le dio el diseñador al diseñar el microcontrolador. Una instrucción corresponde a una operación básica; todas las instrucciones que puede ejecutar un microcontrolador son el sistema de instrucciones (Conjunto de instrucciones) del microcontrolador. Los diferentes tipos de microcontroladores tienen diferentes sistemas de instrucción.

Cuando se utiliza un microcontrolador, los problemas a resolver deben compilarse previamente en una serie de instrucciones. Estas instrucciones deben ser aquellas que el microcontrolador seleccionado pueda reconocer y ejecutar. El programa de instrucciones compilado por los usuarios de microcontroladores para resolver sus propios problemas se denomina programa fuente. Las instrucciones generalmente se dividen en dos partes: código de operación (Opcode) y operando (Operand). El código de operación indica qué operación realiza la computadora, es decir, la función de la instrucción; el operando indica el número que participa en la operación o la dirección donde se encuentra el operando (es decir, el número de ubicación donde se almacena el operando). Como el microcontrolador es un dispositivo programable, sólo "reconoce" códigos binarios (0, 1). Para que el microcontrolador funcione, todas las instrucciones del sistema del microcontrolador deben expresarse en forma de codificación binaria. Por ejemplo, en la serie de microcontroladores MCS-51 de Intel, el código de instrucción para llevar un número de la memoria al acumulador en la CPU (en la unidad aritmética, un registro especial que participa en los cálculos y almacena los resultados de los cálculos) es 74H. El código para agregar los datos inmediatos al contenido del acumulador es 24H, más el código para los datos inmediatos, y el código para que el acumulador envíe los datos a la memoria RAM interna es F6H~F7H, etc. Estas instrucciones son códigos de máquina binarios expresados ​​en hexadecimal.

La longitud de palabra del microcontrolador MCS-51 es de 8 bits. En ocasiones, determinadas operaciones a realizar no se pueden expresar completamente en un byte. Por lo tanto, existen instrucciones de un solo byte e instrucciones de varios bytes en el sistema de instrucciones. El código de máquina se compone de una serie de 0 y 1. No tiene características obvias, es difícil de recordar, es difícil de entender y es propenso a errores. Por lo tanto, es muy difícil escribir programas usándolo directamente. Por lo tanto, la gente usa algunos mnemotécnicos (Mue monic), generalmente la abreviatura en inglés de la función de instrucción para reemplazar el código de operación. Por ejemplo, en MCS-51, MOV (abreviatura de Move) se usa comúnmente para transferir números y Add (abreviatura). para suma) se usa comúnmente para suma) como mnemotécnico. De esta manera, cada instrucción tiene características de acción obvias, es fácil de recordar y comprender y no es fácil cometer errores. Los programas escritos utilizando mnemónicos se denominan programas en lenguaje ensamblador. Sin embargo, el programa escrito por mnemónicos es fácil de entender para las personas, pero el microcontrolador solo entiende el código de máquina binario. Por lo tanto, para que el microcontrolador "lea" el programa en lenguaje ensamblador, debe convertirse en un programa compuesto por binario. Código de máquina. Este proceso de conversión se llama "compilación". El ensamblaje se puede realizar con la ayuda de un método de búsqueda manual en la tabla, o se puede lograr con la ayuda de una PC a través del llamado "programa de ensamblaje cruzado". Una vez que el programa de usuario compuesto por código de máquina "ingresa" al microcontrolador y luego "inicia" el microcontrolador, puede realizar las tareas especificadas por el programa de entrada.

MCU--51 CPU y memoria

La CPU de la computadora de un solo chip 8051 está compuesta por una unidad aritmética y un controlador.

1. La unidad aritmética se basa en el componente de operación lógica/aritmética binaria ALU, más el registro temporal TMP, el acumulador ACC, el registro B, el registro de indicador de estado del programa PSW y el procesador booleano. El acumulador ACC es un registro de ocho bits, que es el registro que se utiliza con mayor frecuencia en la CPU. Al realizar operaciones aritméticas y lógicas, el acumulador ACC a menudo almacena temporalmente un operando (como el sumando) antes de la operación y almacena el resultado (como la suma algebraica) después de la operación. El registro B se utiliza principalmente para operaciones de multiplicación y división. El registro de bandera PSW también es un registro de ocho bits, que se utiliza para almacenar algunas características del resultado de la operación, como si hay acarreo, préstamo, etc. El significado específico de cada uno de ellos es el siguiente. PSW CY AC FO RS1 RS0 OV - P Para los usuarios, los siguientes cuatro dígitos son de gran preocupación.

1? Lleva bandera CY (PSW? 7). Indica si la operación tiene carry (o préstamo). Si el resultado de la operación tiene un acarreo (suma) o un préstamo (resta) en el bit más alto, este bit es 1; de lo contrario, es 0.

2? Bandera de transporte auxiliar AC. También conocido como indicador de medio acarreo, refleja si hay medio acarreo en los cuatro bits inferiores de las dos operaciones de ocho dígitos, es decir, si hay un acarreo (o préstamo) en la suma (o resta) del cuatro bits inferiores. Si es así, AC está en el estado 1. De lo contrario, es 0.

3? Indicador de desbordamiento OV. MCS-51 refleja si el resultado de la operación del número con signo tiene desbordamiento. Cuando hay desbordamiento, este bit es 1; de lo contrario, es 0.

4? Bandera de paridad P. Refleja la paridad del contenido del acumulador ACC. Si el resultado de la operación en ACC tiene un número par de unos (como 11001100B, que tiene 4 unos), entonces P es 0; de lo contrario, P=1.

Más adelante se introducirán otras partes de PSW. Debido a que el PSW almacena el estado del programa durante la ejecución, también se le llama palabra de estado del programa. También hay un procesador lógico (también llamado procesador booleano) que realiza operaciones lógicas bit a bit. Su función se explicará al introducir instrucciones de bits.

2. Controlador

El controlador es el centro neurálgico de la CPU. Incluye circuito lógico de control de temporización, registro de instrucciones, decodificador, puntero de dirección DPTR, contador de programa de PC y puntero de pila. SP y col. Aquí el contador de programa PC es un contador compuesto por registros de 16 bits. Para que el microcontrolador ejecute un programa, el programa debe precargarse en un área determinada de la memoria ROM en secuencia. Cuando el microcontrolador está funcionando, las instrucciones deben buscarse una por una en secuencia y ejecutarse.

Por lo tanto, debe haber un circuito que pueda encontrar la dirección de la unidad donde se encuentra la instrucción, y este circuito es el contador de programa de la PC. Cuando el microcontrolador comienza a ejecutar el programa, la PC se carga con la dirección de la primera instrucción. Cada vez que saca una instrucción (si es una instrucción multibyte, cada vez que saca un byte de instrucción), el contenido de. la PC aumenta automáticamente en 1 para señalar la dirección de la siguiente instrucción, lo que permite que las instrucciones se ejecuten secuencialmente. Solo cuando el programa encuentre una instrucción de transferencia, una instrucción de llamada de subrutina o una interrupción (se presentará más adelante), la PC irá al lugar requerido. La CPU 8051 recupera el byte de instrucción de la unidad correspondiente de la ROM en la dirección especificada por C y lo registra en el registro de instrucciones. Luego, el decodificador traduce el código de instrucción en el registro de instrucciones en varias formas de señales de control. Las señales están relacionadas con el reloj del microcontrolador. Los pulsos de reloj generados por el oscilador se combinan en el circuito de sincronización y control para formar un nivel y un reloj que cambia según un cierto tiempo, que es la llamada información de control. transmisión, cálculo y otras operaciones entre registros dentro de la CPU.

3. Memoria

La memoria es otro componente importante del microcontrolador. La Figura 6 muestra un diagrama esquemático de una estructura de memoria con una capacidad de almacenamiento de 256 unidades. Cada unidad de almacenamiento corresponde a una dirección, y 256 unidades tienen un máximo de 256 direcciones, las cuales están representadas por números hexadecimales de dos dígitos, es decir, la dirección de memoria (00H~FFH). Cada unidad de almacenamiento en la memoria puede almacenar información binaria de ocho bits, generalmente representada por dos números hexadecimales. Este es el contenido de la memoria. La dirección de la unidad de almacenamiento de la memoria y el contenido de la unidad de almacenamiento son dos conceptos diferentes y no pueden confundirse.

1. Memoria de programa

Un programa es una serie de comandos que controlan las acciones de la computadora. El microcontrolador solo reconoce instrucciones de la máquina compuestas por códigos "0" y "1". Por ejemplo, el comando MOV A, #20H escrito con los mnemotécnicos mencionados anteriormente se reemplaza por los códigos 74H y 20H reconocidos por la máquina: (escritos en binario, son 01110100B y 00100000B). Antes de que el microcontrolador pueda manejar un problema, los programas, tablas y constantes compilados deben compilarse en código de máquina y almacenarse en la memoria del microcontrolador. Esta memoria se llama memoria de programa. La memoria del programa se puede colocar dentro o fuera del chip, o se puede configurar tanto dentro como fuera del chip. Dado que el contador del programa de la PC es de 16 bits, hay disponible una dirección binaria de 16 bits para la memoria del programa. Por lo tanto, la dirección máxima de la memoria interna y externa puede ser de 0000H a FFFFH. Hay 4k bytes de ROM dentro de 8051, que ocupan los 4k bytes más bajos de 0000H a 0FFFH. En este momento, el número de dirección de la memoria de programa expandida fuera del chip debe comenzar desde 1000H. Si usa 8051 como 8031, no lo haga. Si desea utilizar la ROM 4k en el chip, se utiliza toda la memoria externa, el número de dirección aún puede comenzar desde 0000H. Sin embargo, en este momento, el pin {31} de 8051 (el pin EA) debe mantenerse bajo. Cuando EA es alto, el usuario usa la ROM interna en el rango de 0000H a 0FFFH. Después de que sea mayor que 0FFFH, la CPU del microcontrolador accede automáticamente a la memoria del programa externo.

2. Memoria de datos

La memoria de datos del microcontrolador está compuesta por memoria RAM de lectura y escritura. Su capacidad máxima se puede ampliar a 64k para almacenar datos de entrada en tiempo real. Hay 256 unidades de memoria de datos interna en 8051, de las cuales 00H~7FH son memoria RAM de acceso aleatorio interna y 80H~FFH son áreas de registro especiales. En el uso real, primero debe aprovechar al máximo la memoria interna. Desde una perspectiva de uso, es muy importante comprender la estructura y la asignación de direcciones de la memoria de datos interna. Porque se utilizarán con frecuencia al aprender sistemas de instrucción y programación en el futuro. La memoria de datos interna del 8051 tiene un espacio de direcciones de 256 bytes de 00H a FFH. Este espacio está dividido en dos partes. La dirección de la RAM de datos interna es 00H~7FH (es decir, 0~127). Las direcciones utilizadas como registros de funciones especiales son 80H~FFH. Entre estos 256 bytes se encuentra también la denominada zona de "dirección de bits", a la que se puede acceder no sólo por bytes, sino también por "bits". En esta área se pueden almacenar datos que requieren operaciones de bits.

Se organizan cuatro grupos de registros de trabajo de 00H a 1FH, cada grupo ocupa 8 bytes de RAM y se registra como R0~R7. El conjunto de registros seleccionado está determinado por RS1 y RS0 en el registro de bandera antes mencionado. Al poner diferentes números binarios en estos dos bits, puede seleccionar diferentes grupos de registros, como se muestra en la Tabla 1 del Apéndice.

3. Registro de función especial

El rango de direcciones del registro de función especial (SFR) es 80H~FFH. En MCS-51, a excepción del PC contador de programas y cuatro áreas de registros de trabajo, los 21 registros de funciones especiales restantes están en este bloque SFR. Cinco de ellos son registros de doble byte, que ocupan un total de 26 bytes. Consulte el Apéndice 2 para conocer los símbolos y direcciones de cada registro de función especial. Los marcados con * son direccionables por bits. El registro de función especial refleja el estado del 8051, que en realidad es el registro de palabra de estado y palabra de control del 8051. El PSW utilizado en CPU es un ejemplo típico. Estos registros de funciones especiales generalmente se dividen en dos categorías, una está relacionada con los pines del chip y la otra se usa para controlar las funciones del chip. Los registros de funciones especiales relacionados con los pines del chip son P0~P3. En realidad, son cuatro pestillos de ocho bits (uno para cada puerto de E/S). Cada pestillo está conectado con un controlador de salida y un búfer de entrada correspondientes. . MCS-51*** tiene cuatro puertos paralelos P0 ~ P3, que pueden proporcionar 32 líneas de E/S. Cada línea es bidireccional y la mayoría de ellas tienen funciones secundarias. Entre los registros restantes utilizados para el control del chip, las funciones del acumulador A, el registro de bandera PSW, el puntero de datos DPTR, etc. se han mencionado anteriormente, mientras que las funciones de otros registros se presentarán más adelante en las secciones pertinentes.

Sistema de instrucciones MCU y modo de direccionamiento

Para que el microcontrolador funcione normalmente, es necesario programar un programa con anticipación, luego el programa debe colocarse en la memoria y luego la CPU puede ejecutarlo. el programa. Los programas se componen de instrucciones y los componentes básicos de las instrucciones son códigos de operación y operandos. Hay muchos tipos de microcontroladores y cada uno tiene sus propias regulaciones sobre cómo expresar códigos de operación y operandos durante el diseño. Además, los códigos de instrucción también son diferentes, por lo que todas las instrucciones del microcontrolador seleccionado, se denominan ". "sistema de instrucción", debe entenderse. Comprensión suficiente. Aunque cada serie de microcontroladores tiene sistemas de instrucción diferentes, también tienen sus propias similitudes. Dominar el sistema de instrucción de un tipo de microcontrolador puede servir como referencia para otras series de microcontroladores. La microcomputadora de un solo chip MCS-51 se usa ampliamente, tiene muchos derivados y es representativa. Por lo tanto, la serie de sistemas de instrucción MCS-51 se utiliza como ejemplo para ilustrar la composición y aplicación de las "instrucciones".

1. MOV A, #20H

Esta instrucción significa enviar el número 20H al acumulador A (un registro de función especial).

2. AGREGAR A, 70H

Esta instrucción significa agregar el contenido en el acumulador A (#20H enviado en el ejemplo anterior) y la dirección de memoria 70H El contenido de la unidad ( que también es un número) se suman a través de la unidad lógica aritmética (ALU en abreviatura inglesa) y el resultado se retiene en A. Aquí MOV, ADD, etc. se denominan códigos de operación, y A, #20H, 70H, etc. se denominan operandos. En los programas en lenguaje ensamblador, los códigos de operación generalmente se abrevian de palabras en inglés, lo cual es útil para la memoria, por lo que también se le llama mnemotécnico. Por ejemplo, MOV es la abreviatura de la palabra inglesa MOVE, que significa mover y ADD es la palabra inglesa, que significa añadir; Por lo tanto, es más conveniente para los usuarios que saben un poco de inglés comprender el significado de las instrucciones del microcontrolador. Hay muchas formas de representar operandos. Por ejemplo, el número 20H anterior se denomina número inmediato, es decir, 20H es el operando real. Y 70H es la dirección de una determinada unidad en la memoria. En esta unidad, se coloca el operando (por ejemplo, 3AH) ADD A, 70H no suma el contenido de 70H y A, sino que suma el contenido de la memoria. En la unidad 70H, saque 3AH y agregue el contenido de A.

De lo anterior se puede ver que para encontrar el operando real, a veces es necesario girar una esquina o incluso varias vueltas. Este proceso se llama direccionamiento MCS-51 *** tiene 7 modos de direccionamiento, que se presentan a continuación:

1. Direccionamiento inmediato: El operando se escribe en la instrucción y se coloca en la memoria del programa junto con el código de operación. Coloque el signo "#" delante del número inmediato para indicar que el modo de direccionamiento es direccionamiento inmediato, como #20H.

2. Direccionamiento de registro: el operando se coloca en el registro y la dirección del operando está representada directamente por el nombre del registro en la instrucción. Por ejemplo, MOV A y R0 pertenecen al direccionamiento de registros, es decir, el contenido del registro R0 se envía al acumulador A.

3. Direccionamiento directo: el operando se coloca en una determinada unidad de la RAM interna del microcontrolador y la dirección de la unidad se escribe directamente en la instrucción. Como en el ejemplo anterior, AGREGAR A, 70H en 70H.

4. Direccionamiento indirecto de registro: el operando se coloca en una determinada unidad de RAM y la dirección de la unidad se coloca en el registro R0 o R1. Si la dirección RAM es mayor que 256, la dirección se almacena en el registro DPTR (puntero de datos) de 16 bits. En este momento, se agrega el símbolo @ antes del nombre del registro para indicar este direccionamiento indirecto. Como MOV A, @ R0. Otros incluyen direccionamiento indexado, direccionamiento relativo, direccionamiento de bits, etc., que se presentarán en detalle más adelante. Algunas personas pueden preguntar, ¿no es simple y claro dar directamente los operandos reales en la instrucción? ¿Por qué utilizar otros métodos de direccionamiento? Esto se debe a que es difícil dar los operandos a la vez durante la programación. Por ejemplo, cuando se utiliza un microcontrolador para controlar la temperatura, siempre es necesario restar la temperatura ambiente de la temperatura de control dada (como 20 °C), y la temperatura ambiente cambia de vez en cuando. Obviamente, no se puede dar. en las instrucciones del programa solo se puede enviar al programa a través de un determinado método. Un determinado puerto de entrada/salida se almacena en un determinado registro, por lo que se debe utilizar el direccionamiento de registro. Otro ejemplo es realizar operaciones aritméticas y calcular el promedio de las puntuaciones de cada clase de estudiantes. Si se compila un programa para las materias de cada estudiante, las puntuaciones de cada materia del estudiante se dan directamente en el programa y luego se calcula el promedio. Obviamente demasiados problemas. Aquí puede compilar un programa general para encontrar el puntaje promedio y enviar el puntaje de cada estudiante a cada unidad de la memoria. En este caso, cada estudiante puede usar el direccionamiento directo. ¿conveniente? Por lo tanto, cuantos más métodos de direccionamiento existan, más conveniente y flexible será la programación y más amplio será el ámbito de aplicación.

Dirigirse es como encontrar a una persona si la persona que buscas tiene múltiples métodos de contacto como teléfono móvil, máquina de presión arterial, teléfono fijo, etc., será más fácil encontrarla. Es cierto para los microcontroladores. Cuanto más métodos de direccionamiento, más operandos se encuentran, más conveniente es la función del microcontrolador. Al introducir anteriormente el modo de direccionamiento del microcontrolador de la serie 51, a menudo encontramos algunos registros dentro del microcontrolador, el acumulador A, los registros generales R0~R7, el puntero de datos DPTR y la memoria, etc. Cuando se introduzcan instrucciones más adelante, se transferirán datos entre estos registros y memorias, o se realizarán operaciones. Por tanto, la programación requiere familiaridad con la estructura interna del microcontrolador.

La estructura interna general del microcontrolador 8051 tiene las siguientes características básicas:

CPU de 8 bits, oscilador en chip

ROM de 4k bytes, 128 bytes RAM

21 registros de funciones especiales

32 líneas de E/S

64k bytes direccionables de datos externos y espacio de almacenamiento de programas

Dos 16 Temporizadores y contadores de bits

Estructura de interrupción: con dos prioridades y cinco fuentes de interrupción

Un puerto serie de doble puerto completo

Direccionamiento de bits (encontrar el contenido de un determinado bit) es adecuada para procesadores de bits que realizan operaciones lógicas bit a bit.

Además de la RAM de 128 bytes, la ROM de 4 kbytes y los módulos de interrupción, puerto serie y temporizador, también hay 4 grupos de puertos de E/S P0 ~ P3, y el resto es la composición completa de la CPU. Reemplazar 4kROM con EPROM es la estructura de 8751. Si se elimina la parte ROM/EPROM, es el diagrama de bloques de 8031. Si la ROM se reemplaza con memoria Flash o EEPROM, o se omiten algunas E/S, la serie 51 puede Se pueden obtener variedades derivadas, como 89C51, AT89C2051 y otros diagramas de bloques de microcontroladores.

Cada parte del microcontrolador está conectada orgánicamente a través de un bus interno