课本上的键盘扫描方法不能说是尽善尽美,从易懂性、成本、程序难易程度等方面综合看应该是不错的方法,给人感觉是已经没有太多的改善空间,至少我是这么认为的。然而前段时间一位***朋友画给我的键盘扫描矩阵电路,让我又一次看到到自己...
——两种键盘扫描方法比较分析
说到键盘扫描,相信大多数人第一反应就是行列矩阵扫描,这样我们可以用相对有限的io口得到尽可能多的按键。键盘扫描是单片机技术的一种基本处理方法,学校的单片机课程都会有相应章节进行阐述,只要按照课本上讲述的方法,一般都能设计出比较可靠的键盘扫描电路与程序。
课本上的键盘扫描方法(见下图接法二)不能说是尽善尽美,从易懂性、成本、程序难易程度等方面综合看应该是不错的方法,给人感觉是已经没有太多的改善空间,至少我是这么认为的。
然而前段时间一位***朋友画给我的键盘扫描矩阵电路(见下图接法二),让我又一次看到到自己的思维还有许多地方被自己的所谓“经验”束缚着。
单纯的从硬件接法看,两种接法并没有明显区别,接法一甚至要复杂一些,但如果结合到键盘扫描的程序来看,就会发现接法一确实更好。
两种接法我都没有把上拉电阻包含进来,来让我们看一下两种接法到底有什么不同:
接法二(教材):
我们熟悉的传统扫键处理电路,假定键盘行列io口标号分别为h1/h2/h3和v1/v2/v3,扫键流程通常如下。
2.1. h1设置为输出,h2/h3和v1/v2/v3设置为输入
2.2. h1分别输出1和0,读v1/v2/v3状态,如果vy状态与h1一致,则认为h1与vy交叉位置的键按下
2.3. h2设置为输出,h1/h3和v1/v2/v3设置为输入
2.4. h2分别输出1和0,读v1/v2/v3状态,如果vy状态与h2一致,则认为h2与vy交叉位置的键按下
2.5. h3设置为输出,h1/h2和v1/v2/v3设置为输入
2.6. h3分别输出1和0,读v1/v2/v3状态,如果vy状态与h3一致,则认为h3与vy交叉位置的键按下
接法一:
新扫键处理电路,假定键盘行列io口标号分别为h1/h2/h3和v1/v2/v3,扫键流程通常如下。
1.1. h1/h2/h3和v1/v2/v3都设置为输入
1.2. 读h1/h2/h3和v1/v2/v3状态,如果hx和vy读到的状态均为0,则认为hx与vy交叉位置的键按下
从上面流程可以看出接法一的程序代码要简单不少,既能减少扫键的代码量,又能加快扫键处理的时间,站在软件的角度看确实要比接法二要好。后来我反思了一下为什么我们教材上的传统处理方法没有采用接法一,虽然接法一软件上要简单一些,但硬件布局要复杂,传统的按键只有两条接线,接法一需要三条接线,所以用传统的按键是无法实现的,但现在许多电子产品的按键都用导电橡胶或锅仔片来实现,所以接法已变得可行。
注:这两种电路对于同时按键达到3个的情况都有可能形成错误的按键逻辑。
电力通信的概念
区块链技术改变了人与人之间的信任
5G在无人机领域的应用
离子风机和静电发生器有什么区别
智慧能源管控系统开发智能工厂管控软件开发
工程师,你还局限于教材经验吗?
工位呼叫ANDON安灯系统拉绳盒
产线工位智能呼叫系统,助力工厂更高效生产!
虹科干货 | HK-TrueNAS版本大揭秘!一文教您如何选择合适的TrueNAS软件
深度解读提高芯片计算的密度晶体管堆叠技术
如何选择优质的防水连接器
RFID系统数据安全防护对策分析
分享一个不错的400W功率放大器电路
保时捷获“中国杰出雇主”认证 LitePoint加速Wi-Fi 6E产品开发
TSMR系列雷达均通过了省部级技术成果鉴定和国家级检测机构的产品检测
智能垃圾回收机器人的应用优势有哪些
HRO(韩荣)公司简介
“xrOS”浮出水面,苹果寻找“下一个iPhone”
光纤激光切割机的切割速度及切割效果
苹果申请类似AirPower的无线充电设备专利