Red de conocimientos turísticos - Información de alquiler - Principios de divisores y ensambladores de frecuencia

Principios de divisores y ensambladores de frecuencia

Imagen Lectura de instrucciones de ensamblaje de MCU de 8 bits

El sistema de instrucciones de varios microcontroladores no es universal y está estipulado por el fabricante del microcontrolador. Por lo tanto, los usuarios deben seguir los estándares especificados por el fabricante para lograr el propósito de aplicar el. microcontrolador.

El MCU PIC de 8 bits tiene tres niveles y sus correspondientes conjuntos de instrucciones. Los chips de la serie PIC básica * * * tienen 33 instrucciones, cada instrucción tiene una longitud de 12 bits; los chips de la serie PIC intermedia * * * tienen 35 instrucciones, cada instrucción tiene una longitud de 14 bits; los chips de la serie PIC avanzada * * * tienen 58 instrucciones, cada instrucción tiene una longitud de 14 bits; 16 bits de largo. Sus instrucciones son compatibles con versiones anteriores.

Aquí, el autor presenta la composición de las instrucciones en lenguaje ensamblador del microcontrolador PIC de 8 bits y el papel de los símbolos en las instrucciones, proporcionando una introducción rápida para los principiantes a la hora de leer libros y materiales relacionados.

I. Formato de instrucción en lenguaje ensamblador PIC

Las instrucciones en lenguaje ensamblador de los microcontroladores de la serie PIC son las mismas que el lenguaje ensamblador de los microcontroladores de la serie MCS-51. Cada instrucción en lenguaje ensamblador consta de cuatro. parts. , su formato de escritura es el siguiente:

Código de operación de etiqueta mnemónico operando 1, operando 2; anotar...

El formato de la instrucción se describe a continuación: las cuatro partes de las instrucciones están separadas por espacios. Puede ser 1 unidad o varias unidades para garantizar que la PC pueda reconocer las instrucciones durante el ensamblaje cruzado.

El número de referencia 1 tiene la misma función que el microcontrolador de la serie MCS-51, y el número de referencia representa la dirección simbólica de la instrucción. El valor específico de la dirección de la memoria de instrucciones se ha asignado durante el ensamblaje del programa. Las direcciones simbólicas (es decir, etiquetas) utilizadas en el lenguaje ensamblador son fáciles de ver y modificar, especialmente para la entrega de instrucciones. Las etiquetas son opcionales en el formato de directiva y solo son necesarias cuando otras declaraciones hacen referencia a ellas. Si no hay etiqueta, se deben dejar uno o más espacios delante del mnemotécnico de instrucción antes de escribirlo. El mnemotécnico de instrucción no puede ocupar la posición de la etiqueta; de lo contrario, el ensamblador lo etiquetará incorrectamente.

Al escribir una etiqueta, se estipula que el primer carácter debe ser una letra o un guión bajo de medio ancho "-", seguido de caracteres ingleses y numéricos, tabla de símbolos de dos puntos (:), etc. Y se puede combinar a voluntad. Los mnemónicos de código de operación y los códigos de registro no pueden representar más etiquetas. Las etiquetas también pueden ocupar una línea.

2 Mnemónico de código de operación Este campo es una opción obligatoria para el comando. Este elemento puede ser una instrucción mnemotécnica o puede estar compuesto por pseudoinstrucciones y macrocomandos. Su función es comparar el "código mnemotécnico de operación de instrucción" y la "tabla de códigos de operación" uno por uno para encontrar el código de máquina correspondiente.

3 El operando consta del valor de datos o datos simbólicos o valor de dirección del operando. Si hay dos operandos, sepárelos con una coma (,). Cuando el operando es una constante, la constante puede ser un número binario, octal, decimal o hexadecimal. También se pueden definir etiquetas, cadenas y códigos ASCⅱⅱ. Los requisitos específicos incluyen números binarios con el prefijo "b", por ejemplo: b 100111100; números octales que comienzan con la letra "O", como O257; números decimales que comienzan con la letra "d", como d 122; comenzando con "h" Comienzo, como H2F. La base predeterminada de la MCU PIC de 8 bits es hexadecimal. Agregue Ox antes del número hexadecimal. Por ejemplo, H2F se puede escribir como Ox2F.

Los operandos de la instrucción también son opcionales.

El método de direccionamiento de los microcontroladores de 8 bits serie PIC y serie MCS-51 es el mismo, es decir, el origen o destino del operando. Dado que los microcontroladores de la serie PIC adoptan la arquitectura de conjunto de instrucciones reducido (RISC), sus métodos de direccionamiento e instrucciones son pocos y simples. Según la fuente del operando, los modos de direccionamiento se pueden dividir en cuatro tipos: direccionamiento inmediato, direccionamiento directo, direccionamiento indirecto por registro y direccionamiento por bits. Por lo tanto, los operandos en las instrucciones MCU de la serie PIC a menudo tienen símbolos de registro relacionados. Más adelante en este artículo se pueden encontrar ejemplos de direccionamiento relevantes. Los comentarios se utilizan para explicar el programa para que la gente pueda leerlo fácilmente. Utilice un punto y coma (;) para separarlo de otras partes. Cuando el ensamblador detecta un punto y coma, los caracteres que le siguen ya no se procesan. Vale la pena señalar que al utilizar subrutinas se deben indicar las condiciones de entrada y salida del programa, así como las funciones y efectos que debe completar el programa.

