标题:
4X4键盘扫描电路分析
[打印本页]
作者:
葛靖青
时间:
2010-11-2 16:12
标题:
4X4键盘扫描电路分析
面是书上习惯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状态变换就很复杂。
如果要使用查表法的话就完全没有这种问题,如果有不同的见解请提出来一同探讨。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1