为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

键盘

2011-05-09 9页 doc 1MB 26阅读

用户头像

is_248017

暂无简介

举报
键盘§11 \\\§8.3 键盘接口技术 1、​ 键盘输入应解决的问题 键盘是一组按键的集合,它是最常用的单片机输入设备. 操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。 键是一种常开型按钮开关,平时(常态)键的二个触点处于断开状态,按下键时它们才闭合(短路)。 键盘分编码键盘和非编码键盘。 键盘上闭合键的识别由专用的硬件译码器实现并产生编号或键值的称为编码键盘, 如:ASCⅡ码键盘、BCD码键盘等; 靠软件识别的称为非编码键盘。 在单片机组成的测控系统及智能化仪器中用得最多的是非编码键盘。 本节着重讨论非编码键盘的原理...
键盘
§11 \\\§8.3 键盘接口技术 1、​ 键盘输入应解决的问题 键盘是一组按键的集合,它是最常用的单片机输入设备. 操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。 键是一种常开型按钮开关,平时(常态)键的二个触点处于断开状态,按下键时它们才闭合(短路)。 键盘分编码键盘和非编码键盘。 键盘上闭合键的识别由专用的硬件译码器实现并产生编号或键值的称为编码键盘, 如:ASCⅡ码键盘、BCD码键盘等; 靠软件识别的称为非编码键盘。 在单片机组成的测控系统及智能化仪器中用得最多的是非编码键盘。 本节着重讨论非编码键盘的原理、接口技术和程序。 键盘中每个按键都是—个常开关电路,如图所示。 1.​ 按键的确认: P1.7=1 无按键; P1.7=0 有按键; 2.​ 去抖动 去抖动的方法: ① 硬件去抖动 采用RS触发器: 优点: 速度快,实时, 缺点: 增加了硬件成本 ② 软件去抖动 采用延时方法 延时5—10ms 延时5—10ms P1.7=0 确认P1.7=0 P1.7=1 (去前沿抖动) (去后沿抖动) 二、 独立式键盘 每个I/O口连接一个按,S1 P1.0 S2 P1.1 ………………………. S8 P1.7 软件: START: MOV P1,#0FFH ;置P1口为高电平 JNB P1.0, RS1 ; S1按下,程序去执行RS1 JNB P1.1, RS2 ; S2按下,程序去执行RS2 JNB P1.2, RS3 ; S3按下,程序去执行RS3 JNB P1.3, RS4 ; S4按下,程序去执行RS4 JNB P1.4, RS5 ; S5按下,程序去执行RS5 JNB P1.5, RS6 ; S6按下,程序去执行RS6 JNB P1.6, RS7 ; S7按下,程序去执行RS7 JNB P1.7, RS8 ; S8按下,程序去执行RS8 AJMP START ; 继续扫描按键 …………. RS1: AJMP PK1 ; RS2: AJMP PK2 ; RS3: AJMP PK3 ; RS4: AJMP PK4 ; RS5: AJMP PK5 ; RS6: AJMP PK6 ; RS7: AJMP PK7 ; RS8: AJMP PK8 ; AJMP START ; 无键按下,继续扫描 ………………… PK1: ……….. ; 按键S1功能处理程序 AJMP START ; 处理S1按键后, 继续扫描 PK2: ……….. ; 按键S2功能处理程序 AJMP START …………………. PK8: ……………… ; 按键S8功能处理程序 AJMP START ; 处理S8按键后, 继续扫描 优点: 连线简单,程序容易. 缺点: 太浪费资源 适用于按键较少、I/O口空闲的场合。 三、行列式非编码键盘接口方法 按键较多时,一般采用行列式键盘. 采用扫描方式,软件扫描方式有三种: 程序扫描方式: 当CPU空闲时,扫描键盘,判断有无键按下. 定时扫描方式: 利用CPU的定时器,每隔一定时间扫描一次键盘. 中断扫描方式: 在硬件上采用中断,有键按下时,产生中断, 由中断服务程序来处理. 下面是16个按键,构成的4×4键盘 行线: 四根,接P1.0---P1.3 列线: 四根,接P1.4---P1.7 程序扫描法原理: 11​ P1.0---P1.3输出低电平,读P1.4—P1.7, 若全为1,无键按下 若不全为1,有键按下 ② 在有键按下的情况下,进一步判断是那个键按下 使P1.0---P1.3依次输出低电平,读P1.4----P1.7 判断有无键按下子程序, 程序名: KAP键盘查询子程序 KAP: MOV P1,#0F0H ;行线输出低电平,列线输出高电平 MOV A,P1 ;P1口读入A CPL A ;取反 ANL A,#0F0H ;取高四位,即P1.4---P1.7 RET 程序出口: A=0, 则无键按下. A≠0 则有键按下. 去抖动-----------延时10ms子程序: 程序名D10MS D10MS: MOV R6, #14H; DL: MOV R7,#0FFH; DJNZ R7,$ DJNZ R6,DL RET KINP: LCALL KAP ; 调键盘查询子程序, JNZ KP1 ; A≠0,有键按下 SJMP KINP ; A=0,无键按下,重新查询 KP1: LCALL D10MS ;延时10MS,去抖动 LCALL KAP ;再次查询键盘, JNZ KP2 ; A≠0,确认有键按下 SJMP KINP ; A=0,误操作,重新查询 KP2为取键值子程序 KP2: MOV R2, #0FEH ; R2为行扫描值 MOV R4, #00H ; R4初值为第0行行首键号 KP4: MOV P1, R2 ; 扫描行为低 MOV A, P1 ; 读P1 JB ACC.4, L1 ; 第0列不为低,则检查第1列 MOV A, #00H ; 为低,则行首键值送入A AJMP KP5 ; KP5 L1: JB ACC.5, L2 ; 检查第一列 MOV A, #04H ; 第一列行首键值送入A AJMP KP5 L2: JB ACC.6 , L3 ; 检查第二列 MOV A, #08H ; 第二列行首键值送入A AJMP KP5 L3: JB ACC.7 , NEXT ; 检查第三列,若为1,则检查下一行 MOV A, #0CH ; 第三列行首键值送入A KP5: ADD A , R4 ; A A+R4,键值调整 PUSH A ; KP3: LCALL D10MS ; 后沿去抖动 LCALL KAP ; 查询按键是否释放 JNZ KP3 ; A≠0 未释放,继续查询 POP A ; 键已释放,弹出键值 RET NEXT: INC R4 ; 下一列,行键值加1 MOV A , R2 ; 取扫描值 JNB ACC.4, KINP ; 判断扫描是否结束? RL A ; 下一个扫描值 MOV R2,A ; AJMP KP4 ;
/
本文档为【键盘】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索