2. Instrucción cero (***4)

Instrucción de borrado de 1 registro

Ejemplo: Borrar registro CLRW w.

Explicación: Esta instrucción es muy simple, donde W es el registro de trabajo del microcontrolador PIC, que equivale al acumulador A en el microcontrolador de la serie MCS-51 A, CLR es la abreviatura de Clear en. Inglés.

2 Instrucciones de borrado del temporizador de vigilancia.

Por ejemplo: el temporizador de vigilancia CLRWDT se borra (si se asigna el temporizador, el preescalador también se borrará).

Descripción: WDT es la abreviatura del inglés Watchdog Timer. CLR como se describe arriba. Tenga en cuenta que estas dos instrucciones no tienen operandos.

3 Registrar instrucciones claras. Formato de instrucción: CLRF f

Por ejemplo: CLRF·TMRO; clear TMRO

Nota: en el microcontrolador de 8 bits de la serie PIC, el símbolo F (o F) de uso común representa varios componentes en el chip El número de serie y la dirección del transmisor y F. El valor de F varía según los diferentes modelos de la serie PIC, generalmente ox00 ~ ox1f/7f/ff. TMRO significa temporizador/contador TMRO, por lo que CLRF borra el remitente y le da directamente al registro TMRO al que se puede acceder mediante direccionamiento directo.

Instrucción clara de 4 bits. Formato de instrucción BCF, b

Por ejemplo: BCF REG1, 2; borre el bit D2 del registro REG1.

Explicación: BCF es la abreviatura de bitclear F. F en inglés en el formato de instrucción, como se explicó anteriormente, el símbolo b representa el número de bits (o dirección de bits) de un registro de datos de 8 bits f; en el chip PIC, entonces b El valor es 0 ~ 7 o D0 ~ D7. REG es la abreviatura de Registro en el ejemplo. En el ejemplo, 2 significa b=2 en el formato de instrucción, que es el bit D2 del registro REG1.

A través de los formatos y ejemplos de las cuatro instrucciones claras anteriores, se puede explicar que al aprender las instrucciones del microcontrolador de 8 bits de la serie PIC, primero debe comprender el significado (función) del mnemotécnico, y luego su expresión. Los principiantes no necesitan memorizar instrucciones, lo importante es comprender y practicar.

Las instrucciones de este artículo son ligeramente diferentes a las instrucciones anteriores. Los comentarios del comando anterior son para explicar las funciones específicas del comando. De hecho, este método de anotación es fácil de aceptar y comprender para los principiantes, pero en aplicaciones reales, la anotación del lenguaje ensamblador del producto PIC generalmente se basa en lo que hace el programa (o la función de la instrucción) en lugar de la función directa de la instrucción. En vista de las razones anteriores, los siguientes comentarios de instrucciones cambiarán el método de comentarios anterior y utilizarán las funciones que el programa debe realizar como comentarios.

10 instrucciones de intercambio de nibble de Messenger

Formato de instrucción: SWAPF f, d

Descripción: SWAPF es coautor de Swap f, símbolos f y d The El significado es el mismo que el mencionado anteriormente. La función de esta instrucción es intercambiar los 4 bits altos y los 4 bits bajos del registro F. Es decir, antes de ejecutar la instrucción, si el estado de 8 bits del registro F es D7, D6, D5, D4, D3, D2 , D1, D0, después de la ejecución El estado de 8 bits pasa a ser D3, D2, D1, D7, D6, D5, D4.

La protección del sitio de interrupción es una parte importante de la tecnología de interrupción. Debido a que el sistema de instrucciones PIC16CXX no tiene instrucciones PUSH y POP, solo se puede implementar mediante otras instrucciones. Dado que el registro de trabajo w y el registro de estado se utilizan a menudo en el programa principal, la protección del dominio de interrupción a menudo requiere la protección del registro w y el estado.

El siguiente es un programa de muestra para la protección en campo de chips de la serie PIC16C7×.

¿MOVWF W_TEMP? ;Almacenar el contenido de W en el registro temporal W_TEMP SWAPF STATUS, W? ;Estado del intercambio y contenido

¿MOVWF STATUS_TEMP? ;Guarde el contenido del estado en Pro.

…en el registro STATUS_TEMP.

Rutina de servicio de interrupción (abreviatura de rutina de servicio de interrupción)

