第7讲按键输入

上传人:枫** 文档编号:586060371 上传时间:2024-09-03 格式:PPT 页数:30 大小:666.52KB
返回 下载 相关 举报
第7讲按键输入_第1页
第1页 / 共30页
第7讲按键输入_第2页
第2页 / 共30页
第7讲按键输入_第3页
第3页 / 共30页
第7讲按键输入_第4页
第4页 / 共30页
第7讲按键输入_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《第7讲按键输入》由会员分享,可在线阅读,更多相关《第7讲按键输入(30页珍藏版)》请在金锄头文库上搜索。

1、主讲人:施保华主讲人:施保华AVR单片机C语言程序设计三峡大学电子设计及创新实验室(三峡大学电子设计及创新实验室(32学时)学时)在单片机嵌入式系统中,按键和键盘是一个基本和常用的接口,它是构成人机对话通道的一种常用的方式。按键和键盘能实现向嵌入式系统输入数据、传输命令等功能,是人工干预、设置和控制系统运行的主要手段。我们先讨论简单的单个按键的输入。23图9-2 是简单按键输入接口硬件连接电路图,图中单片机的三个I/O 口PC7、PC6、PC5作为输入口(输入方式),分别与K3、K2、K1 三个按键连接。其中K2 是标准的连接方式,当没有按下K2 时,PC6 的输入为高电平,按下K2 输入为低

2、电平。PC6 引脚上的电平值反映了按键的状态。按键K1 是一种经济的接法,它充分利用了AVR 单片机I/O 口的内部上拉特点。在K1的连接中,除了把PC5 定义为输入方式时(DDRC.5=0),同时设置PC5 口的上拉电阻有效(PORTC.5=1),这样当K1 处在断开状态时,PC5 引脚在内部上拉电阻的作用下为稳定的高电平(如果上拉电阻无效,则PC5 处在高阻输入态,PC5 的输入易受到干扰,不稳定),按下K1 输入为低电平4与K2 连接方式比较,K1 连接电路中省掉了一个外部上拉电阻,而在K2的连接方法中,由于外部使用了上拉电阻,所以只要设置PC6 口为输入方式即可,该口内部的上拉电阻有效

3、与否则不必考虑了。而对于K3 的连接方式,我们不提倡使用,因当K3 按下闭合时,PC7 口直接与Vcc 接通了,有可能会造成大的短路电流流过PC7 引脚,从而把端口烧毁。因此电阻R2 不仅起到上拉的作用,还有限流的作用,通常在5K-50K 之间。5根据按键连接电路可知,按键状态的确认就是判别按键是否闭合,反映在输入口的电平就是和按键相连的I/O 引脚呈现出高电平或低电平。如果输入高电平表示断开的话,那么低电平则表示按键闭合,所以简单的讲,在程序中通过检测引脚电平的高低,便可确认按键是否按下。但对于实际的按键确认并不是象上面描述的那么简单。首先要考虑的是按键消抖的问题。通常,按键的开关为机械弹性

4、触点开关,它是利用机械触点接触和分离实现电路的通、断。6由于机械触点的弹性作用,加上人们按键时的力度、方向的不同,按键开关从按下到接触稳定要经过数毫秒的弹跳抖动,既在按下的几十毫秒时间里会连续产生多个脉冲。释放按键时,电路也不会一下断开,同样会产生抖动(图9-3)。这两次抖动的时间分别为10-20ms 左右,而按键的稳定闭合期通常大于0.3-0.5 秒。因此,为了确保MCU 对一次按键动作只确认一次,在确认按键是否闭合时,必须要进行消抖处理。否则,由于MCU 软件执行的速度很快,非常可能将抖动产生的多个脉冲误认为多次的按键。7消除按键的抖动既可采用硬件方法,也可采用软件的方法。使用硬件消抖的方

