第23 键盘程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第23 键盘程序设计

23.1 键盘接口概述 键盘就是在人机交互系统中用来输入控制信号或数据的接口。其中,人机交互系统是一个完整的单片机系统的组成部分,用来使单片机识别不同的输入信号,并做出不同的响应。 对于一个优秀的人机键盘接口设计,需要占用合理的单片机资源,并能够及时、准确地响应用户的输入信息。在进行单片机键盘接口设计的时候,需要注意如下几个方面。 23.1.1 按键编码 按键的编码也就是每个按键在单片机程序设计时对应的键值。每个按键对应一个唯一的键值。当按键按下的时候,键盘将向单片机发送该按键对应的键值,单片机程序对不同的键值做出不同的响应。 在硬件上,键盘按键使用单片机的I/O线与CPU进行通信。其中单片机I/O线接收的是高低逻辑电平信号,因此,键盘输入的不同键值可以表示为I/O线上不同的高低电平的组合。键盘编码设计的主要任务就是选择合理的键盘结构,为每个按键分配不同的I/O输入信号,以供单片机识别并响应。 23.1.2 输入的可靠性 输入的可靠性即让单片机程序能够正确无误地响应按键操作。由于目前的键盘按键均为机械式接触点,由于触点的机械弹性效应,在按键闭合和断开的时候,接触会出现抖动,这样可能导致误响应或者多次响应等。键盘的可靠输入是键盘接口设计的关键点。对于键盘的可靠输入需要在程序中做如下两方面的处理: 去抖动。由于机械特性的不同,按键的抖动时间长短不等,大致在5ms~10ms之间。这样可以在硬件或者软件中进行响应的处理来消除抖动的影响。 一次按键处理。由于人操作的按键闭合是有一定的时间限制的,一般来说,大致为0.1s~5s。当按键按下之后,相应的按键编码以高低电平的方式输入到单片机的I/O口。因为单片机的执行速度很快,有可能导致单片机程序对该按键操作响应多次。 23.1.3 程序检测及响应 单片机对键盘输入的检测可以采用查询和中断两种方式。查询方式需要在程序中反复查询每一个按键的状态,因此会占用大量的CPU处理时间,这种方法适用于一般用途的程序。中断法是当有按键按下的时候向CPU申请中断,平时不会占用CPU处理时间,适用于一些对实时性要求较高的复杂单片机系统。 程序中,对键盘的处理应该包括如下几个方面: 检测按键是否按下; 如果检测到按键被按下,执行延时程序,用来实现软件去抖动,消除抖动的影响; 扫描按键,准确判断按键的键值; 转向相应的程序处理子程序。 23.2 独立式按键及其编程接口 键盘有很多种类型,对于简单的系统,如果按键个数比较少、单片机资源比较宽裕,则可以使用独立式按键结构,这样可以简化程序设计。 23.2.1 独立式按键结构 独立式按键采用每个按键单独占有一个I/O口的结构,这是最简单的键盘输入设计。当按下和释放按键时,输入到I/O端口的电平是不一样的,单片机程序根据不同端口电平的变化判断是否有按键按下以及是哪一个按键被按下,并执行相应的程序段。 1.独立式按键结构 23.2.2 独立式按键程序设计 独立式按键的程序设计比较简单,一般采用查询方式即可。在程序设计时,可以采用汇编语言,也可以采用C51语言,下面分别给出采用这两种语言的程序范例。 如果采用汇编语言进行程序设计,则一般使用条件判断跳转指令(例如JB等),来根据按键的状态使程序转向相应的代码段。 23.3 4×4矩阵式键盘及其编程接口 对于比较复杂的系统或者按键比较多的场合,可用采用矩阵式键盘。矩阵式键盘有很多种,这里以应用最为广泛的4×4矩阵式键盘为例来介绍,其他矩阵式键盘的设计方法类似。 4×4矩阵式键盘的结构,如图23.2所示。其由4根行线和4根列线交叉构成,按键位于行列的交叉点上,这样便构成16个按键。交叉点的行列线是不连接的,当按键按下的时候,此交叉点处的行线和列线导通。 在电路结构上,一般将行(X0~X3)和列(Y0~Y3)分别接到单片机的一个8位的并行端口上,程序中分别对行线和列线进行不同的操作便可以确定按键的状态。这样,只占用一个8位的并口便可以实现16个按键,因此矩阵式键盘对端口的利用率很高。 23.3.1 扫描法及其程序设计 扫描法是在程序中反复扫描查询键盘接口,根据端口的输入情况,调用不同的按键处理子程序。由于在执行按键处理子程序的时候,单片机不能再次响应按键请求。因此,单片机的按键处理子程序应该尽可能少占用CPU的运行时间,并且尽可能将键盘扫描安排在程序空余的时候,以满足实时准确响应按键请求的目的。 1.扫描法的原理 2.扫描法程序设计 23.3.2 线反转法及其程序设计 线反转法从本质上来说也是一种扫描法。在实际使用过程中,扫描法需要逐列扫描查询,根据键的位置不同,每次查询的次数不一样。如果按下的键位于最后一列时,则要经过多次扫描查询才能获得该按键的位置。而采用线反转法,无论被按得按键处于第一列还是最后一列,都只

文档评论(0)

peili2018 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档