51 Problema de interrupción de compilación mixta en lenguaje MCU C y ensamblador
Lenguaje C:
#includelt; reg52.hgt;
sbit P10 = P1^0;
datos de caracteres sin firmar timer0_counter = 0;
void Timer0_Ini(void)
{
TMOD = 0x01;
TL0 = (65536 - 50000) 256;/ /50ms
TH0 = (65536 - 50000) / 256
EA = 1;
ET0 = 1
TR0 = 1;
}
void main(void)
{
Timer0_Ini();
P10 = 0;
while(1)
{}
}
void Isr_Timer0(void) interrumpe 1 usando 1
{
TR0 = 0;
TL0 = (65536 - 50000) 256
TH0 = (65536 - 50000) / 256; p> p>
timer0_counter;
if(timer0_counter == 20)
{
timer0_counter = 0;
P10 = ~ P10;
}
TR0 = 1;
}
¿Cómo escribir en lenguaje ensamblador? ventana de su propio software de compilación o Mire el archivo SRC generado. Utilice #pragma asm y #end asm para el ensamblaje en línea de C. Haga clic con el botón derecho en el archivo fuente de C en KEIL, seleccione la primera opción de parámetro de C y seleccione "Generar archivo SRC" y "Compilar" en la pestaña de parámetros de C recién abierta. marque las dos opciones "Declaración de ensamblaje en archivo". Finalmente, agregue el archivo C51S.LIB al proyecto del proyecto y colóquelo al final del archivo del proyecto.