Contador de caracteres sin firmar = 10;
sbit P3 _ 7 = p3^7
Encabezado no válido (no válido)
p>
{
P3 = 0
p 1 = 0x ff;
TMOD = 0x 01;
TH0 = 0x3C
TL0 = 0xB0
EA = 1;
ET0 = 1;
mientras(1)
{
Si (P3! = 0)
{
TR0 = 1;
mientras(1 );
p>}
}
}
void ISR_Timer0(void) interrupción 1
{
TH0 = 0x3C
TL0 = 0xB0
Inversa-;
Si (contador == 0)
{
Contador = 10;
P3_7 = ~P3_7;
p 1 = 0x 00;
}
}
El programa anterior está completamente compilado y traducido de acuerdo con sus instrucciones.
Hay dos puntos que deben explicarse:
En 1 lenguaje C, no es necesario configurar la pila, por lo que no escribí la operación SP.
En lenguaje 2 C, las operaciones PUSH y POP que ingresan a la interrupción pueden ser completadas por el propio compilador, por lo que no es necesario escribir.
Por lo demás, puedes entenderlo comparándolo con la compilación original. No hice ninguna optimización especial para que puedas entenderlo.