单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元11

上传人:E**** 文档编号:89497855 上传时间:2019-05-25 格式:PPT 页数:18 大小:916.50KB
返回 下载 相关 举报
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元11_第1页
第1页 / 共18页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元11_第2页
第2页 / 共18页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元11_第3页
第3页 / 共18页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元11_第4页
第4页 / 共18页
单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元11_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元11》由会员分享,可在线阅读,更多相关《单片机原理与接口技术 教学课件 ppt 作者 朱玉红 单元11(18页珍藏版)》请在金锄头文库上搜索。

1、单元11 键盘接口,学习目的: 掌握单片机键盘接口电路的设计方法。 重点难点: 独立式键盘,矩阵式键盘。 外语词汇: Keyboard(键盘)、Matrix(矩阵)。 键盘是是单片机最常用的输入设备,单片机中的键盘一般通过按键开关自己设计焊接,也可到厂家定制。本节主要讲解通过按键开关自己设计键盘的方法,根据按键开关与单片机接口的连接方式,可以分为独立式键盘和矩阵式键盘。单片机系统中键盘设计主要解决以下几个问题: 1)如何消除键的抖动。 2)键的识别。 3)键的保护。,11.1按键开关介绍,单片机中的键盘通常由按键开关组成,按键开关的外形和参数如图11-1所示,它是一种常开型按键开关,为了便于安

2、装固定,它有四个管脚,在常态时开关触点(1和2)处于断开状态,只有按下按键时开关触点才闭合短路,所以可以用万用表检测开关的管脚排列、好坏和质量。,图11-1 按键开关的外形和参数,11.2按键抖动消除,在单片机中,按键通常与I/O端口相连,常见按键电路如图11-2a所示。 当按键K1未按下时,P1.0输入为高电平,而当按键K1闭合时,P1.0输入为低电平,由于按键为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个机械开关闭合时不会马上稳定的闭合接通,断开时也不会马上断开,而是在闭合、断开的瞬间伴随有一连串的抖动,按键抖动过程如图11-2b所示,抖动时间的长短与按键的机械特性有

3、关,一般为510ms。 按键抖动是一种普遍的现象,如电流较大的电器开关闭合时,有时可以见到电火花,按键抖动将形成干扰和造成误动作。抖动将造成I/O端口输入的高低电平多次变化,使单片机系统误动作,一次按键产生多次按键效果,因此必须采取措施消除。 按键抖动消除可以采用硬件和软件方法消除。,图11-2 按键抖动干扰,在单片机中广泛采用的是软件延时去抖动,由图11-2b可知,按键闭合时存在前沿抖动,一般时间为510ms,因此可在按键按下后,延时10ms左右避开前沿抖动,然后再判断按键是否按下,即P1.0是否仍为低电平,如果仍为低电平,此时才确认为一次完整有效的按键闭合,否则认为只是抖动或干扰,系统对此

4、不作出响应。所以编写一个510ms的延时程序就可以实现软件方法去抖动。 硬件去抖动电路如图11-3所示。,图11-3 硬件去抖动电路,独立式键盘接口电路如图11-4所示,组成键盘的各按键相互独立,每个按键独立地与一个I/O端口相连,结构简单,其中图11-4a适合于端口内部有上拉电阻的端口,如P1、P2、P3口,所以外部不用上拉电阻,电路更简单,成本更低。图11-4b适合于端口内部没有上拉电阻的端口,如P0口,所以外部必须使用上拉电阻,成本稍高,所以一般尽量使用图11-4a的形式。,11.3 独立式键盘接口电路,图11-4独立式键盘接口电路,11.4 矩阵式键盘接口电路,独立式键盘虽然硬件、软件

5、结构简单,但在按键数量较多的情况下,将占有较多的I/O端口,所以在按键数量较多的情况下,一般采用可以有效减少I/O端口数量的矩阵式键盘。矩阵式键盘又称为行列式键盘,采用行、列线结构,按键设置在行列线的交叉点上,矩阵式键盘接口电路如图11-5所示。H0H3为四条行线,L0L3为四条列线,在行列相交的每个交点上通过按键来连通,按键开关的一个触点连行线,一个触点连列线,从而组成44矩阵键盘。,图11-5 矩阵式键盘接口电路,独立式键盘硬件结构简单,软件编程较简单,但每个按键独自占用一个I/O端口,在按键数量较多的情况下,将占有较多的I/O端口。所以,独立式键盘一般运用于按键数量不多的场合。 矩阵式键

6、盘能有效的减少I/O端口的占用量,但因为各按键不是单独的占有I/O端口,从而给按键的判断带来难度,造成编程难度加大。,11.5 键盘接口程序设计,11.5.1 独立式键盘控制LED灯,本项目基本任务为利用独立式键盘控制LED灯,键盘K1、K4一端触点接地,从而使按键K1、K4组成独立式键盘,独立式键盘控制LED灯接口电路如图11-6所示。,图11-6 独立式键盘控制LED灯接口电路,1.独立式键盘任务分析 本任务要求按下K1时,VL1VL8全亮,按下K4时,VL1VL8全灭。本任务的关键为设计独立式键盘的控制程序,它必须解决以下几个问题: 1)检测有无按键按下。先将各按键相连的I/O端口置为高

7、电平1,然后检测各I/O端口是否仍全为高电平,如果不是,表明有按键按下。 2)如果有键按下,运用软件去抖动。在有键按下的情况下,延时10ms,再次检测是否有键按下,如果是,表明确实有键按下,否则表示只是干扰或抖动。 3)确认有键按下,暂存键值,等键释放。这主要是为了保证一次按键仅执行一次按键功能,防止按住按键不放时,执行多次按键功能。 4)判断按键情况,执行相应的按键功能。如果按键K1按下,VL1VL8全亮,按键K4按下,VL1VL8全灭。 2.独立式键盘程序流程图设计 通过以上分析,独立式按键程序思路大致如下: (1)首先进行程序初始化 P1.0清零,使开关K1、K4一端接低电平;置位P2.

8、3、P2.4作为输入口,同时使P2.3、P2.4输出高电平。,(2)判断是否有键按下 读入P2.3、P2.4的状态,判断是否全为高电平1,否则表明有按键按下。 (3)延时去抖动 延时10ms,再次读入P2.3、P2.4的状态,判断是否仍然有键按下,如果有,表明确实有键按下,否则表明只是抖动或干扰信号。 (4)等待按键释放 在等待按键弹起的过程中,必须将前面的按键状态保存下来,以便后面取出判断具体的按键号。等待按键弹起的方法为延时一段时间,再次检测按键的状态,直到无键按下为止。 (5)执行相应的按键功能 取出前面暂存的按键状态,并判断具体是那个按键按下,执行相应的功能,如果是P2.3为低电平,表

9、明K1按下,置P1为低电平,VL1VL8全亮;如果是P2.4为低电平,表明K4按下,置P1为高电平,VL1VL8全灭。,独立式键盘控制LED灯流程图如图11-7所示。,图11-7 独立式键盘控制LED灯流程图,3.独立式键盘程序清单 ORG 0000H LJMP MAIN ORG 0050H、 MAIN: CLR P2.0 ;P2.0清0,使K1、K4一端触点接低电平 SETB P2.3 ;P2.3置1,作为输入口 SETB P2.4 ;P2.4置1,作为输入口 MAINHUI: LCALL KEY ;调用按键处理子程序 LJMP MAINHUI ;反复执行 LJMP KEYHUI ;否则,表

10、示没有键按下,键处理程序返回 DYS: LCALL DELAY ;键去抖动,延时10ms左右 MOV A,P2 ;再次取出P2口状态 ANL A,#00011000B;取出P2.3、P2.4位 CJNE A,#00011000B,DJTQ ;确认有键按下,跳到等待按键弹起 LJMP KEYHUI ;无键按下,表明只是干扰或键抖动 DJTQ: MOV R2,A ;暂存当前按键状态,DENDAI: LCALL DELAY ;延时10ms,再次取出当前按键状态 MOV A,P2 ANL A,#00011000B ;取出P2.3、P2.4位 CJNE A,#00011000B,DENDAI;按键没有弹

11、起,继续等待 MOV A,R2 ;取出暂存在R2中的按键状态 PJZ: JNB ACC.3,K1 ;ACC.3为0,表示K1按下,跳到K1处 JNB ACC.4,K4 ;ACC.4为0,表示K4按下,跳到K4处 LJMP KEYHUI ;如果K1、K4都没按下,跳到键处理子程序返回 K1: MOV P1,#00H ;按键K1按下处理,VL1VL8全亮 LJMP KEYHUI ;跳到键处理子程序返回 K4: MOV P1,#0FFH ;按键K4按下处理,VL1VL8全灭 KEYHUI: RET ;键处理子程序返回 DELAY: ;延时子程序 MOV R7,#0FH ;二层循环延时程序 LOOP2

12、: MOV R6,#0FFH LOOP1: DJNZ R6,LOOP1 DJNZ R7,LOOP2 RET,1.矩阵式键盘任务分析 本任务要求能用矩阵式键盘输入数据,当按下按键时,数码管显示相应的键值。矩阵式键盘控制数码管接口电路如图11-8所示。,11.5.2矩阵式键盘控制数码管,图11-8 矩阵式键盘控制数码管接口电路,与基本任务相比,这个任务的难度有所增加,本任务关键问题为具体键号的判断,既键的识别问题,对矩阵式按键的识别通常有二种方法,一种为常用的逐行(或列)扫描查询法,另一种为速度较快的反转法。 2.逐行(或列)扫描查询法工作原理 (1)判断有无按键按下 方法为将所有列线置为低电平“

13、0”,所有行线置为高电平“1”,作为输入口,然后读入所有行线的状态,如果行线全为高电平1,说明没有按键按下,否则说明有键按下(虽然暂时无法具体判断是哪个按键按下)。因为如果有按键按下,则按键所在的行、列线将短路,由于所有列线已经预置为低电平“0”,近似接地,则与该按键相连的行线必定被拉低为低电平“0”,所以由行线是否全为高电平“1”,就能判断是否有键按下。 (2)按键延时去抖动 在判断有按键按下后,为了去除按键机械抖动的影响,延时10ms左右再次检测是否仍有按键按下,判断方法和步骤(1)相同,如果仍有按键按下,表示确实有按键按下,否则表示只是干扰或抖动。 提示:此处延时去抖动程序可利用显示程序

14、代替,这样可利用显示程序的执行时间既能实现延时,又显示了数据,防止显示间断。,(3)判断按键列号 依次设置各列为低电平,读入行状态,如果将某一列设置为低电平0后,读入的行状态不全为高电平1,说明按下的按键在该列,将该列列值暂存起来,以便后面计算键值。同时将当前的行状态暂存起来,以便后面判断行号。 (4)等待按键释放 将列值和行状态暂存下来后,将等待按键释放,以保证按键按下一次,只执行一次按键功能,本处的延时程序仍以显示程序代替,在延时的同时保证显示不间断。 (5)判断按键行号 将暂存的行状态取出,依次判断按键在哪一行。方法为检测该行是否为低电平,如果是,表明按键在该行,并将行值暂存下来。 (6)计算键值 取出前面保存的列值、行值,利用如下公式计算键值: 键值行值列数列值 3.矩阵式按键逐行扫描程序流程图 矩阵式键盘控制数码管流程图如图11-9所示。 4.矩阵式按键逐行扫描程序清单 程序中30H单元为显示缓冲区,保存需显示的数据,40H为键值暂存单元,41H为列值暂存单元,42H为行值暂存单元。,图11-9 矩阵式键盘控制数码管流程图,

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

当前位置:首页 > 高等教育 > 大学课件

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