Red de conocimiento informático - Material del sitio web - Programa C basado en el interruptor de control remoto por infrarrojos de 51 microcontroladores

Programa C basado en el interruptor de control remoto por infrarrojos de 51 microcontroladores

¡Esta es solo una función de decodificador!

int jiema()

{

datos int sin signo, temperatura

RESET:

for( i=0; ilt; 8; i ) //**9ms

{

retardo_nms(1);

si ((PINDamp; 0B00000100)= =0B00000100 )

ir a RESET

}

temp = 8000;

mientras ( (PINDamp ; 0B00000100)==0B00000000 ) amp; amp; (temp!=0) )

{temp--;}

// Espere 4,5 ms de llegada de nivel alto para evitar 9 ms de pulso de arranque de bajo nivel.

// temp: requiere 0,25 us, temp=8000 para lograr un retraso de 2 ms.

delay_nus(1804); //**4.5ms

for( j=0; jlt; 4; j )

{

for( i=0;ilt;8;i)

{

temp = 4000;

while(((PINDamp;;PINDamp;; PINDamp;PINDamp;PINDamp;PINDamp)))((PINDamp;0B00000100)==0B00000000 ) amp;amp; (temp!=0) )

{temp--;}

{

datos |= (1lt;lt;i); // datosH= ~datos datosL= datos

delay_nus(379);

}

else data amp;= ~(1lt;lt;i); // Detecta el nivel bajo 0, lo que indica que el bit es 0, continúa detectando el siguiente bit

}

IR_BUF[j]=datos;

}

Si (IR_BUF[2] = ~IR_BUF[3]) //Suma de comprobación

{

PORTA=IR_BUF[2];

retardo_nms(500);