Red de conocimiento informático - Computadora portátil - 51 Problema de interrupción de compilación mixta en lenguaje MCU C y ensamblador

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.