1、第三章 输入 /输出设备及接口技术3.2 键盘接口技术常用的按键,都存在两种状态: 断开和闭合 当某一键被按下,则为闭合状态键被释放,则为断开状态键盘电路的功能就是将键的闭合和断开状态用“ 0” 和 “ 1” 来表示,然后通过数据线送到 CPU内进行键的识别若键盘闭合键的识别是由专用 硬件 实现的,则称为 编码键盘 ;若用 软件 实现闭合键识别的,则称为 非编码键盘 。非编码键盘又分为行列式和独立式两种。本节我们主要讨论非编码键盘的工作原理、接口技术和程序设计。一 键盘工作原理1. 键盘的可靠性按键的机械抖动: 在实际按键操作中,由于按键动作是一个机械动作,键在闭合或断开的过程会发生抖动 键抖
2、动时间的长短与开关的机械特性有关,一般为 5ms 10ms左右,然后达到稳定状态。键盘接口 :为了保证 CPU对键的闭合作一次且仅作一次处理,必须去除抖动,使 CPU在键的稳定闭合或断开状态时读取键值抖动时间 10ms开关动作时间 100ms“ 1 ”“ 0 ” 10ms消除抖动的方法硬件去抖: 常用双稳态电路、单稳态电路和 RC积分电路三种方法软件去抖: 在键盘接口中,另一种普遍使用的是采用 软件延时 来完成消抖的方法。基本思想是:在检测到按键按下或释放时,记录按键的状态,延时大约 10ms,再次检测按键的状态,若与前一次的状态相同,说明按键的状态已稳定,可进行处理;否则,表示键的状态不稳定
3、,可能是误动作,不应被处理二 、独立式按键1、接口设计P1.0P1.1P1.7+5v(1) 接口与数据每个按键单独占有一根I/O接口引线。输入每根 I/O接口引线的信号对应某个按键状态。2、独立式按键接口程序设计键盘处理程序任务1)键输入检查键盘是否有键被按下,消除按键抖动。确定被按键的键号。硬件电路消除抖动或软件消除抖动。2)键译码确定键值3)键处理根据键值转移到不同程序段。若键 值属于数字、字符键,则调用显示数字和字符的子程序。若键值属于功能键,则进行多分支转移,执行各个功能程序段。延时等待 10ms仍有按键信号?Y有按键信号? NYN键盘处理按键释放? NY3、独立式按键接口程序KEY:
4、SETB P1.0JB P1.0, KEY ;有键按下 P1.0=0KEY1: ACALL DELAY ;延时,防止抖动SETB P1.0 JB P1.0, KEY ;键是否仍按下?KEY2: JNB P1.0, KEY2 ;消除了连击功能ACALL PROGRAM ;RETKEY:MOV P1, #0FFHMOV A,P1ANL A,#03HCJNE A,#03H,KEY1KEY3: CLR PSW.5RETKEY1: LCALL DELAYMOV P1, #0FFHMOV A,P1ANL A,#03HCJNE A,#03H,KEY2SJMP KEY3KEY2: JB ACC.0, KEY4MOV A,#0SJMP KEY5KEY4: JB ACC.1, KEY3MOV A,#1KEY5: PUSH ACCKEY6: MOV P1, #0FFHMOV A,P1ANL A,#03HCJNE A,#03H,KEY6LCALL DELAYMOV P1, #0FFHMOV A,P1ANL A,#03HCJNE A,#03H,KEY6POP ACCSETB PSW.5RET