Red de conocimiento informático - Conocimiento sistemático - Resuelva el programa C para 51 microcontroladores para usar cuatro botones para controlar cuatro LED de forma independiente.

Resuelva el programa C para 51 microcontroladores para usar cuatro botones para controlar cuatro LED de forma independiente.

# incluir & ltreg 51 . h & gt;

//k2~k4? ¿Controlar le1 ~ le4 respectivamente?

¿Anulado? retraso (sin firmar? int? x)? //Función de retraso

{

while(x-); //El número de retraso se reduce en uno

}

No válido ? ¿Evento clave? (¿sin firmar?char?d)? //Enciende el LED correspondiente según el valor de la clave escaneada.

{

Interruptor (d)

{

¿Caso? 14:?p1^=(1<<0);? interrumpir;? //Se presiona la tecla k1.

¿Caso? 13:?p1^=(1<<1);Break; //se presiona la tecla k2.

¿Caso? 11:?p1^=(1<<2);Romper; //Presione la tecla //k3.

¿Caso? 7:p1^=(1<<3);Break; //se presiona la tecla k4.

//

Predeterminado:? p1^=(1<<7);Break; //Valor predeterminado, ninguno de los dos se ilumina.

}

}

¿Nulo? Key()//Escaneo de claves

{

¿Electricidad estática? ¿Ciel? Yo;

¿No firmado? ¿Ciel? a;

¿No está firmado? ¿Ciel? b;

a = P2; //0000aaaa? ,00007654?3210;

a & gt& gt=4;//a = a & gt;& gt4;? //Mover 4 bits, a? value

if (a!=15)? //Se presionó al menos una tecla.

{

si(i==0)? //0? Cuando la bandera no está presionada.

{

Retraso(1000);? //¿Demora? 1000 veces

b = P2;? //¿Asignar la boca de la llave a una variable? b

b>& gt=4;? //Mover cuatro posiciones, b? valor

si(a==b)? //Si A y B son iguales

{

key_event(b)? ;? //Esta vez la clave es válida.

Yo = 1;? //1? No se permite presionar ninguna otra tecla.

}

}

}

Otro

{

I = 0 ;? //No es una clave válida, ¿está claro? ¿0?

}

}

¿Nulo? principal()? //El comienzo de la función principal

{

¿Y (1)? //Ingrese un bucle para detectar pulsaciones de botones.

{

tecla();

}

}