SWAPF STATUS_TEMP, W; intercambia el contenido de STATUS_TEMP y w, estado MOVWF ⁹ TATUS es restaurado a su estado original.

SWAPF W_TEMP, F; Intercambiar contenido

SWAPF W_TEMP, W; Vuelve al estado original.

Nota: Los comentarios para cada instrucción en el programa anterior se basan básicamente en el propósito que debe lograr el programa y casi no involucran la función de cada instrucción. Esto es algo a lo que los novatos deberían prestar especial atención.

11 Instrucción de llamada de subprograma (llamada de subprograma)

Formato de instrucción: llamada k es la dirección directa.

Nota: Para diferentes tipos de chips, la implementación de llamadas a subrutinas es diferente. La * * * similitud es proteger primero la dirección de retorno ((PC)+1) en la pila y luego transferirla. a la dirección de destino Se ejecuta la dirección de entrada de subrutina llamada (similar a la instrucción MCS-51).

Modo de formato de comando: ¿aquí? Retraso de llamada; subrutina de retraso de llamada

Retraso de subrutina de retraso MOVLW 0x80

RETLW 0

Descripción: antes de llamar a la ejecución de instrucciones, PC = dirección aquí.

Después de ejecutar la instrucción de llamada, PC = retardo de dirección (etiqueta), puntero de pila TOS = aquí+1 (dirección de retorno).

Ejemplo: consulte las siguientes instrucciones para ver un ejemplo.

Instrucción de inversión de contenido de 12 registros

Formato de instrucción: COMF f, d

Explicación: COMF es la abreviatura del complemento f, donde d = 1, operación ( f)→f; cuando d=0, la operación (f)→w.

Función: Invertir el contenido del registro F y enviarlo a W (d=0) o al propio F (d=1).

Ejemplo:? Organización 0x1FF

Ir a la página de inicio

Organización 0

Retraso...

¿Principalmente? ¿MOVLW 0? ;Se inicia el programa principal

¿TRTS? 5? ¿Configurar el puerto RA como salida?

BCF 5,0; establece el bit 0 del puerto RA en 0.

¿Retraso de llamada en bucle; retraso de flash?

? COMF 5; inversión del puerto RA (luz apagada... control)

¿Ir al ciclo?

Explicación: Las instrucciones anteriores son parte de un programa experimental de control de iluminación LED PIC16C54. La subrutina de retardo DELY no aparece en la lista, pero no afecta la lectura de esta instrucción. Se han introducido las tres instrucciones al comienzo del programa principal en el programa. Las instrucciones de llamada posteriores son para llamar a la subrutina de ejecución y su dirección de entrada es la etiqueta DELAY. Después de ejecutar la subrutina, se ejecuta el comando de control de apagado de luz LED COMF 5. El siguiente comando GOTO LOOP es lograr el propósito de iluminación LED para bicicletas.

13 Instrucciones de Operación de Posicionamiento (***4 ítems, uno más para productos PIC avanzados)

Además de borrar un bit, este tipo de instrucción también tiene otro en el registro F La instrucción para establecer el bit B en 1 y las otras dos instrucciones para saltar el bit (los productos avanzados PIC agregan una instrucción para activar la conversión en el bit B de F).

(1) Comando Posición 1. Formato de instrucción BSF, descripción B: BSF es la abreviatura del conjunto de bits F. Los significados de F y B son los mismos que los anteriores. La función de esta instrucción es establecer el bit B del registro F en 1.

(2) Prueba de bits, instrucción de salto a cero. ¿Formato de instrucción BTFSC? Descripción de f y b: BTFSC es la abreviatura de Bit Test. Si se borra, se omitirá. La función de la instrucción es probar el bit "B" del registro F. Si es 0, omita la siguiente instrucción, la ejecución secuencial es 1, es decir, cuando f (b) = 0, la instrucción actual no se ejecuta y la siguiente; Se ejecuta la instrucción (salto), es decir, se reemplaza por una instrucción nula NOP, por lo que esta instrucción toma 2 ciclos de instrucción.

La prueba de (3) bits es una instrucción de 1 salto. Formato de instrucción BTFSS f, b Descripción: BTFSS es la abreviatura de Bit Test. Si se establece, se omitirá. La función lógica de su instrucción es opuesta a la del artículo anterior. La prueba de bits f(b)=1 se ejecuta de forma intermitente y f(b)=0 se ejecuta de forma secuencial.

Las instrucciones en lenguaje ensamblador de MCU PIC de 8 bits presentadas anteriormente son solo una parte de las instrucciones, y también hay instrucciones de desplazamiento a la izquierda y a la derecha. Agregue w para registrar F e ingrese al modo de suspensión. En vista de las limitaciones del espacio del periódico, no los presentaré uno por uno aquí y brindaré explicaciones adicionales en la prueba de aplicación del programa más adelante.

Es un poco excesivo, así que te sugiero que lo imprimas y lo leas despacio.