5、式,需要在按键连接的硬件设计上增加硬件消抖电路,如采用R-S 触发器或RC 积分电路等。采用硬件消抖方式增加了系统的成本,而利用软件方式消抖则是比较经济的做法,但增加了软件设计的复杂性。软件方式消抖的基本原理是在软件中对按键进行两次测试确认,既在第一次检测到按键按下后,间隔15ms 左右再次检测该按键是否按下,只有在两次都测到按键按下时才最终确认有键按下,从而消除了抖动的影响8在按键接口软件中,除了要考虑按键消抖外,一般还要判别按键的释放,只有检测到按键释放以后,才能确定为一次完整的按键动作完成。,在程序中一旦检测到按键输入口为低电平时(图9-2),便采用(调用)软件延时程序延时15ms。然后

6、再次检测按键输入口,如果还是低电平则表示按键按下,转入执行按键处理程序。如果第二次检测按键输入口为高电平,则放弃本次按键的检测,从头开始一次新的按键检测过程。910.2 10.2 键盘接口原理键盘接口原理1. 1. 键盘输入的特点键盘输入的特点键盘:一组按键开关的集合键盘:一组按键开关的集合。 行线电压信号通过键盘开关机械触点的断开、闭合,行线电压信号通过键盘开关机械触点的断开、闭合,输出波形如图输出波形如图10-610-6。102. 2. 按键的确认按键的确认 检测检测行线行线电平电平 高电平:高电平:断开;断开;低电平低电平:闭合,:闭合,常用常用软件来消除按键抖动。软件来消除按键抖动。

7、基本思想基本思想:检测到有键按下,键对应的行线为低,软检测到有键按下,键对应的行线为低,软件延时件延时1010msms后,行线如仍为低,则确认该行有键按下。后,行线如仍为低,则确认该行有键按下。3.3.如何消除按键的抖动如何消除按键的抖动 当键松开时当键松开时,行线变高,软件延时,行线变高,软件延时1010msms后,行线仍为后,行线仍为高,说明按键已松开。高,说明按键已松开。采取以上措施,采取以上措施,躲开了两个抖动期躲开了两个抖动期t1t1和和t3t3的影响的影响。1110.2.2 10.2.2 键盘接口的工作原理键盘接口的工作原理独立式独立式按键接口和按键接口和行列式行列式键盘接口。键盘

8、接口。1.1.独立式键盘接口独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过各键相互独立,每个按键各接一根输入线,通过检检测输入线的电平状态测输入线的电平状态可很容易判断那个键被按下。可很容易判断那个键被按下。此种接口此种接口适于键数较少适于键数较少或或操作速度较高操作速度较高的场合。的场合。图图10-710-7(a a)为为中断方式的独立式中断方式的独立式键盘工作电路键盘工作电路图图10-710-7(b b)为为查询方式的独立式查询方式的独立式键盘工作电路键盘工作电路。12132. 行列式行列式(矩阵式矩阵式)键盘接口键盘接口 用于按键数目较多的场合,用于按键数目较多的场合,由由行

9、线和列线组成行线和列线组成,按键位于行、列的交叉点上。如图按键位于行、列的交叉点上。如图10-1010-10所示。所示。 按键数目较多的场合按键数目较多的场合,行列式键盘与独立式键盘,行列式键盘与独立式键盘相比,要相比,要节省很多的节省很多的I/OI/O口线口线。14(1)行列式键盘工作原理)行列式键盘工作原理 无键按下,该行线为高电平,无键按下,该行线为高电平,当有键按下时,行当有键按下时,行线电平由列线的电平来决定线电平由列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发由于行、列线为多键共用,各按键彼此将相互发生影响,必须生影响,必须将行、列线信号配合起来并作适当的处将行、列

10、线信号配合起来并作适当的处理,才能确定闭合键的位置理,才能确定闭合键的位置。(2 2)按键的识别方法按键的识别方法a. a. 扫描法扫描法 图图10-1010-10(b b)中中3 3号键被按下为例,来说明此键号键被按下为例,来说明此键时如何被识别出来的。时如何被识别出来的。15识别键盘有无键被按下的方法,分两步进行:识别键盘有无键被按下的方法,分两步进行:第第1 1步:步:识别键盘有无键按下;识别键盘有无键按下;第第2 2步:步:如有键被按下,识别出具体的按键。如有键被按下,识别出具体的按键。 把所有列线置把所有列线置0 0,检查各行线电平是否有变化,如,检查各行线电平是否有变化,如有变化,

