Algunos problemas en la programación del reloj del microcontrolador y el diseño de circuitos
Introducción al Microcontrolador Se puede decir que el siglo XX ha abarcado tres eras "eléctricas", a saber, la era eléctrica, la era electrónica y la era de la informática en la que ahora ha entrado. Sin embargo, este tipo de computadora generalmente se refiere a una computadora personal, o PC para abreviar. Consta de un host, teclado, monitor, etc. Existe otro tipo de ordenador con el que la mayoría de la gente no está muy familiarizada. Este tipo de computadora es una computadora de un solo chip (también conocida como microcontrolador) que imparte inteligencia a varias máquinas. Como sugiere el nombre, este sistema informático mínimo utiliza solo un circuito integrado para realizar cálculos y controles simples. Debido a su pequeño tamaño, suele estar escondido en el "vientre" de la máquina controlada. Desempeña el mismo papel que la mente humana en todo el dispositivo. Si sale mal, todo el dispositivo quedará paralizado. Hoy en día, este tipo de microcontrolador se utiliza en una amplia gama de campos, como instrumentos inteligentes, control industrial en tiempo real, equipos de comunicación, sistemas de navegación, electrodomésticos, etc. Una vez que varios productos utilizan microcontroladores, pueden actualizarlos. El adjetivo "inteligente" a menudo se coloca delante del nombre del producto, como las lavadoras inteligentes. Hoy en día, algunos productos producidos por técnicos en algunas fábricas u otros desarrolladores electrónicos aficionados tienen circuitos demasiado complejos o funciones demasiado simples y se copian fácilmente. La razón puede ser que el producto no utiliza un microcontrolador u otros dispositivos lógicos programables.
¿Es difícil aprender a manejar un microcontrolador? Cabe decir que para los lectores que ya tienen conocimientos básicos de circuitos electrónicos, especialmente circuitos digitales, no habrá mucha dificultad si tienen cierta base en PC, les resultará más fácil aprender a usar microcontroladores. Para permitir que la gran mayoría de lectores utilicen microcontroladores. Aquí haremos todo lo posible para brindarles a los lectores los principios básicos de funcionamiento y los métodos de uso de los microcontroladores de acuerdo con los principios de explicar las cosas profundas de una manera simple, eliminando lo complejo y simplificándolo, e integrando la teoría con la práctica, para lograr el propósito de llevar a todos a la "puerta" de los microcontroladores. Sin embargo, los microcontroladores, como las PC, son tecnologías muy prácticas. Algunas personas dicen que "las computadoras se hacen jugando". Lo mismo ocurre con los microcontroladores. Sólo "jugando" más, es decir, practicando más y practicando más, podemos realmente hacerlo. dominarlo. Por lo tanto, esta conferencia proporcionará varios ejercicios y experimentos, e introducirá algunas fuentes de microcontroladores y sistemas de desarrollo rentables adecuados para principiantes. Sólo completando concienzudamente estos enlaces prácticos podrá sentar una base sólida para seguir estudiando.
La composición de una microcomputadora de un solo chip
Si una microcomputadora de un solo chip debe completar cálculos automáticamente, ¿cuáles son las partes más importantes que debe tener?
Usemos 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 luego convertidos en varias señales de control para realizar operaciones tales como como suma, resta, multiplicación, etc. Varios comandos para funciones como excepto. 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 indicar 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, también 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 "comunicación". room", 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.
El sistema de instrucciones y programa en lenguaje ensamblador del microcontrolador
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. En cuanto a la operación simple de sumar dos números, una vez almacenado en la memoria el número a operar, se deben realizar los siguientes pasos: Paso 1: Sacar el primer número de su unidad de almacenamiento (Ubicación) y enviarlo al operador.
Paso 2: Saque 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 especificada en la memoria.
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 la palabra del microcontrolador MCS-51 es de 8 bits. A veces, un byte no puede expresar completamente ciertas operaciones a completar. 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 de tablas, 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.
CPU y memoria MCS-51
Estructura de la CPU
La CPU del microcontrolador 8051 está compuesta por una unidad aritmética y un controlador.
1. Operador
El operador toma la ALU, el componente de operación binaria aritmética/lógica, como núcleo, más el registro temporal TMP, el acumulador ACC, el registro B y el estado del programa. Registro de bandera PSW y 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 caracteres 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á más adelante cuando se presenten 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 funciona, las instrucciones deben recuperarse 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 programas 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. 8051CPU toma el byte de instrucción de la unidad ROM correspondiente y lo registra en el registro de instrucciones a través de la dirección especificada. Luego, el decodificador traduce el código de instrucción en el registro de instrucciones en varias formas de señales de control. el oscilador de reloj del microcontrolador Los pulsos de reloj generados se combinan en el circuito de temporización y control para formar un nivel y un reloj que cambia según un cierto latido de tiempo, que es la llamada información de control, y coordina operaciones como la transmisión de datos. y cálculos entre registros dentro de la CPU.
/mcu%20de%20zhou%20%20cheng.htm
/baidu?word=%B5%A5%C6%AC%BB%FA%CA%B1%D6% D3%B3%CC%D0%F2&tn=myie2dg