7.1键盘接口原理键盘是十分重要的人机对话的组成部分,是人向机器发出指令、输入信息的必需设备。键盘:一组按键开关的集合。按键按照接口原理可分为编码键盘与非编码键盘两类。按键为常开型按钮开关,可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。1.键输入原理:通过按键的接通与断开,产生两种相反的逻辑状态:低电平“0”与高电平“1”。有电平变化时,有软件控制完成按键所设定的功能。因机械触点的弹性作用,在闭合与断开的瞬间均有一个抖动过程。抖动时间<10ms开关动作时间>100ms“1”“0”<10ms消除抖动(1).硬件去抖动在键数较少时可用硬件方法消除键抖动。右图所示的RS触发器为常用的硬件去抖电路。(2).软件去抖动基本思想:检测到有键按下,键对应的行线为低,软件延时10ms后,行线如仍为低,则确认该行有键按下。当键松开时,行线变高,软件延时10ms后,行线仍为高,说明按键已松开。采取以上措施,躲开了两个抖动期的影响。2.键盘处理程序任务1)键输入检查键盘是否有键被按下,消除按键抖动。确定被按键的键号,获取键号。硬件电路消除抖动或软件消除抖动。2)键译码键号为键盘位置码,根据键号查表得出被按键的键值。3)键处理根据键值转移到不同程序段,执行各个功能程序段。键盘的形式有以下两种:独立式键盘、编码式键盘7.1.2独立式键盘接口每一个按键的电路是独立的,占用一条数据线。通过检测输入线的电平状态可很容易判断那个键被按下。这种键盘占用硬件资源多,适合少量按键的情况。例单键管理程序•KEY:SETBP1.0•JBP1.0,KEYACALLDELAY10ms;防止抖动•JBP1.0,KEY;键是否释放•JNBP1.0,$;消除连击•ACALLPROGRAM;•AJMPKEY例:每按下一次开关SP1,计数值加1,通过AT89S52单片机的P1端口的P1.0到P1.3显示出其的二进制计数值。•ORG0•START:MOVR2,#00HMOVA,R2•CPLA•MOVP1,A•REL:JBP3.7,RELLCALLDELAY10MS•JBP3.7,REL•INCR2•MOVA,R2•CPLA•MOVP1,A•JNBP3.7,$•SJMPREL•DELAY10MS:•MOVR6,#20•L1:MOVR7,#250•DJNZR7,$•DJNZR6,L1•RET•END多键处理程序P2037.1.2.行列式(矩阵式)键盘接口用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。如下图所示。按键数目较多的场合,行列式键盘与独立式键盘相比,要节省很多的I/O口线。(1)行列式键盘工作原理无键按下,该行线为高电平,当有键按下时,行线电平由列线的电平来决定。由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。(2)按键的识别方法a.扫描法识别键盘有无键被按下的方法,分两步进行:第1步:识别键盘有无键按下(去抖动);KEYBOARD:LCALLKB_SCAN;调用键盘扫描程序JZKEYBOARD;若无按键动作,循环扫描…………………………KB_SCAN:;P2口的低四位口线处于接收状态MOVP2,#00001111BMOVA,P2XRLA,#00001111B;若有按键动作则A不全为0,若没有动作则A中全为0RET第2步:如有键被按下,识别出具体的按键。即先把某一列置低电平,其余各列为高电平,检查各行线电平的变化,如果某行线电平为低,可确定此行列交叉点处的按键被按下。上述方法称为扫描法。•程序扫描方式•三个步骤:判断有无键按下;软件延时10ms去抖动;求键的位置(行、列)。有键闭合吗?开始软件延时10ms有键闭合吗?键释放了吗?逐列逐行扫描确定键的位置调键值处理程序返回YYYNNN程序键盘扫描程序框图矩阵式键盘与单片机接口