¡Preguntas de ejemplo sobre programación en lenguaje C de microcontroladores! ¡Utilizo un teclado matricial para controlar las luces LED! ¡Pero no hay respuesta al presionar el teclado!
La funciónkeyscan() es incorrecta y se ha modificado de la siguiente manera.
Además, el cartel decía que la salida es el puerto P1, pero no hay ningún circuito P1 en el diagrama de circuito proporcionado.
ucharkeyscan()
{
P3 = 0x7f;
temp=P3;
temp= temp & 0x0f;
while(temp != 0x0f) {
retraso(5);
temp = P3;
temp = temp & 0x0f;
while(temp != 0x0f) {
temp = P3;
switch(temp) {
caso 0x7e: num = 1; romper;
caso 0x7d: num = 2; romper;
caso 0x7b: num = 3;
caso 0x77 : num = 4; romper;
}
romper;
}
while(temp != 0x0f) {
temp = P3;
temp = temp & 0x0f;
}
descanso;
}
return num;
}
El programa escrito por el cartel solo puede reconocer 4 botones y mostrar 4 estados diferentes.
Si desea identificar 16 claves, se recomienda mirar:
/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item /7ec90efb831f6bd4b58f315e.html