Red de conocimiento informático - Computadora portátil - Problemas de programación en lenguaje C del microcontrolador at89c51

Problemas de programación en lenguaje C del microcontrolador at89c51

En realidad, solo hay 3 combinaciones de los dos botones. Si no se presionan dos botones, la combinación no es válida. Para obtener la cuarta combinación, se agrega el botón 2 (P1.1). usando timing, si el tiempo de pulsación de la tecla es mayor a 1 segundo, es la combinación 3, de lo contrario es la combinación 4, programa:

main()

{

carácter sin firmar i;

p>

while(1)

{

while((P1amp;0x03)==0x03); para presionar el botón

retraso (5); //Botón antirrebote durante 50 milisegundos

if(!(P1amp;0x03))//Si se presionan ambos botones

{

P2 |= 0x0F; //Todos los LED están apagados

P2^0 = 0; //Combinación 1: LED1 está encendido

mientras ((P1amp;0x03)!=0x03) ;//Espera a que se suelten ambos botones

}

else if(!P1^0)//Si solo se suelta el botón 1 presionado

{

p>

P2 |= 0x0F; //Todos los LED están apagados

P2^1 = 0 //Combinación 2: LED2 está encendido;

while(!P1^0) ; //Espera a que se suelte el botón 1

}

else if(!P1^1) //Si solo se presiona el botón 2

{

for(i = 100; igt; 0; i--)

{

if (P1^1)break;

delay(1 ); //Retraso 10 milisegundos

}

if(!i)//Si el botón está presionado durante más de 1 segundo

{

P2 |= 0x0F; // Todos los LED están apagados

P2^2 = 0 // Combinación 3: LED3 está encendido

}

else{

P2 |= 0x0F //Todos los LED están apagados

P2^3 = 0 ; //Composición 4: LED4 está encendido

}

p>

while(!P1^1);

Espere a que se suelte el botón 2

}

}

}