Red de conocimientos turísticos - Información de alquiler - Experiencias en experimentos de programación de software de microcontroladores.

Experiencias en experimentos de programación de software de microcontroladores.

El microcontrolador es un tema integral con una gran aplicación. Integra el conocimiento de los circuitos analógicos y los circuitos digitales en la tecnología electrónica, especialmente los circuitos digitales, porque los circuitos digitales se utilizan ampliamente en ellos. Lo mejor es comenzar con el lenguaje ensamblador cuando se aprenden microcontroladores. Aunque el lenguaje ensamblador es un lenguaje de bajo nivel y su eficiencia de programación no es alta, tiene las ventajas de un menor uso de memoria y una velocidad de ejecución más rápida que el lenguaje C, y es más fácil de aprender si es nuevo en los microcontroladores. Debido a que los microcontroladores implican mucho conocimiento, sólo se pueden aprender paso a paso.

No hay atajos para la acumulación gradual. Cuando comencé a estudiar, no sabía nada sobre microcontroladores. No sé qué es un microcontrolador ni cuál es su función. A través del estudio, tengo una comprensión general de algunos conocimientos sobre microcontroladores.

Un microcontrolador está formado por la integración de CPU, RAM, ROM, interfaz de E/S, temporizador/contador e interfaz de comunicación serie en un solo chip.

Tiene una amplia gama de aplicaciones, incluida la recopilación de datos y la tecnología de medición y control en la automatización industrial. Aplicaciones en instrumentos inteligentes

Incluyendo osciloscopios digitales, fuentes de señales digitales, multímetros digitales, amperímetros de inducción, cajeros automáticos, etc. Entre los productos de electrónica de consumo se encuentran lavadoras, frigoríficos, aires acondicionados, televisores, hornos microondas, teléfonos móviles, tarjetas IC, equipos electrónicos de automoción, etc. En cuanto a la comunicación, existen módems, tecnología de conmutación controlada por programas, teléfonos móviles, PHS, etc. En términos de armas y equipos, hay aviones, buques de guerra, tanques, misiles, transbordadores espaciales, guiado de torpedos, armas inteligentes, etc. Se necesita mucho tiempo para aprender a usar microcontroladores y es casi imposible si solo quieres ser más rápido. Dado que los microcontroladores implican una amplia gama de conocimientos, no se pueden lograr de la noche a la mañana y sólo se pueden acumular poco a poco. Sin la acumulación de cada pequeño paso, una persona no puede completar mil millas. Solo aprendiendo y acumulando paso a paso podrá mejorar su nivel de microcontrolador.

Mejorar.

En el proceso de aprendizaje, debe prestar atención a la comprensión, formar gradualmente sus propias ideas de programación y prestar atención a los detalles durante el proceso de programación.

Si escribes el programa incorrectamente debido a un descuido, prácticamente te traerá más carga de trabajo. A medida que aprendamos más, los programas que escribimos serán cada vez más largos. Si hay muchos errores, será complicado corregirlos. Cuantos más errores cometa, más tiempo le llevará corregirlo y más problemas le causará.

Un microcontrolador es un ordenador completo que integra funciones como CPU, RAM, ROM, E/S, interrupciones y temporización/conteo. Simplemente agregue un oscilador de frecuencia principal y una fuente de alimentación, inyecte una aplicación y podrá lograr ciertas funciones. La característica de aplicación de la microcomputadora de un solo chip está "orientada a la medición y el control". Por tanto, debe contar con potentes funciones de procesamiento, detección y control de la información. Aprender a utilizar un microcontrolador implica comprender la estructura del hardware y la aplicación de los recursos internos del microcontrolador, aprender la configuración de inicialización de varias funciones en el sistema de instrucciones ensamblador o lenguaje C y realizar la programación de varias funciones.

