标题: 请问单片机如何实现16个按键两两同时工作 [打印本页]

作者: 怪怪爱玩    时间: 2017-10-17 15:09
标题: 请问单片机如何实现16个按键两两同时工作
  现要想16个矩阵按键中的任何一个按下不松手,对应的功能在工作,然后再按另外一按键,对应的功能也要工作,请问单片机程序能实现吗,具体思路是怎样的,想了半天,没有任何进展,可怜俺单片机才入门,有没有高手指点一下,谢谢

作者: wulin    时间: 2017-10-17 17:00
编这样的程序本身没有什么问题,4个按键就有15种组合,关键是要看实际应用场合才能选择最佳方案。
看我给坛友的回帖http://www.51hei.com/bbs/dpj-93120-1.html
作者: yzwzfyz    时间: 2017-10-17 19:23
这个与你的单片机水平无关,取决你对这件事的构思!
1、两个键都必须有“按键记录”。
2、执行的程序不要“立即”响应,要留有判断、识别“按键记录”的时间。
3、对事件的处理上,采用轮扫方式,即要保证不要死在一个事件中(无死等语句,含条件死等,如果必须死等某个条件,要给个时限,限时退出)。这样就能保证两个事件的处理,都会被执行到。
作者: zl2168    时间: 2017-10-17 20:39
本帖最后由 zl2168 于 2017-10-17 20:44 编辑

两个按键同时按下时就响应,一个按键按下时不响应,在一定延时时间内等待另一个按键按下,然后响应。
给你个参考案例,注意有些区别,下述案例是一个shift按键与其他按键同时按下,你的案例是任意一个两个按键同时按下,不过,原理相同。
实例74  键扩展Shift功能
实例74 按键扩展shift功能.7z (23.73 KB, 下载次数: 4)


Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。书中电路和程序设计有详细说明,程序语句条条有注解。

作者: imxuheng    时间: 2017-10-18 17:53
推荐你用状态机,每个按键都有自己所处状态的标志,而且相互不干扰




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1