11、说明有键按下,如无变化,则无键按下。有变化,说明有键按下,如无变化,则无键按下。 上述方法称为上述方法称为扫描法扫描法,即,即先把某一列置低电平,先把某一列置低电平,其余各列为高电平,检查各行线电平的变化其余各列为高电平,检查各行线电平的变化,如果某,如果某行线电平为低,可确定行线电平为低,可确定此行列交叉点此行列交叉点处的按键被按处的按键被按下。下。 b. b. 线反转法线反转法 只需两步便能获得此按键所在的行列值,线反转只需两步便能获得此按键所在的行列值,线反转法的原理如图法的原理如图10-1110-11。1617第第1 1步:步:列线输出为全低电平,则行线中电平由高变低列线输出为全低电平

12、,则行线中电平由高变低的所在行为按键所在行。的所在行为按键所在行。第第2 2步:步:行线输出为全低电平,则列线中电平由高变低行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。所在列为按键所在列。 结合上述两步,可确定按键所在行和列。结合上述两步,可确定按键所在行和列。(3 3)键盘的编码)键盘的编码 根据实际需要灵活编码。根据实际需要灵活编码。10.2.3 10.2.3 键盘的工作方式键盘的工作方式 单片机在忙于各项工作任务时,如何兼顾键盘的输单片机在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。入,取决于键盘的工作方式。18原则:原则:即要保证能及时响应按键操作,又

13、不要过多占即要保证能及时响应按键操作,又不要过多占用用CPUCPU的工作时间。的工作时间。 通常,通常,键盘工作方式有键盘工作方式有3 3种种,即编程扫描、定时扫,即编程扫描、定时扫描和中断扫描。描和中断扫描。1. 1. 编程扫描方式编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序,只有当单片机空闲时,才调用键盘扫描子程序,扫描键盘。扫描键盘。工作过程:工作过程:(1 1)在键盘扫描子程序中,先判断有无键按下。)在键盘扫描子程序中,先判断有无键按下。方法:方法:PAPA口口8 8位位输出输出全全0 0,读读PCPC口口低低4 4位状态,若位状态,若PC0PC0PC3PC3为全为全1 1,

14、则说明键盘无键按下;若不全为,则说明键盘无键按下;若不全为1 1,则说明,则说明键盘可能有键按下。键盘可能有键按下。19(2 2)用软件来消除按键抖动的影响。如有键按下,则)用软件来消除按键抖动的影响。如有键按下,则进行下一步。进行下一步。(3 3)求按下键的键号。)求按下键的键号。(4 4)等待按键释放后,再进行按键功能的处理操作。)等待按键释放后,再进行按键功能的处理操作。2. 2. 定时扫描工作方式定时扫描工作方式 利用单片机内的定时器,产生利用单片机内的定时器,产生1010msms的定时中断,对的定时中断,对键盘进行扫描。键盘进行扫描。3.3.中断工作方式中断工作方式 只有在键盘有键按

15、下时,才执行键盘扫描程序,如只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理睬键盘。无键按下,单片机将不理睬键盘。 键盘所做的工作分为三个层次键盘所做的工作分为三个层次,如图,如图10-1310-13。20第第1 1层:层:单片机如何来监视键盘的输入。三种工作方单片机如何来监视键盘的输入。三种工作方 式:式:编程扫描编程扫描定时扫描定时扫描中断扫描。中断扫描。第第2 2层:层:确定具体按键的键号。体现在按键的识别方确定具体按键的键号。体现在按键的识别方 法上就是:法上就是:扫描法;扫描法;线反转法。线反转法。第第3 3层:层:执行键处理程序。执行键处理程序。21222324252627282930

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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