片机学习17键盘接口优秀

上传人:大米 文档编号:592872505 上传时间:2024-09-23 格式:PPT 页数:11 大小:203.50KB
返回 下载 相关 举报
片机学习17键盘接口优秀_第1页
第1页 / 共11页
片机学习17键盘接口优秀_第2页
第2页 / 共11页
片机学习17键盘接口优秀_第3页
第3页 / 共11页
片机学习17键盘接口优秀_第4页
第4页 / 共11页
片机学习17键盘接口优秀_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《片机学习17键盘接口优秀》由会员分享,可在线阅读,更多相关《片机学习17键盘接口优秀(11页珍藏版)》请在金锄头文库上搜索。

1、10.2 10.2 键盘接口原理键盘接口原理10.2.1 10.2.1 键盘输入应解决的问题键盘输入应解决的问题1.1.键盘输入的特点键盘输入的特点2.2.键盘:键盘:一组按键开关的集合一组按键开关的集合。行线电压信号通过键盘开关。行线电压信号通过键盘开关机械触点的断开、闭合,其输出波形如机械触点的断开、闭合,其输出波形如图图10-610-6。图图10-610-6P.166P.166行线行线电阻电阻?触点抖动片机学习17(键盘接口优秀1.1.独立式键盘接口独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过各键相互独立,每个按键各接一根输入线,通过检测输入线检测输入线的电平状态的电平状态

2、可很容易判断那个键被按下。可很容易判断那个键被按下。图图10-710-7独立式独立式键盘工作电路键盘工作电路( (适于键数较少、操作快、同时多键动作场合适于键数较少、操作快、同时多键动作场合) )10.2.2 10.2.2 键盘接口的工作原理键盘接口的工作原理 分分独立式独立式按键接口和按键接口和行列式行列式键盘接口。键盘接口。P.167P.167程序处理方法与开关量输入相同程序处理方法与开关量输入相同片机学习17(键盘接口优秀2. 2. 行列式行列式( (矩阵式矩阵式) )键盘接口键盘接口图图10-9 4410-9 44行列式键盘结构行列式键盘结构(扫描法)(扫描法)适于按键数目较多的场合;

3、适于按键数目较多的场合;可节省很多的可节省很多的I/OI/O口线;口线;同时只会有一个键闭合的场合。同时只会有一个键闭合的场合。行列式键盘按键的识别方法行列式键盘按键的识别方法a. a. 扫描法扫描法第第1 1步:识别键盘有无键按下;步:识别键盘有无键按下; 驱动所有列线为驱动所有列线为00,输入各行线电平如果有,输入各行线电平如果有00,就说,就说明有键按下,如果行线电平全明有键按下,如果行线电平全11,则全部无键按下。,则全部无键按下。第第2 2步:如有键被按下,识别具体的按键。步:如有键被按下,识别具体的按键。 依序依序驱动某一列为驱动某一列为00 ,其余列均为,其余列均为11 ,输入各

4、行线,输入各行线电平,如果某行线电平为电平,如果某行线电平为00 ,可确定此行列交叉点处的按,可确定此行列交叉点处的按键被按下;如果行线电平全为键被按下;如果行线电平全为11 则本列无按键按下。则本列无按键按下。P.168P.168输出口驱动列线输出口驱动列线输输入入口口读读取取行行线线电电平平片机学习17(键盘接口优秀第第1 1步:步:列列线输出为全线输出为全00 ,随后输入,随后输入行行线电平如有线电平如有00,则则00所在的行就是所在的行就是闭合的按键闭合的按键所在行;无所在行;无00则无键闭合。则无键闭合。第第2 2步:步:行行线输出为全线输出为全00 ,随后输入,随后输入列列线电平如

5、有线电平如有00,则则00所在的列就是所在的列就是闭合的按键闭合的按键所在列;无所在列;无00则无键闭合。则无键闭合。结合上述两步,可确定按键所在行和列。结合上述两步,可确定按键所在行和列。图图10-1010-10线反转法原理图线反转法原理图 b. b. 线反转法线反转法 P.168P.168PC3PC2PC1PC0PC4PC5PC6PC7实验板实验板44键盘键盘连接连接82C55的端口线的端口线 采用线反转法的键盘行线、采用线反转法的键盘行线、列线端口各自应当可以在输列线端口各自应当可以在输入与输出方式间切换入与输出方式间切换! 如图如图: :高四位与低四位均可高四位与低四位均可独立改变其独

6、立改变其输入或输出方式输入或输出方式片机学习17(键盘接口优秀 实验板键盘扫描子程序实验板键盘扫描子程序 (紫)(紫) 如如TEST2011.ASMTEST2011.ASM所示。所示。 LCALL KEY ; LCALL KEY ;调用键盘扫描子程序调用键盘扫描子程序 ( (扫扫描描到到按按键键则则在在左左第第3 3、4 4位位显显示示“键键号号、- -”) )实验板键盘接口设计实例实验板键盘接口设计实例4X44X4键盘接口键盘接口初始为输入初始为输入控制口控制口 FEFFHFEFFH方式字:方式字:89H89H =10001001B =10001001BFEFEHFEFEH 利用利用82C5

7、582C55的的C C口高低四位可分别定义为口高低四位可分别定义为输入或输出,扩展输入或输出,扩展4444行列式键盘,以行列式键盘,以线线反转法反转法进行按键的识别及处理进行按键的识别及处理P2.0/A8P2.0/A8【主工作程序中主工作程序中】片机学习17(键盘接口优秀KEY:KEY:MOV A,#81HMOV A,#81H; ;键盘扫描子程序键盘扫描子程序(反转法)(反转法) MOV DPTR,#0FEFFHMOV DPTR,#0FEFFH MOVX DPTR,A MOVX DPTR,A;C;C口先初始化为高口先初始化为高4 4位输出驱行线、低位输出驱行线、低4 4位输入列线位输入列线 M

8、OV DPTR,#0FEFEHMOV DPTR,#0FEFEH MOV A,#00H MOV A,#00H; ;键盘键盘行线行线( (高高4 4位位) )输出输出驱动全驱动全00 MOVX DPTR,A MOVX DPTR,A MOVX A MOVX A,DPTR,DPTR; ;输入键盘输入键盘列线电平列线电平( (低低4 4位位) )存存60H60H单元单元 MOV 60H,AMOV 60H,A MOV A,#88H MOV A,#88H;C;C口改初始化为高口改初始化为高4 4位输入行线、低位输入行线、低4 4位输出驱列线位输出驱列线 MOV DPTR,#0FEFFHMOV DPTR,#0

9、FEFFH MOVX DPTR,A MOVX DPTR,A MOV DPTR,#0FEFEH MOV DPTR,#0FEFEH MOV A,#00H MOV A,#00H; ;键盘键盘列线列线( (低低4 4位位) )输出输出驱动全驱动全00 MOVX DPTR,A MOVX DPTR,A MOVX A,DPTR MOVX A,DPTR; ;输入键盘输入键盘行线电平行线电平( (高高4 4位位) )在在A A中中 ANL 60H,#0FHANL 60H,#0FH; ;列线电平值保留所在的低列线电平值保留所在的低4 4位位 ANL A,#0F0HANL A,#0F0H; ;行线电平值保留所在的高

10、行线电平值保留所在的高4 4位位 ORL 60H,A ;ORL 60H,A ;两次输入的列线电平值、行线电平值组两次输入的列线电平值、行线电平值组合成合成8 8位行列码位行列码 TEST2011.ASM TEST2011.ASM 键盘扫描子程序键盘扫描子程序-1-1片机学习17(键盘接口优秀 MOV 61H,#00H MOV 61H,#00H; ;置键号初值为置键号初值为00H00H MOV R5,#10H MOV R5,#10H; ;设定最多进行设定最多进行1616次的键码查表次的键码查表 MOV DPTR,#MOV DPTR,#KEY_NKEY_N; ;键码表首地址键码表首地址 KY:MO

11、V A,#00H KY:MOV A,#00H;A;A清清0 0 MOVC A, A + DPTRMOVC A, A + DPTR; ;查表查表读取键码表中当前位置键码读取键码表中当前位置键码 CJNE A,60H,NKCJNE A,60H,NK; ;与与8 8位行列码比较,位行列码比较,不同不同则转则转NKNK查下一个查下一个 SJMP KNSJMP KN; ;相同相同则转则转KNKN根据根据已获取的键号已获取的键号进行进行相应处理相应处理 NK:INC 61H NK:INC 61H; ;键号加键号加1 1 INC DPTR INC DPTR; ;指向键值表下一个位置指向键值表下一个位置 DJ

12、NZ R5,KY DJNZ R5,KY; ;未查完,继续未查完,继续 RET RET; ;查完,说明无按键或出现异常行列码则返回查完,说明无按键或出现异常行列码则返回 ( (键号键号=10H)=10H)KEY_NKEY_N:DB 0EEH,0EDH,0EBH,0E7H:DB 0EEH,0EDH,0EBH,0E7H ; ;键码表键码表。K0,K1,K2,K3K0,K1,K2,K3键码键码 DB 0DEH,0DDH,0DBH,0D7HDB 0DEH,0DDH,0DBH,0D7H ;K4,K5,K6,K7 ;K4,K5,K6,K7键码键码 DB 0BEH,0BDH,0BBH,0B7HDB 0BEH,

13、0BDH,0BBH,0B7H ;K8,K9,K10,K11 ;K8,K9,K10,K11键码键码 DB 7EH,7DH,7BH,77HDB 7EH,7DH,7BH,77H ;K12,K13,K14,K15 ;K12,K13,K14,K15键码键码TEST2011.ASM TEST2011.ASM 键盘扫描子程序键盘扫描子程序-2-200H + 00H + 键号键号+KEY_N+KEY_N片机学习17(键盘接口优秀 KN:MOV A,61H KN:MOV A,61H ; ;根据查表获得的键号根据查表获得的键号00H00H0FH0FH之一转向相应处理程序之一转向相应处理程序 MOV B,#05H

14、;MOV B,#05H ;转移表中每个键号处理程序占转移表中每个键号处理程序占5 5个地址单元个地址单元 MUL ABMUL AB MOV DPTR,# MOV DPTR,#K0K0 JMP A+DPTR ; JMP A+DPTR ;转向对应的键号处理程序转向对应的键号处理程序 K0:K0:MOV 35H,#0 ;MOV 35H,#0 ;各键号处理程序各键号处理程序: :将键号送将键号送35H35H单元单元( (使键号显示在左第三位使键号显示在左第三位) ) SJMP RT0 SJMP RT0 K1:MOV 35H,#01H K1:MOV 35H,#01H SJMP RT0 SJMP RT0

15、K2:MOV 35H,#02H K2:MOV 35H,#02H SJMP RT0 SJMP RT0 K3:MOV 35H,#03H K3:MOV 35H,#03H SJMP RT0 SJMP RT0 K4:MOV 35H,#04HK4:MOV 35H,#04H SJMP RT0 SJMP RT0 K5:MOV 35H,#05H K5:MOV 35H,#05H SJMP RT0 SJMP RT0 K6:MOV 35H,#06H K6:MOV 35H,#06H SJMP RT0 SJMP RT0 TEST2011.ASM TEST2011.ASM 键盘扫描子程序键盘扫描子程序-3-3类似于高级语言

16、中的开关语句类似于高级语言中的开关语句片机学习17(键盘接口优秀 K7:MOV 35H,#07H K7:MOV 35H,#07H SJMP RT0 SJMP RT0 K8:MOV 35H,#08H K8:MOV 35H,#08H SJMP RT0 SJMP RT0 K9:MOV 35H,#09H K9:MOV 35H,#09H SJMP RT0SJMP RT0 KA:MOV 35H,#0AH KA:MOV 35H,#0AH SJMP RT0 SJMP RT0 KB:MOV 35H,#0BH KB:MOV 35H,#0BH SJMP RT0 SJMP RT0 KC:MOV 35H,#0CH KC

17、:MOV 35H,#0CH SJMP RT0 SJMP RT0 KD:MOV 35H,#0DH KD:MOV 35H,#0DH SJMP RT0 SJMP RT0 KE:MOV 35H,#0EH KE:MOV 35H,#0EH SJMP RT0 SJMP RT0 KF:MOV 35H,#0FH KF:MOV 35H,#0FH RT0:MOV 34H,#10H RT0:MOV 34H,#10H ; ;让左边第四位显示让左边第四位显示-,-,键号显示借用了小时的显示位置键号显示借用了小时的显示位置 RETRETTEST2011.ASM TEST2011.ASM 键盘扫描子程序键盘扫描子程序-4-4

18、片机学习17(键盘接口优秀修改键盘扫描子程序修改键盘扫描子程序功能:功能:改为改为扫描到扫描到按键则显示按键则显示HH与键号与键号于最右边两位;于最右边两位;通过调整键码表实现该通过调整键码表实现该4444键盘每一行键盘每一行4 4个键的定义左右个键的定义左右对调,即对调,即原原 键键00改为改为33 、原键、原键11改为改为22 、原键、原键22改为改为11 、原键、原键33改为改为00 ,其他行,其他行以此类推。以此类推。键盘扫描程序其他键盘扫描程序其他功能需求:功能需求:按键闭合动作、释放动作的判别及处理;按键闭合动作、释放动作的判别及处理;按键闭合、释放时的触点抖动消除功能按键闭合、释放时的触点抖动消除功能;(如:每(如:每10mS10mS扫描扫描一次,扫描到按键动作延迟一次,扫描到按键动作延迟20mS20mS后再确认等)后再确认等)片机学习17(键盘接口优秀片机学习17(键盘接口优秀

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号