第五章 键盘接口与控制课件

上传人:我*** 文档编号:146155240 上传时间:2020-09-27 格式:PPT 页数:94 大小:4.62MB
返回 下载 相关 举报
第五章 键盘接口与控制课件_第1页
第1页 / 共94页
第五章 键盘接口与控制课件_第2页
第2页 / 共94页
第五章 键盘接口与控制课件_第3页
第3页 / 共94页
第五章 键盘接口与控制课件_第4页
第4页 / 共94页
第五章 键盘接口与控制课件_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《第五章 键盘接口与控制课件》由会员分享,可在线阅读,更多相关《第五章 键盘接口与控制课件(94页珍藏版)》请在金锄头文库上搜索。

1、第五章 键盘显示接口与控制,键盘的结构与原理,键盘是单片机应用系统中人机交流不可缺少的输入设备。 键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件。键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换为电气上的逻辑关系(1和0)。 常见的种类有: (1)根据构成:独立式按键和矩阵式键盘。 (2)根据键盘的输出: 编码键盘:键盘内部能自动检测被按下的键,并提供与被按键功能对应的键码(如ASCII码),以并行或串行方式送给CPU。 非编码键盘:只简单地提供按键的行列位置(位置码或扫描码),而按键的识别和键码的确定与输入等功能均由软件完成。,常规的键盘有机械式按键、电容式按键和薄

2、膜按键三种 机械式键盘是最早被采用的结构,一般类似金属接触式开关的原理使触点导通或断开,具有工艺简单、维修方便、手感一般、噪声大、易磨损的特性。 电容式键盘。它是基于电容式开关的键盘,原理是通过按键改变电极间的距离产生电容量的变化,暂时形成震荡脉冲允许通过的条件。 薄膜按键,利用导电橡胶使触点连接。,独立式按键,结构如下图所示,其特点是每个按键单独占用一根I/O口线,每个按键工作不会影响其它I/O口线的状态。多用于所需按键不多的场合。可采用JNB(或JB)来查询哪一个按键按下,并转向相应的功能处理程序。 MOV A,#0FFH MOV P1,A MOV A,P1 JNB ACC.0, A0 ;

3、如P1.0键按下,就跳到A0 JNB ACC.1, A1 ;如P1.1键按下,就跳到A1 JNB ACC.2, A2 ;如P1.2键按下,就跳到A2 JNB ACC.3, A3 ;如P1.3键按下,就跳到A3 JNB ACC.4, A4 ;如P1.4键按下,就跳到A4 JNB ACC.5, A5 ;如P1.5键按下,就跳到A5 JNB ACC.6, A6 ;如P1.6键按下,就跳到A6 JNB ACC.7, A7 ;如P1.7键按下,就跳到A7,矩阵式键盘,单片机系统中,若使用按键较多时,通常采用矩阵式键盘,其结构如下图所示。由图可知,一个44的行、列结构,可以构成一个含有16个按键的键盘,节

4、省了很多I/O口。 控制方式:先判断是否有键按下。 如有,再判断哪一键按下,并得 到键码值,然后根据键码值转向不同 的功能程序。 矩阵式结构键盘比独立式按键要复 杂,识别也要复杂一些。最常用的 识别方法是键盘扫描法。,键盘设计应注意的问题,机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如右图所示,抖动时间的长短与开关的机械特性有关,一般为510ms。,按键触点的机械抖动,在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作。系统设计中如果开关脉冲是作为外部中断触发信号或要对开关脉冲

5、进行计数时,这种情况是不允许出现的。 为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖;而当键数较多时,采用软件去抖。,键盘的硬件消抖,在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路,如下图所示是一种由R-S触发器构成的去抖动电路,当触发器翻转时,触点抖动不会对其产生任何影响。键盘输出经双稳态电路之后变为规范的矩形方波。,双稳态去抖动电路,键盘的软件消抖,软件上采取的措施是在检测到有按键按下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序,再确认该键电平是否仍保持闭合

6、状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态;同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而消除抖动的影响。,独立式键盘应用实例,【例1】 监视某开关S,用发光二极管LED显示开关状态,如果开关闭合,LED亮;如果开关断开,LED灭。 解:设计电路图如下图所示。开关接P1.1,当开关断开时,P1.1为+5V,对应数字量为“1”;开关闭合时,P1.1为0V,对应数字量为“0”,这样就可以用JB指令对开关状态进行检测。P1.0输出“1”,LED亮。当P1.0输出“0”,LED两端电压相等,熄灭。 参考程序如下:,ORG 0000H CLR P1.0 ; 使发光二极管灭 NEX

7、T: SETB P1.1 ; 先对P1.1写1 MOV C,P1.1 JC L1 ; 开关断开,跳至L1 SETB P1.0 ; 开关合上,发光二极管亮 SJMP NEXT L1 : CLR P1.0 ; 开关断开,发光二极管灭 SJMP NEXT END,独立式键盘应用实例,开关监视控制电路图,独立式键盘应用实例,【例2】 信号灯控制电路如下图所示,其功能是当按下不同的键时发光二极管有不同的亮灭规律。按1号键LED从左到右依次亮,按2号键从右到左依次亮,按3号键闪烁,按4号键呈流水追逐效果。 解:电路图中P1口分别接了4个开关,每个开关都有相对应的功能,当某一开关闭合时,相应的口线变为低电平

