Lenguaje ensamblador del microcontrolador C51
Existen muchos tipos de interrupciones, como interrupciones externas, interrupciones de temporizador e interrupciones de puerto serie.
Déjame escribir una interrupción del temporizador.
Interrupción del temporizador T0
ORG 0000H Dirección de entrada del programa principal después del reinicio
LJMP MAIN salta al programa principal
ORG 000BHT0 Interrupción del temporizador dirección de entrada
LJMP CTC0 rutina de servicio de interrupción salto largo
ORG 100h; dirección del programa principal
Principal:
MOV TL0, #156 ; Asignar valor inicial del temporizador T0
MOV TL1, #156; Recargar valor inicial
MOV TMOD, #00000100 b; .
SETB ET0; habilitar interrupción de desbordamiento T0
SETB EA; interrumpir
SETB TR0; iniciar T0
$SJMP; Simule el programa principal esperando una interrupción.
CTC 0:; Rutina de servicio de interrupción (abreviatura de rutina de servicio de interrupción)
CPL p 1.0;
RETI; volver al punto de interrupción
El programa anterior interrumpe cada 100 ciclos de la máquina en el momento T0, invierte P1.0 sin interrupción y hace que P1.0 genere una onda cuadrada A con un período de 200us.
El cartel puede echar un vistazo a las preguntas que respondí. Muchas de ellas son interrupciones.