1. Bus: Como todos sabemos, los circuitos siempre están compuestos por componentes conectados mediante cables. En los circuitos analógicos, el cableado no es un problema, porque los dispositivos generalmente están conectados en serie y no hay muchas conexiones entre dispositivos, pero los circuitos de computadora son diferentes. Tiene un microprocesador como núcleo y todos los dispositivos deben estar conectados al microprocesador, por lo que el trabajo de los dispositivos debe coordinarse entre sí. Por lo tanto, se requiere una gran cantidad de cables. Si los cables estuvieran conectados individualmente entre el microprocesador y el dispositivo, como en los circuitos analógicos, la cantidad de cables sería asombrosa. Por ello, se introdujo el concepto de bus en los microprocesadores, donde todos los dispositivos comparten cables. Las 8 líneas de datos de todos los dispositivos están conectadas a 8 líneas comunes, lo que equivale a conectar todos los dispositivos en paralelo, pero esto por sí solo no es suficiente. ¿Y si son dos? El dispositivo envía datos al mismo tiempo, uno es 0 y el otro es 1. Entonces, ¿qué recibe el destinatario? Esta situación no está permitida y debe controlarse a través de líneas de control para que el dispositivo funcione en tiempo compartido. Solo un dispositivo puede enviar datos a la vez (varios dispositivos pueden recibir datos al mismo tiempo). La línea de datos del dispositivo también se denomina bus de datos y todas las líneas de control del dispositivo se denominan bus de control.

Existen unidades de almacenamiento en la memoria interna o externa del microcontrolador, y estas unidades de almacenamiento sólo se pueden utilizar si se les asigna una dirección. ¿También en forma de señales eléctricas? Suponiendo que hay muchas celdas de memoria, también se utilizan muchas líneas para la división de direcciones. Estas líneas se denominan buses de direcciones.

2. Datos, dirección e instrucciones: La razón por la que se juntan estos tres es porque su esencia es la misma: ¿números, o son todos? Una secuencia que consta de las cadenas "0" y "1".

En otras palabras, las direcciones y las instrucciones también son datos. Una instrucción es un número especificado por el diseñador del microcontrolador. Tiene una estricta correspondencia uno a uno con nuestros mnemónicos de instrucciones de uso común y el desarrollador del microcontrolador no puede cambiarlos.

En tercer lugar, el uso de la segunda función del puerto P0, el puerto P2 y el puerto P3

Los principiantes a menudo se confunden acerca del uso de la segunda función del puerto P0, el puerto P2 y el puerto P3. La función se considera diferente de la función original.

Debe haber un proceso de cambio o una instrucción. De hecho, la segunda función de cada puerto es completamente automática y no se requieren instrucciones para la conversión. Por ejemplo, P3.6 y P3.7 son las señales WR y RD respectivamente. Cuando el microprocesador está conectado externamente a la RAM o tiene puertos de E/S externos, realizan una función secundaria y no pueden usarse como puertos de E/S de uso general. Siempre que un microprocesador ejecute la instrucción MOVX, la señal correspondiente se enviará desde P3.7 o P3.7 sin instrucciones previas. De hecho, "no se puede utilizar como puerto de E/S de uso general" no significa "no se puede" pero "no se podrá" utilizar como puerto de E/S de uso general. Puede disponer de un ETB P3.7 en las instrucciones.

Instrucción, y cuando el microcontrolador ejecuta esta instrucción, también hará que P3.7 pase a un nivel alto, pero el usuario no hará esto.

Porque esto suele provocar que el sistema se bloquee (es decir, se congele).

IV.Proceso de implementación del plan

El valor en el contador del programa (PC) en 8051 es '0000', por lo que el programa siempre comienza desde la unidad '0000', la cual significa que el sistema debe tener unidades '0000' en la ROM y una instrucción debe almacenarse en unidades '0000'.

5. Pila La pila es un área donde se almacenan los datos. El área en sí no es nada especial, sólo una copia de la RAM interna. Lo que es especial es la forma en que almacena y accede a los datos, lo que se denomina "primero en entrar, primero en salir". Además, la pila tiene instrucciones de transferencia de datos dedicadas, concretamente 'push' y 'jun op', y tiene una unidad especial dedicada, concretamente el puntero de pila SP.

