1 / 19

第五讲 键盘及接口

第五讲 键盘及接口. 一、键盘工作原理. 键盘接口要解决的问题. ---- 扫描 (判断哪个键按下)、 去抖动 、判断按键是否抬起(以防止重复进行键处理)。. 键按下. 键释放. 闭合稳定. 前沿抖动. 后沿抖动. ★ 请思考 : 什么是键抖动?为什么键盘要考虑去抖动?一般常用哪两种去抖动的方法?. 二 . 独立式键盘工作原理. 原理 ---- 当任何一个键被按下时,与其相连的输入线被置成 “ 0 ” ,平时该线为 “ 1 ” 。. 键处理程序 (查询方式). ORG 2000H.

lula
Download Presentation

第五讲 键盘及接口

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五讲 键盘及接口 模块四:单片机接口技术——键盘技术

  2. 一、键盘工作原理 键盘接口要解决的问题 ----扫描(判断哪个键按下)、去抖动、判断按键是否抬起(以防止重复进行键处理)。 键按下 键释放 闭合稳定 前沿抖动 后沿抖动 模块四:单片机接口技术——键盘技术

  3. ★请思考:什么是键抖动?为什么键盘要考虑去抖动?一般常用哪两种去抖动的方法?★请思考:什么是键抖动?为什么键盘要考虑去抖动?一般常用哪两种去抖动的方法? 二.独立式键盘工作原理 模块四:单片机接口技术——键盘技术

  4. 原理----当任何一个键被按下时,与其相连的输入线被置成 “0”,平时该线为“1”。 键处理程序(查询方式) ORG 2000H START:MOV A ,#0FFH ;先置P1口为“1” MOV P1,A MOV A,P1 ;输入键状态 JNB ACC.0, P0F ;查询0号键 JNB ACC.1, P1F ;查询1号键 键盘扫描 JNB ACC.2, P2F ;查询2号键 JNB ACC.3, P3F ;查询3号键 JNB ACC.4, P4F ;查询4号键 JNB ACC.5, P5F ;查询5号键 JNB ACC.6, P6F ;查询6号键 JNB ACC.7, P7F ;查询7号键 LJMP START 模块四:单片机接口技术——键盘技术

  5. P0F:LJMP PROM0 ;入口地址表 P1F:LJMP PROM1 …… P6F:LJMP PROM6 P7F:LJMP PROM7 PROM0:………………….. ;0号键功能程序 ………………….. LJMP START ;0号键处理完返回键盘扫描 . . . . PROM7:………………….. ;7号键功能程序 ………………….. LJMP START ;7号键处理完返回键盘扫描 模块四:单片机接口技术——键盘技术

  6. 三.行列式键盘工作原理 +5V 5.1KΩ╳4 X3 X2 X1 X0 Y3 Y2 Y1 Y0 I/O接口 特点:节省I/O口线 模块四:单片机接口技术——键盘技术

  7. (1)过程:先判断有无键按下 列线输出0000,然后输入行线状态, 若没有键按下,则行线状态为全1( 1111 ); 若有任一键按下,则行线状态不为全(1111); 再确认哪个键被按下 列线逐行输出0(如1110),然后输入行线状态, 若没有键按下,则行线状态为全1( 1111 ); 若有任一键按下,则行线状态不为全为1(如0111,说明右上角那个键被按下) 确定每个键的键值 键号=所在行号*键盘列数+所在列号 模块四:单片机接口技术——键盘技术

  8. (2)键盘扫描的控制方式 程序控制扫描方式----连续扫描 定时控制扫描方式----定时扫描 中断控制扫描方式----中断后扫描 模块四:单片机接口技术——键盘技术

  9. PA7 PA6 . . . . . PA0 PC0 PC1 PC2 PC3 CE P2.7 IO/M P2.0 WR WR RD RD +5V ALE ALE 5.1KΩ╳4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P0 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 8031 8155 程序控制扫描方式—以8155扩展I/O口组成的行列式键盘为例 8155 PA口地址7F01H PC口地址7F03H 8155扩展I/O口组成的行列式键盘 模块四:单片机接口技术——键盘技术

  10. 8155:PA口输出列扫描信号 PC口输入行状态信号 ⅰ.判断有无键按下 PA口输出00H PC口输入行状态信号,若PC3~PC0≠1111,有键按下 ⅱ.去抖动 延时5~10ms后再判断有无键按下 ⅲ.再确认哪个键被按下及其键号 8155的PA口依次输出下列扫描字: PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 1 1 1 1 1 1 1 0 FEH 1 1 1 1 1 1 0 1 FDH …… 0 1 1 1 1 1 1 1 7FH 模块四:单片机接口技术——键盘技术

  11. 8155的PC口输入行状态,可能为下列之一: PC5 PC4 PC3 PC2 PC1 PC0 ╳╳ 1 1 1 0 ╳EH ╳╳ 1 1 0 1 ╳DH ╳╳ 1 0 1 1 ╳BH ╳╳ 0 1 1 1 ╳7H 则每个键的键值(列行组合) FE ╳ E 、FD ╳ E 、 FB╳ E 、 F7╳ E 、EF ╳ E、DE ╳ E、BF ╳ E、 7F╳ E FE ╳ D 、FD ╳ D 、 FB╳ D 、 F7╳ D 、EF ╳ D、DE ╳ D、BF ╳ D、 7F╳ D FE ╳ B 、FD ╳ B 、 FB╳ B 、 F7╳ B 、EF ╳ B、DE ╳ B、BF ╳ B、 7F╳ B FE ╳ 7 、 FD ╳ 7 、 FB╳ 7 、 F7╳ 7、 EF ╳ 7、 DE ╳ 7、 BF ╳ 7、 7F╳ 7 每个键的键号(自己安排) N=行首键号+列号 模块四:单片机接口技术——键盘技术

  12. ⅳ.判断按键是否抬起(以防止重复进行键处理)ⅳ.判断按键是否抬起(以防止重复进行键处理) 等待键释放后再进行进一步处理。 入口 ① 键扫描程序框图 Y 有键按下? 键号入栈保存 N N 按键抬起? Y 延时12ms 键号送A N 有键按下? 返回 Y ① 模块四:单片机接口技术——键盘技术

  13. Ⅴ.键操作及功能处理 求出键号后要进行键处理: 先判断是何种键,然后: 对数字键----送显示缓冲区显示; 对功能键----执行相应的功能键处理程序。 模块四:单片机接口技术——键盘技术

  14. 【例1】80C51直接扫描矩阵键盘 模块四:单片机接口技术——键盘技术

  15. SMKEY:MOV P1,#0FH ;置P1口高4位为“0”、低4位为输入状态 MOV A,P1 ;读P1口 ANL A,#0FH ;屏蔽高4位 CJNE A,#0FH,HKEY ;有键按下,转HKEY SJMP SMKEY ;无键按下转回 HKEY:LCALL DELAY10 ;延时10ms,去抖 MOV A,P1 ; ANL A,#0FH ; CJNE A,#0FH,WKEY ;确认有键按下,转判哪一键按下 SJMP SMKEY ; 是抖动转回 WKEY:MOV R2,#00H ;R2中存放列值 MOV P1,#1110 1111B ;置扫描码,检测P1.4列 MOV A,P1 ; ANL A,#0FH ; CJNE A,#0FH,PKEY ;P1.4列(Y0)有键按下,转键处理 模块四:单片机接口技术——键盘技术

  16. INC R2 ;列值加一 MOV P1,#1101 1111B ;置扫描码,检测P1.5列 MOV A,P1 ANL A,#0FH CJNE A,#0FH,PKEY ;P1.5列(Y1)有键按下,转键处理 INC R2 ;列值加一 MOV P1,#1011 1111B ;置扫描码,检测P1.6列 MOV A,P1 ANL A,#0FH CJNE A,#0FH,PKEY ;P1.6列(Y2)有键按下,转键处理 INC R2 ;列值加一 MOV P1,#0111 1111B ;置扫描,检测P1.7列 MOV A,P1 ANL A,#0FH CJNE A,#0FH,PKEY ;P1.7列(Y3)有键按下,转键处理 LJMP SMKEY 模块四:单片机接口技术——键盘技术

  17. PKEY:CJNE A,#0EH,LOOP1 MOV R3,#00H ;R3中存放行值 LOOP1:CJNE A,#0DH,LOOP2 MOV R3,#01H LOOP2:CJNE A,#0BH,LOOP3 MOV R3,#02H LOOP3:MOV R3,#03H MOV A,R3 MOV B,#04H ADD A,R2 MOV R7,A ;键号存放在R7中 模块四:单片机接口技术——键盘技术

  18. 设上图中,0~15号键为数字键,即键号<10H的是数字键;16~31号键为功能键,即键号≥10H的是功能键,其功能键处理程序入口地址分别为:AAA、BBB、CCC、……PPP。设上图中,0~15号键为数字键,即键号<10H的是数字键;16~31号键为功能键,即键号≥10H的是功能键,其功能键处理程序入口地址分别为:AAA、BBB、CCC、……PPP。 则转入功能键处理程序清单如下: ORG 8000H KEYADR:MOV A ,BUFF ;键号送A CLR C SUBB A,#10H ;Y与10H比较 JC DIGPRO ;<10H,数字键,转 模块四:单片机接口技术——键盘技术

  19. KEYTBL:MOV DPTR,#JMPTBL RL A ;使键值为0、2、4、6、…偶数 AJMP @A+DPTR JMPTBL:AJMP AAA ;2 字节指令散转到16个功能键处理 AJMP BBB ; 程序入口 AJMP CCC AJMP DDD AJMP EEE AJMP FFF AJMP GGG AJMP HHH AJMP III AJMP JJJ AJMP KKK AJMP LLL AJMP MMM AJMP NNN AJMP OOO AJMP PPP 模块四:单片机接口技术——键盘技术

More Related