资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
10.2 键盘接口原理10.2.1 键盘输入应解决的问题键盘输入的特点键盘:一组按键开关的集合。行线电压信号通过键盘开关机械触点的断开、闭合,其输出波形如图10-6。,图10-6,P.166,行线上拉电阻,?,?,?,触点抖动,1.独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可很容易判断那个键被按下。,图10-7独立式键盘工作电路,(适于键数较少、操作快、同时多键动作场合),10.2.2 键盘接口的工作原理 分独立式按键接口和行列式键盘接口。,P.167,程序处理方法与开关量输入相同,2. 行列式(矩阵式)键盘接口,图10-9 44行列式键盘结构(扫描法),适于按键数目较多的场合;可节省很多的I/O口线;同时只会有一个键闭合的场合。,行列式键盘按键的识别方法,a. 扫描法,第1步:识别键盘有无键按下; 驱动所有列线为0,输入各行线电平如果有0,就说明有键按下,如果行线电平全1,则全部无键按下。,第2步:如有键被按下,识别具体的按键。 依序驱动某一列为0 ,其余列均为1 ,输入各行线电平,如果某行线电平为0 ,可确定此行列交叉点处的按键被按下;如果行线电平全为1 则本列无按键按下。,P.168,输出口驱动列线,输入口读取行线电平,第1步:列线输出为全0 ,随后输入行线电平如有0,则0所在的行就是闭合的按键所在行;无0则无键闭合。第2步:行线输出为全0 ,随后输入列线电平如有0,则0所在的列就是闭合的按键所在列;无0则无键闭合。结合上述两步,可确定按键所在行和列。,图10-10线反转法原理图,b. 线反转法,P.168,PC3PC2PC1PC0PC4PC5PC6PC7,实验板44键盘连接82C55的端口线,采用线反转法的键盘行线、列线端口各自应当可以在输入与输出方式间切换! 如图:高四位与低四位均可独立改变其输入或输出方式,实验板键盘扫描子程序 (紫) 如TEST2011.ASM所示。 LCALL KEY ;调用键盘扫描子程序 (扫描到按键则在左第3、4位显示“键号、-”),实验板键盘接口设计实例,4X4键盘接口初始为输入,控制口 FEFFH方式字:89H =10001001B,FEFEH,利用82C55的C口高低四位可分别定义为输入或输出,扩展44行列式键盘,以线反转法进行按键的识别及处理,P2.0/A8,【主工作程序中】,KEY:MOV A,#81H;键盘扫描子程序(反转法) MOV DPTR,#0FEFFH MOVX DPTR,A;C口先初始化为高4位输出驱行线、低4位输入列线 MOV DPTR,#0FEFEH MOV A,#00H;键盘行线(高4位)输出驱动全0 MOVX DPTR,A MOVX A,DPTR;输入键盘列线电平(低4位)存60H单元 MOV 60H,A MOV A,#88H;C口改初始化为高4位输入行线、低4位输出驱列线 MOV DPTR,#0FEFFH MOVX DPTR,A MOV DPTR,#0FEFEH MOV A,#00H;键盘列线(低4位)输出驱动全0 MOVX DPTR,A MOVX A,DPTR;输入键盘行线电平(高4位)在A中 ANL 60H,#0FH;列线电平值保留所在的低4位 ANL A,#0F0H;行线电平值保留所在的高4位 ORL 60H,A ;两次输入的列线电平值、行线电平值组合成8位行列码,TEST2011.ASM 键盘扫描子程序-1,MOV 61H,#00H;置键号初值为00H MOV R5,#10H;设定最多进行16次的键码查表 MOV DPTR,#KEY_N;键码表首地址 KY:MOV A,#00H;A清0 MOVC A, A + DPTR;查表读取键码表中当前位置键码 CJNE A,60H,NK;与8位行列码比较,不同则转NK查下一个 SJMP KN;相同则转KN根据已获取的键号进行相应处理 NK:INC 61H;键号加1 INC DPTR;指向键值表下一个位置 DJNZ R5,KY;未查完,继续 RET;查完,说明无按键或出现异常行列码则返回 (键号=10H)KEY_N:DB 0EEH,0EDH,0EBH,0E7H ;键码表。K0,K1,K2,K3键码 DB 0DEH,0DDH,0DBH,0D7H ;K4,K5,K6,K7键码 DB 0BEH,0BDH,0BBH,0B7H ;K8,K9,K10,K11键码 DB 7EH,7DH,7BH,77H ;K12,K13,K14,K15键码,TEST2011.ASM 键盘扫描子程序-2,00H + 键号+KEY_N,KN:MOV A,61H ;根据查表获得的键号00H0FH之一转向相应处理程序 MOV B,#05H ;转移表中每个键号处理程序占5个地址单元 MUL AB MOV DPTR,#K0 JMP A+DPTR ;转向对应的键号处理程序 K0:MOV 35H,#0 ;各键号处理程序:将键号送35H单元(使键号显示在左第三位) SJMP RT0 K1:MOV 35H,#01H SJMP RT0 K2:MOV 35H,#02H SJMP RT0 K3:MOV 35H,#03H SJMP RT0 K4:MOV 35H,#04H SJMP RT0 K5:MOV 35H,#05H SJMP RT0 K6:MOV 35H,#06H SJMP RT0,TEST2011.ASM 键盘扫描子程序-3,类似于高级语言中的开关语句,K7:MOV 35H,#07H SJMP RT0 K8:MOV 35H,#08H SJMP RT0 K9:MOV 35H,#09H SJMP RT0 KA:MOV 35H,#0AH SJMP RT0 KB:MOV 35H,#0BH SJMP RT0 KC:MOV 35H,#0CH SJMP RT0 KD:MOV 35H,#0DH SJMP RT0 KE:MOV 35H,#0EH SJMP RT0 KF:MOV 35H,#0FH RT0:MOV 34H,#10H ;让左边第四位显示-,键号显示借用了小时的显示位置 RET,TEST2011.ASM 键盘扫描子程序-4,修改键盘扫描子程序功能:改为扫描到按键则显示H与键号于最右边两位;通过调整键码表实现该44键盘每一行4个键的定义左右对调,即原 键0改为3 、原键1改为2 、原键2改为1 、原键3改为0 ,其他行以此类推。,键盘扫描程序其他功能需求:按键闭合动作、释放动作的判别及处理;按键闭合、释放时的触点抖动消除功能;(如:每10mS扫描一次,扫描到按键动作延迟20mS后再确认等),
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号