矩阵键盘问题
发布网友
发布时间:2022-04-24 03:36
我来回答
共1个回答
热心网友
时间:2023-10-25 08:47
1、main()当中,return(b)这行去掉。main是主函数,不允许返回东西。而且b生存期和作用域仅在key中。我觉得程序编译可能有问题吧?
2、其他问题不大。主程序改成如下,再测试看看,测P3.7能否变化
main()
{
while(1)
{
while(key()!=10) LED=1;
LED=0;
}
}
如果灯跳变了,检查硬件连接。追问KEY = 0xf0;//将键盘口置为11110000
DELAY_MS (2);//延时20毫秒
c = KEY;//将第二次取得值放入寄存器c
加上延迟就可以了。猜想是单片机的P1口还没有达到稳定状态的缘故吧。
追答跟你学了一招。行列线上的分布电容过大、上拉电阻值过小造成的。使得单片机在1uS左右没有读到正确的电平。解决了就好。