Red de conocimiento informático - Conocimiento sistemático - Buscando la programación de MCU 89c51, requisitos: presione la tecla 1 (P3.4, P3.5) 3 veces, todos los LED del puerto P1 se iluminarán y luego presione la tecla 1 1 vez

Buscando la programación de MCU 89c51, requisitos: presione la tecla 1 (P3.4, P3.5) 3 veces, todos los LED del puerto P1 se iluminarán y luego presione la tecla 1 1 vez

/************************

Cristal 4MHZ, P3.4, P3.5 interfaz clave1

Función : presione la tecla 1 tres veces, la luz P1 se enciende, presiónela nuevamente para apagarla y repita.

******************/

#include& lt;reg51. h>

sbit key1 = P3^4;

/************* *****

void delay40us(uint time)

Parámetro de entrada: tiempo

Parámetro de salida: ninguno

Función: retraso programa 40us

*** **************/

void delay40us(unsigned int time)

{

caracteres sin firmar

while(time != 0)

{

for(ks=0;ks<10; ks++)

{ }

tiempo--

}

}

void main()<; /p>

{

número de caracteres sin firmar, bandera;

bandera=0;num=0;

P3=0x10;

mientras(1)

{

si((clave1==0)&&(bandera==0))

{

delay40us(250 ); //retrasa 10 ms para eliminar la fluctuación

if(key1==0) //determina nuevamente si se presiona la tecla 1

{

while(!key1); // Determina si la tecla key1 está liberada

delay40us(250); //Retraso de 10 ms para eliminar la fluctuación

while(!key1); //Determina nuevamente si la tecla1 está liberada

num++;

}

}

if(num>2) //Presiona el botón 3 veces, la luz del puerto P1 se enciende

{

num = 0;

flag = 1;

P1 = 0 ; //La luz del puerto P1 está encendida, lo que indica que la luz de bajo nivel de salida del puerto P1 está encendida

}

if((key1==0)&&(flag==; 1))

{

demora40us(250

if(key1==0)

{

<); p>mientras(! key1);

delay40us(250);

while(!key1);

bandera = 0;

P1 = 0xff; //La luz indicadora del puerto P1 está apagada y la luz indicadora de alto nivel de salida del puerto P1 está apagada

}

}

}

}

}

}