8、,而其他口线依然为高电平,因此,可以用4条JNB指令对开关状态进行检测。如果某一按键按下,则跳转执行其所对应的控制功能。八个发光二极管经74LS04接P2口,主要因单片机的驱动能力较差,故用74LS04来加大驱动能力。P2口输出控制信号控制发光规律。 程序设计流程图如下图所示。,信号灯控制电路,独立式键盘应用实例,信号灯控制程序设计流程图,ORG 0000H MOV SP, #60H MOV P2, #00H MOV P1, #0FH MOV A , P1 START: JNB ACC.0, A0 ; 如P1.0键按下,就跳至A0 JNB ACC.1, A1 ; 如P1.1键按下,就跳至A1

9、JNB ACC.2, A2 ; 如P1.2键按下,就跳至A2 JNB ACC.3, A3 ; 如P1.3键按下,就跳至A3 SJMP START * 左移 * A0: MOV DPTR, #TAB ; 左移常数表首地址送DPTR ACALL DISP SJMP START * 右移 * A1: MOV DPTR, #TAB1 ; 右移常数表首地址送DPTR ACALL DISP SJMP START,信号灯控制参考程序,* 闪烁 * A2: MOV DPTR, #TAB2 ; 闪烁常数表首地址送DPTR ACALL DISP SJMP START * 流水追逐 * A3: MOV DPTR,

10、#TAB3 ; 流水追逐常数表首地址送DPTR ACALL DISP SJMP START * LED显示控制子程序 * 功能:根据常数表控制P2口的LED发光 入口:常数表的地址送到DPTR 出口:无 * DISP: CLR A MOVC A, A+DPTR CJNE A,#0AH,LOOP1 RET LOOP1: MOV P2,A MOV R3,#20 ACALL DELAY INC DPTR JMP DISP,信号灯控制参考程序,DELAY: MOV R4,#20 D1: MOV R5,#248 DJNZ R5, $ DJNZ R4, D1 DJNZ R3, DELAY RET TAB

11、: DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0AH ; 左移 TAB1: DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH,0AH ; 右移 TAB2: DB 0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0AH ; 闪烁 TAB3: DB 01H,02H,06H,08H,10H,20H,60H,80H,0AH ; 流水追逐 END,信号灯控制参考程序,说明:本例中,根据所按下的键输入不同的常数表地址到DPTR,然后再调用显示子程序(DPTR为DISP程序的入口条件),从而根据不同的参数控制发光二极管的

12、变化规律。显然通过改变常数表可任意设定发光规律,读者可以试一下。调用子程序,可使程序设计实现模块化,但必须明确子程序的功能、入口和出口参数。 通过以上两个实例可以看出独立式键盘应用的特点:识别键盘比较容易,编程也比较简单,很适合于功能键较少的单片机应用系统。但每一个按键上用一根口线,当按键较多时(超过8个)应采用矩阵式键盘。,10.2.3 矩阵式键盘应用实例,【例3】 44键盘硬件电路如下图所示。设计采用键盘扫描法得到键码值的程序。 解:键盘输入程序设计有以下几个方面。 (1) 判别键盘上有无键闭合 其方法为:P1.0P1.3输出0,然后读P1口,若高4位P1.4P1.7全为1,则键盘上没有闭

13、合键,若P1.4P1.7不全为1,则有键处于闭合状态。 (2) 去除键的机械抖动 其方法为:当判别到键盘上有键闭合后,延时一段时间再判别键盘的状态,若仍有键闭合,则认为键盘上有一个键处于稳定的闭合状态,否则认为键抖动。,10.2.3 矩阵式键盘应用实例,44键盘硬件电路图,矩阵式键盘应用实例,(3) 判别闭合键的键号 其方法为:对键盘的行线进行扫描,P1.3P1.0依次循环输出1110、1101、1011和0111,相应地读P1口,若高4位P1.7P1.4全为“1”,则说明该行上没有键闭合;否则,这一行上有键闭合,而且就是行线为0,列线为0的交叉键。高4位和低四位合并即得到键码值。 例如,P1

14、.3P1.0输出“1110”时,读入P1.7P1.4为“1101”时,即不全为“1”,说明有键按下,那一个键呢?显然是P1.0与P1.5交叉的键。将高四位和低四位合并后的值为“11011110”;也就是该键的键码值。依此类推可得各键的健码值。各键和对应的键码值如下图所示。 (4) 使CPU对键的一次闭合仅作一次处理 采用的方法是等待闭合键释放以后再作处理。,各键和对应的键码值,44键盘参考程序如下。该程序可作为子程序来调用,入口参数无,出口参数为键码值,存于A。 本例的另一种实现方法:以上程序所得到的键码值,离散性较大,不利于用指令对按键进行处理。可采用按键编码为依次排列键号的程序设计方法。,

15、44键盘参考程序,KEY: MOV P1,#0F0H ; P1.0P1.3输出0,P1.4P1.7输出1 MOV A,P1 ; 读键盘, 检测有无键按下 ANL A,#0F0H ; 屏蔽P1.0P1.3,检测P1.4P1.7是否全为1 CJNE A,#0F0H,HAVE ; P1.4P1.7不全为1,有键按下 SJMP KEY ; P1.4P1.7全为1,无键按下,重新检测键盘 HAVE: MOV A,#0FEH ; 有键按下,逐行扫描键盘,置扫描初值 NEXT: MOV B,A ; 扫描码暂存于B MOV P1,A ; 输出扫描码 READ: MOV A,P1 ; 读键盘 ANL A,#0F0H ; 屏蔽P1.0P1.3,检测P1.4P1.7是否全为1 CJNE A,#0F0H,YES ; P1.4P1.7不全为1,该行有键按下 MOV A,B ; 被扫描行无键按下,准备查下一行 RL A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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