新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 经典案例分享:两种键盘扫描方法比较分析

经典案例分享:两种键盘扫描方法比较分析

作者:时间:2012-05-15来源:网络收藏

说到,相信大多数人第一反应就是行列矩阵扫描,这样我们可以用相对有限的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交叉位置的键按下

  从上面流程可以看出接法一的程序


上一页 1 2 下一页

关键词: 键盘扫描

评论


相关推荐

技术专区

关闭