按键输入课件_第1页
按键输入课件_第2页
按键输入课件_第3页
按键输入课件_第4页
按键输入课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主讲人:施保华AVR单片机C语言程序设计三峡大学电子设计及创新实验室(32学时)第1页,共30页。在单片机嵌入式系统中,按键和键盘是一个基本和常用的接口,它是构成人机对话通道的一种常用的方式。按键和键盘能实现向嵌入式系统输入数据、传输命令等功能,是人工干预、设置和控制系统运行的主要手段。我们先讨论简单的单个按键的输入。2第2页,共30页。3第3页,共30页。图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第4页,共30页。与K2 连接方式比较,K1 连接电路中省掉了一个外部上拉电阻,而在K2的连接方法中,由于外部使用了上拉电阻,所以只要设置PC6 口为输入方式即可,

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

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

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

6、程序中一旦检测到按键输入口为低电平时(图9-2),便采用(调用)软件延时程序延时15ms。然后再次检测按键输入口,如果还是低电平则表示按键按下,转入执行按键处理程序。如果第二次检测按键输入口为高电平,则放弃本次按键的检测,从头开始一次新的按键检测过程。9第9页,共30页。10.2 键盘接口原理1. 键盘输入的特点键盘:一组按键开关的集合。 行线电压信号通过键盘开关机械触点的断开、闭合,输出波形如图10-6。10第10页,共30页。2. 按键的确认 检测行线电平 高电平:断开;低电平:闭合,常用软件来消除按键抖动。 基本思想:检测到有键按下,键对应的行线为低,软件延时10ms后,行线如仍为低,则

7、确认该行有键按下。3.如何消除按键的抖动 当键松开时,行线变高,软件延时10ms后,行线仍为高,说明按键已松开。采取以上措施,躲开了两个抖动期t1和t3的影响。11第11页,共30页。10.2.2 键盘接口的工作原理独立式按键接口和行列式键盘接口。1.独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可很容易判断那个键被按下。此种接口适于键数较少或操作速度较高的场合。图10-7(a)为中断方式的独立式键盘工作电路图10-7(b)为查询方式的独立式键盘工作电路。12第12页,共30页。13第13页,共30页。2. 行列式(矩阵式)键盘接口 用于按键数目较多的场合,由行

8、线和列线组成,按键位于行、列的交叉点上。如图10-10所示。 按键数目较多的场合,行列式键盘与独立式键盘相比,要节省很多的I/O口线。14第14页,共30页。(1)行列式键盘工作原理 无键按下,该行线为高电平,当有键按下时,行线电平由列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。(2)按键的识别方法a. 扫描法 图10-10(b)中3号键被按下为例,来说明此键时如何被识别出来的。15第15页,共30页。识别键盘有无键被按下的方法,分两步进行:第1步:识别键盘有无键按下;第2步:如有键被按下,识别出具体的按键

9、。 把所有列线置0,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。 上述方法称为扫描法,即先把某一列置低电平,其余各列为高电平,检查各行线电平的变化,如果某行线电平为低,可确定此行列交叉点处的按键被按下。 b. 线反转法 只需两步便能获得此按键所在的行列值,线反转法的原理如图10-11。16第16页,共30页。17第17页,共30页。第1步:列线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。第2步:行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。 结合上述两步,可确定按键所在行和列。(3)键盘的编码 根据实际需要灵活编码。10.2.3 键盘的工

10、作方式 单片机在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。18第18页,共30页。原则:即要保证能及时响应按键操作,又不要过多占用CPU的工作时间。 通常,键盘工作方式有3种,即编程扫描、定时扫描和中断扫描。1. 编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序,扫描键盘。工作过程:(1)在键盘扫描子程序中,先判断有无键按下。方法:PA口8位输出全0,读PC口低4位状态,若PC0PC3为全1,则说明键盘无键按下;若不全为1,则说明键盘可能有键按下。19第19页,共30页。(2)用软件来消除按键抖动的影响。如有键按下,则进行下一步。(3)求按下键的键号。(4)等待按键释放后,再进行按键功能的处理操作。2. 定时扫描工作方式 利用单片机内的定时器,产生10ms的定时中断,对键盘进行扫描。3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理睬键盘。 键盘所做的工作分为三个层次,如图10-13。20第20页,共30页。第1层:单片机如何来监视键盘的输入。三种工作方 式:编程扫描定时扫描中断扫描。第2层

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论