找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2823|回复: 4
打印 上一主题 下一主题
收起左侧

请问单片机如何实现16个按键两两同时工作

[复制链接]
跳转到指定楼层
楼主
  现要想16个矩阵按键中的任何一个按下不松手,对应的功能在工作,然后再按另外一按键,对应的功能也要工作,请问单片机程序能实现吗,具体思路是怎样的,想了半天,没有任何进展,可怜俺单片机才入门,有没有高手指点一下,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2017-10-17 17:00 | 只看该作者
编这样的程序本身没有什么问题,4个按键就有15种组合,关键是要看实际应用场合才能选择最佳方案。
看我给坛友的回帖http://www.51hei.com/bbs/dpj-93120-1.html

评分

参与人数 1黑币 +30 收起 理由
admin + 30 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:123289 发表于 2017-10-17 19:23 | 只看该作者
这个与你的单片机水平无关,取决你对这件事的构思!
1、两个键都必须有“按键记录”。
2、执行的程序不要“立即”响应,要留有判断、识别“按键记录”的时间。
3、对事件的处理上,采用轮扫方式,即要保证不要死在一个事件中(无死等语句,含条件死等,如果必须死等某个条件,要给个时限,限时退出)。这样就能保证两个事件的处理,都会被执行到。
回复

使用道具 举报

地板
ID:111634 发表于 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案例,用于仿真实验操作,电路与程序真实可靠可信可行。书中电路和程序设计有详细说明,程序语句条条有注解。
回复

使用道具 举报

5#
ID:151348 发表于 2017-10-18 17:53 | 只看该作者
推荐你用状态机,每个按键都有自己所处状态的标志,而且相互不干扰
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表