Red de conocimiento informático - Material del sitio web - Al escribir una rutina de servicio de interrupción de puerto serie, ¿cuál debería ser el valor de m en el modificador de interrupción m?

Al escribir una rutina de servicio de interrupción de puerto serie, ¿cuál debería ser el valor de m en el modificador de interrupción m?

modificador de interrupción m

La función de interrupción C51 debe modificarse con este modificador. En la programación C51, cuando se usa el modificador de interrupción m al definir una función, el sistema convierte la función correspondiente en una función de interrupción al compilar, agrega automáticamente el encabezado y las secciones finales del programa y lo organiza automáticamente de acuerdo con el método de procesamiento de interrupciones del sistema 51. Ubicación correspondiente en la memoria del programa.

En este modificador, el valor de m es 0 ~ 31 y las condiciones de interrupción correspondientes son las siguientes:

0——Interrupción externa 0

1 — —Temporizador/contador T0

2——Interrupción externa 1

3——Temporizador/contador T1

4——Interrupción del puerto serie

5——Temporizador/Contador T2

Otros valores están reservados.

El compilador C51 genera un vector de interrupción a partir de la dirección absoluta 8m 3, donde m es el número de interrupción, que es el número después de la interrupción. Este vector contiene un salto absoluto a la dirección de entrada de la función de interrupción.

Ejemplo de escritura de un programa de servicio de interrupción para contar el número de interrupciones de la interrupción externa 0

1 int x=0; 2 void int0() interrupción 0 usando 13 {4 x; 5 }

modificador usando n

El modificador usando n se usa para especificar el grupo de registros de trabajo usado internamente en esta función, donde n tiene un valor de 0~3, lo que indica el registro número de grupo. Este modificador se puede omitir. Después de omitir, el sistema selecciona automáticamente la función de interrupción. Tenga en cuenta lo siguiente:

(1) La función de interrupción no puede pasar parámetros. Si la función de interrupción contiene alguna declaración de parámetro, causará. errores de compilación.

(2) La función de interrupción no tiene valor de retorno. Si intenta definir un valor de retorno, no obtendrá el resultado correcto. Se recomienda definir la función de interrupción como tipo void al definirla. indicar claramente que no hay valor de retorno.