Red de conocimiento informático - Computadora portátil - Cómo mostrar el tubo digital normalmente sin parpadear cuando se presionan las 51 teclas del microcontrolador y lograr una pulsación larga y continua

Cómo mostrar el tubo digital normalmente sin parpadear cuando se presionan las 51 teclas del microcontrolador y lograr una pulsación larga y continua

Hola, también encontré un problema de este tipo. Después de una semana de investigación, solicité los resultados obtenidos por mis predecesores. Espero que te sean útiles

char scan_k(char k)

.

{

int i=0; //definir una variable que se utilizará para acumular el tiempo de pulsación larga

if ((KEY1amp;amp;.KEY2amp; amp;KEY3amp ;amp;KEY4amp;amp;KEY5amp;amp;KEY6)==0)//Si se presiona una tecla

{

while(!KEY1)//Si se presiona la tecla 1

{

xianshi(neirong); //ejecutar visualización

delay_ms(1); //retraso

i;/ /añadir 1 a i cada vez

if(igt;=1000)

{

k=11; //Tecla 1 pulsada prolongadamente

}

else

{

k=1; //tecla1 pulsación corta

}

}

i=0;

mientras(!KEY2)//si se presiona la tecla2

{

xianshi(neirong );/ /ejecutar display

delay_ms(1); //retraso

i ; //agregar 1 a i cada vez

if(igt;= 1000)

{

k=21; //Presione prolongadamente el botón 2

}

else

{

k=2; //Pulsación corta de la tecla 2

}

}

i=0; antes de la siguiente tecla, presione el valor

while(!KEY3)//si se presiona la tecla 3

{

xianshi(neirong); //ejecuta la pantalla.

delay_ms(1); // Retraso

i

}

i=0; while(!KEY4 )//si se presiona la tecla 4

{

xianshi(neirong); //ejecuta la visualización

delay_ms(1); retraso

i;//agregue 1 a i cada vez

if(i gt;=1000)

{

k= 41;// Pulsación larga del botón 4

}

else

{

k=4 //Pulsación corta del botón 4<; /p>

}

}

i=0;

mientras(! KEY5)//Si se presiona la tecla KEY5

{

xianshi(neirong); //Visualización de ejecución

delay_ms(1); / p>

i; //Cada vez que presionas i veces, agrega 1 a ti mismo

if(igt;=1000)

{

k=51; //Pulsación larga de la tecla 5

}

else

{

k=5; //Presione brevemente el botón 5

}

}

i =0;

while(!KEY6)//Si se presiona la tecla 6

{

xianshi( neirong); //ejecutar visualización

delay_ms(1); //retraso

i ; // Agrega 1 a i cada vez

if(igt;=1000)

{

k=61; // Pulsación larga de la tecla 6

}

else

{

k= 6; //Presione brevemente el botón 6

}

}

i=0;

}

return k; // Devuelve el valor de la clave

}

El código anterior no incluye el sistema operativo y no incluye la interrupción. Ajuste el tiempo de pulsación prolongada que desee de acuerdo con el. situación real. Cuando se presiona el botón, si el tiempo de fluctuación es demasiado largo, el tubo digital obviamente parpadeará o se atenuará. Ajústelo según sea necesario.

.