Siempre que se ejecute la instrucción PUSH, SP aumentará automáticamente en 1 (según el valor original). Siempre que se ejecute la instrucción POP, SP se restará 1 (según el valor original permitido). ). Dado que el valor de SP se puede cambiar mediante instrucciones, ¿se puede configurar la pila en una unidad de memoria específica siempre que se cambie el valor de SP, digamos al comienzo del programa? Para MOV SP, la instrucción #5FH establece inmediatamente la pila en las celdas a partir de la celda de memoria 60H. Generalmente, siempre existe una instrucción para configurar el puntero de la pila al comienzo del programa, porque el valor inicial de SP es 07H en el momento del arranque, lo que hace que la pila comience desde 08H.

El área de 8 horas a 1FH es la segunda, tercera y cuarta área de registro de trabajo de 8031. El uso frecuente causará confusión en los datos.

Seis

Interrupciones Cuando se utilizan microcontroladores en sistemas de medición y control, el rendimiento en tiempo real es particularmente importante. La tecnología de interrupción debe manejar esta situación con altos requisitos en tiempo real. La característica de un microcontrolador es que ejecuta un programa repetidamente y la ejecución de cada instrucción del programa requiere una cierta cantidad de tiempo de ejecución. Si el programa no ejecuta la instrucción, la acción de la instrucción no ocurrirá, lo que retrasará muchas cosas rápidas, como el flanco descendente cuando se presiona el botón. Para que el microcontrolador responda a acciones rápidas cuando el programa se ejecuta normalmente, se debe utilizar la función de interrupción del microcontrolador, es decir, después de que ocurre una acción rápida, el microcontrolador interrumpe la ejecución normal del programa y procesa la acción rápida. acción y regresa al programa normal después del procesamiento. Las funciones de interrupción deben controlarse adecuadamente. La dificultad de uso es saber exactamente cuándo no se permiten interrupciones (enmascarar interrupciones), cuándo se permiten interrupciones (las interrupciones están activadas), qué registros deben configurarse para que ciertas interrupciones funcionen, qué debe hacer el programa cuando comienza la interrupción. y qué hace el programa después de que se completa la interrupción. Qué se debe hacer, etc.

Después de interrumpir el aprendizaje, puedes compilar un programa con una estructura más compleja que pueda hacer una cosa.

Monitorea una cosa. Una vez que sucede lo monitoreado, interrumpe lo que estás haciendo y ocúpate de lo monitoreado.

Este es el poder de la función de interrupción.

Siete: lenguaje ensamblador y lenguaje C

Las instrucciones de ensamblaje tienen su propio sistema de instrucción complejo, que no es fácil de dominar, por lo que debemos prestar atención a los detalles del hardware al escribir programas.

Comparado con el lenguaje C, el lenguaje ensamblador también tiene ventajas que no se pueden ignorar, es decir, requiere alta eficiencia y ocupa muy poco espacio de almacenamiento en algunas ocasiones especiales. Sin embargo, con el desarrollo de la tecnología, las limitaciones del hardware son cada vez más pequeñas y el lenguaje C es fácil de entender, universal y portátil. No tengo que recordar un conjunto especial de instrucciones, por eso prefiero escribir programas en C.

Ha pasado algún tiempo desde que entré en contacto con los microcontroladores. Siento que puedo aprender a escribir programas por mi cuenta, depurarlos y luego aprender rápidamente en la placa de desarrollo. Cuando veo los resultados que veo, me siento exitoso.

A veces, el aprendizaje de los microcontroladores es relativamente monótono y algunos conocimientos son abstractos y difíciles de entender, por lo que solo es posible adaptarse lentamente. Mientras aprende conocimientos teóricos, puede escribir programas e instalarlos en el microcontrolador para depurarlos. Sólo así podremos aprender a usar microcontroladores más rápido. Al mismo tiempo, también experimentaré la alegría del éxito al aprender.