按键按照结构原理可分为两类:一类是触点式开关按键,如机械开关、导电橡胶开关等;一类是无触点式开关按键,如电气式按键、磁感应按键等。单片机应用系统的键盘大都采用机械式按键。
键输入原理键盘的按键都是以其状态来设置控制功能或输入数据的。当某个键按下时,计算机应用系统应完成对按键的识别及所设定的功能。键盘通过接口电路与CPU相连,CPU可通过查询或中断方式了解有无按键功能,并检查是哪一个按键按下,并将该键号送入累加器ACC中,然后通过跳转指令转入执行该键的功能程序,执行完毕后在返回主程序。
每一个按键连接一根I/O口线,另一端共地,各个按键之间彼此相互独立。当某一按键按下时,它所对应的I/O口线的电平变成低电平,读入单片机的值就是逻辑0,表示按键闭合;若无按键按下,则所有的I/O口线都是高电平。
矩阵式键盘由行线和列线组成,按键位于行、列的交叉点上。
扫描原理(4*4矩阵键盘,高四位为行,低四位为列)
1:逐行扫描:高四位轮流输出低电平,当低四位接收到的数据不全为1,就说明有按键按下,然后通过接收到的数据是哪一位为0来判断哪一个按键被按下。
2:行列扫描:高四位全部输出低电平,低四位输出高电平,当接收到的数据,低四位不全为高电平,说明有一列按键被按下,再反过来高四位输出高电平,低四位输出低电平,就可以判断哪一行按键被按下。
按键在闭合和断开的时候,触点会存在抖动现象
硬件消抖电路:利用单稳态电路或RS触发器,从根本上避免电压抖动的产生。
软件消抖电路:在按键的按下和释放时采用软件延时的方法来消除抖动的影响。
软件消抖程序
step1:确定是否按下按键
step2:消抖(延时)
step3:消抖后再次确定是否按下按键
step4:确定是否松开
常用的方法有两种:一种是用专用硬件电路来识别,把这种键盘称为编码键盘。另一种是用软件的方法来识别,把这种键盘称为非编码键盘。单片机系统常采用非编码键盘。键码的识别可以采用随机扫描、定时扫描或中断扫描方式来完成。
键盘程序1)检测有无按键按下,并消除按键抖动的影响。
2)有可靠的逻辑处理办法。每次只处理一个按键,其间任意其他按键的操作对系统不产生影响,且无论一次按下多长时间,系统只执行一次按键功能程序。
3)准确输出按键值,以满足跳转指令的要求。