2)扫描按键矩阵
这种按键输入方式很巧妙地利用了IO 资源,使得8 个IO 可以实现16 键键盘。它
的示意图如下:
这种按键输入方式比上面的直接按键方式从原理与控制上都比上面的直接按键要
复杂。它通过IO 的扫描来获取键值,其实扫描过程非常简单,过程如下:
KEY1~KEY4 对应于IO0~IO3,KEY5~KEY8 对应于IO4~IO7。
1.将IO0~IO3 置高,将IO4 置低,IO5、IO6、IO7 置高,读取IO0~IO3。第一列的某
个按钮按下后,使相应的两个触点接通,相应行上的IO 可以读到低电平。
2.将IO0~IO3 置高,将IO5 置低,IO4、IO6、IO7 置高,读取IO0~IO3。第一列的某
个按钮按下后,使相应的两个触点接通,相应行上的IO 可以读到低电平。
3.将IO0~IO3 置高,将IO6 置低,IO4、IO5、IO7 置高,读取IO0~IO3。第一列的某
个按钮按下后,使相应的两个触点接通,相应行上的IO 可以读到低电平。
4.将IO0~IO3 置高,将IO7 置低,IO4、IO5、IO6 置高,读取IO0~IO3。第一列的某
个按钮按下后,使相应的两个触点接通,相应行上的IO 可以读到低电平。
循环此过程可以不断读取按键键值。
在实际的应用中,这个扫描过程通常是放在定时器的中断服务程序中去完成的,
通过全局变量将键值返回到其它函数中去。当然,作为学习其扫描过程,也可以将扫
描放在主函数中直接来完成。
在上面介绍的按键输入方式中,读者可以看到,IO 都是以低电平作为检测电平,那这
是为什么呢?这是因为单片机IO 读取电平状态的时候,读取低电平比高电平要稳定。也下
是因为这一原因外部中断以低电平或下降沿来作为其中断触发条件,以保证中断的可*性。
从上图中可以到五向键的使用方法其实与传统按键中的直接按键是一样的。
3、模拟按键
上面介绍的按键输入方式都是采用数字信号来进行按键识别的,它的缺点就是需要
较多的IO,同时按键的数量也有限。而这里要介绍的采用模拟信号对按键进行识别的
方法则可以节省IO,而按键的扩展也十分方便。当然,它的实现需要相应的硬件(数
模转换器)支持。
原理其实非常简单,在串接的等值电阻间接上按键,按键另一端接到地。这
样某两个电阻间因按键接通而接到地时,在模数转换器的输入端会得到不同的电压值,
这些电压值依次为1/2 VCC、2/3VCC……,按照这些电压值就可以识别出所按下的按键。
按键的最大数量起决于模数转换器的精度。
由科通芯城(www.cogobuy.com)中国首个ic元器件自营电商整理编辑
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |