请问如何用单片机 获取矩阵键盘各按键的按下与松开的状态

 我来答
百长平位寒
2019-11-15 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:753万
展开全部
用按键等待程序
,把第二次判断有无按键按下的if语句变为
while(P1!=0xf0);
//若按键一直处于按下状态,则等待按键释放
;若按键释放,则往下执行
Key_Value
=
Keyscan();
SBUF=Key_Value;
这样,把主循环while(1)变为
while(1)
{
P1
=
0xf0;
if(P1
!=
0xf0)
//判断有无按键按下
{
Delay_1ms(20);
//按键消抖
while(P1!=0xf0);
//若按键一直处于按下状态,则等待按键释放
;若按键释放,则往下
执行
Key_Value
=
Keyscan();
SBUF=Key_Value;
}
}
但看了你的程序

虽然不知道你的按键扫描程序keyscan()写的怎么样,但是按照一般思路,按键消抖都在按键扫描程序里面,你这里把按键扫描程序
Key_Value
=
Keyscan();
SBUF=Key_Value;
放在目标执行程序位置,结构上感觉冗余了,希望能帮到你!
易乐悦0Io
2019-04-09 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:553万
展开全部
定时
5ms
检测一次,比较两次的结果,
无论是按下、还是释放,都可以检测出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式