键盘是十分重要的人机对话的组成部分是人向机器发出指令培训讲学.pptVIP

  • 2
  • 0
  • 约3.7千字
  • 约 25页
  • 2019-11-30 发布于天津
  • 举报

键盘是十分重要的人机对话的组成部分是人向机器发出指令培训讲学.ppt

键盘是十分重要的人机对话的组成部分,是人向机器发出指令、输入信息的必需设备。 1、键的特性 键盘是由若干独立的键组成,键的按下与释放是通过机械触点的闭合与断开来实现的,因机械触点的弹性作用,在闭合与断开的瞬间均有一个抖动过程 。抖动必须消除,去抖动的方法主要有以下两种:;硬件去抖动 软件去抖动 ;硬件取抖电路;2、键盘的形式 键盘的形式有以下两种: 独立式键盘 编码式键盘 (1)独立式键盘 每一个按键的电路是独立的,占用一条数据线 。这种键盘占用硬件资源多,适合少量按键的情况。;独立式键盘与单片机接口;程序框图 ;程序清单: ORG 0030H KB:MOV P1,#0FFH ;置P1口为输入口 MOV A,P1 ;读键状态 CPL A ANL A,#0FH ;屏蔽高4位 JZ KB ;无键闭合则返回 ACALL D10MS ;延时去抖动 MOV A,P1 ;再读键状态 CPL A ANL A,#0FH JZ KB ;无键闭合则返回 CJNE A,#01H,KB01 INC 20H ;K1键闭合,20H单元加1 SJMP KB; KB01:CJNE A,#02H,KB02 DEC 20H ;K2键闭合,20单元减1 SJMP KB KB02:CJNE A,#04H,KB03 MOV 21H,#00H ;K3键闭合,21H单元清0 SJMP KB KB03:CJNE A,#08H,KB MOV 21H,#0FFH ;K4键闭合,21H单元置FF SJMP KB ;若有两键以上闭合则返回 END;矩阵式键盘结构;扫描原理: 首先确定是否有键闭合 然后逐一扫描以进一步确定是哪一键闭合 以4×4键盘为例: (1)判断是否有键按下:使列线D0~D3都输出0,检测行线D4~D7的电平。如果D4~D7上的电平全为高,则表示没有键被按下。如果D4~D7上的电平不全为高,则表示有键被按下。 (2)扫面按键键值:如果没有键闭合,就返回扫描。如果有键闭合,在进行逐列扫描,找出闭合键的键号。先使D0=0,D1~D3=1,检测D4~D7上的电平,如果D4=0,表示K1键被按下;同理,如果D5~D7=0,分别表示K5、K9、K13键被按下;如果D4~D7=1,则表示这一列没有键被按下。再使D1=0,D0、D2、D3为1,对第二列进行扫描,这样依次进行下去,直到把闭合的键找到为止。 ;矩阵式键盘与单片机接口;按键及相关说明;一、程序扫描方式  三个步骤: 判断有无键按下; 软件延时10ms去抖动; 求键的位置(行、列)。 ;程序清单: KSCAN: ACALL KEYS1   ;调用判键闭合子程序 JNZ KEY1   ;(A)0有键闭合则转至去抖动 AJMP RETURN  ;无键闭合则返回 KEY1: ACALL D10MS   ;调用10ms延时程序 ACALL KEYS1   ;再次调用判键闭合子程序 JNZ KEY2   ;确认有键闭合,开始扫描 AJMP RETURN  ;无键闭合则返回 KEY2: MOV R2,#0FEH ;送首列扫描字 MOV R4,#00H ;送首列号 KEY0: MOV A,R2 MOV P1,A MOV A,P1 ;扫描字从P1口送出 JB ACC.4,LINE1 ;第1行无键闭合,转第2行 MOV A,#00H ;第1行首键号送A AJMP KPV ;转键值计算程序;LINE1: JB ACC.5,LINE2 ;第2行无键闭合,转第3行 MOV A,#04H ;第2行首键号送A AJMP KPV ;转键值计算程序 LINE2: JB ACC.6,LINE3 ;第3行无键闭合,转第4行 MOV A,#08H ;第3行首键号送A AJMP KPV ;转键值计算程序 LINE3: JB ACC.7,NEXT ;第4行无键闭合,转下1列 MOV A,#0CH ;第4行首键号送A KPV: ADD A,R4 ;计算键值 PUSH ACC KEY3: ACALL KEYS1 ;等待键释放 JNZ KEYS1 POP ACC SETB FLAG ;置有键按下标志 SJMP KEY4 RETURN:CLR FLAG ;清有键按下标志

文档评论(0)

1亿VIP精品文档

相关文档