Red de conocimiento informático - Computadora portátil - Problema de programación de pieza de botón independiente del microcontrolador 51

Problema de programación de pieza de botón independiente del microcontrolador 51

Hola:

El programa se ejecuta así:

Primero imagina la estructura del botón independiente en tu mente. Cuando no está presionado, P3 está conectado. a una resistencia pull-up externa, por lo tanto, la entrada siempre es 1. Cuando se presiona el botón, cae al suelo y la entrada IO del botón correspondiente es 0.

Luego, primero configúrelo. IO como entrada, y cuando no se presiona, las lecturas son todas 1, 0xff. Cuando se presiona un botón, se lee como 0, así que use if (KeyPort! = 0xff) para determinar si hay entrada, luego elimine la fluctuación y luego continúe juzgando si la entrada todavía se está ingresando. Si todavía se ingresa, significa que no es causada por la fluctuación, y luego lea los 5 bits inferiores del puerto P3. data (probablemente sea su interfaz de clave independiente) y asígnelo a keyvalue; while ((KeyPort & 0x1f)!=0x1f) significa que si continúa presionando, la entrada de datos por P3 definitivamente permanecerá sin cambios, entonces la condición es verdadera , y el bucle es interminable. Si se libera, P3 será todo 1, que es igual a 0x1f en este momento, por lo que el bucle finaliza y se realiza el procesamiento de la clave.

Finalmente, es el núcleo del botón. Cuando se presiona P3.0, el valor correspondiente es 11111110, entonces el valor del valor clave es 11110=0x1e. Si se presiona P3.1, entonces. El valor correspondiente es 11111101, luego el valor del valor clave es 11101 = 0x1d, y así sucesivamente. 5 claves corresponden a 5 valores en su pregunta.

No sé cómo responder.

Espero que mi respuesta te pueda ayudar.