Resuelva el programa C para 51 microcontroladores para usar cuatro botones para controlar cuatro LED de forma independiente.
//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();
}
}