找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6614|回复: 0
收起左侧

4X4键盘扫描电路分析

[复制链接]
ID:26661 发表于 2010-11-2 16:12 | 显示全部楼层 |阅读模式
面是书上习惯4X4键盘扫描电路用法:软件部分请参考:4X4键盘扫描程序

上面4X4键盘扫描电路是比较常见的,发表一下个人意见:

1、ABCD组的扫描线上可以不加上拉电阻,可以使用AVR单片机的内部上拉电阻。

2、AVR单片机的I/O口为标准I/O口,可以高低电平驱动输出,键盘扫描线直接与I/O口相连存在一定的风险。

下面为建议使用4X4键盘电路用法:



建议使用上面的4X4键盘接法,用电阻缓冲一下,一来可以防止键盘输出高低电平出现短路,对键盘部分过来的干扰也有好处。



下面再说说软件设计部分:

现在就我知道的键盘一般有两种读取方式,循环扫描法、查表法。

循环扫描法:4X4键盘分为4行和4列,CPU对每一条扫描线进行读取,然后计数得到按键值,这种方式用的比较多。

查表法:对行和列读取一次,然后通过查表得到按键值。程序很简单,建议使用这种方式。

循环扫描法在C51上应用很多,可以正常使用。但在AVR单片机上采用这种方式就不大好了,因为AVR单片机输出的高低电平都有相同驱动能力。按照上面图纸,如果S1S4同时按下的话,就会出现短路现象,原理如下图:



如果使用第二张图纸的接法可以得到一减经,但错误现象还是存在。最主要的是键盘上不可以同时出现两个不同的电平,这样才不会出现短路。但这要是在循环扫描法上实现起来就话,I/O状态变换就很复杂。

如果要使用查表法的话就完全没有这种问题,如果有不同的见解请提出来一同探讨。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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