键盘扫描原理及应用键盘.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本资源为网上搜集而来,如果该程序涉及或侵害到您的版权请立即写信通知我 键盘扫描 键盘是由按键构成,是单片机系统里最常用的输入设备。我们可以通过键 盘输入数据或命令来实现简单的人-机通信。 1. 按键及键抖动 按键是一种常开型按钮开关。平时,按键的两个触点处于断开状态,按下 按键时两个触点才闭合(短路)。如图 1-1 所示,平常状态下,当按键 K 未被按 下时,按键断开,PA0 输入口的电平为高电平;当按键 K 被按下时,按键闭合, PA0 输入口的电平为低电平。 图 1-1 按键电路 图 1-2 按键抖动 一般的按键所用开关都是机械弹性开关,由于机械触点的弹性作用,按键开 关在闭合时不会马上稳定地连接,在断开进也不会马上完全的断开,在闭合和断 开的瞬间均有一连串的抖动。按键按下的电压信号波形图如图 1-2 所示,从图中 可以看出按键按下和松开的时候都存在着抖动。抖动时间的长短因按键的机械特 性不同而有所不同,一般为 5ms~10ms。 如果不处理键抖动,则有可能引起一次按键被误读成多次,所以为了确保能 够正确地读到按键,必须去除键抖动,确保在按键的稳定闭合和稳定断开的时候 来判断按键状态,判断后再做处理。按键在去抖动,可用硬件或软件两种方法消 除。由于使用硬件方法消除键抖动,一般会给系统的成本带来提高,所以通常情 况下都是使用软件方法去除键抖动。 常用的去除键抖动的软件方法有很多种,但是都离不开基本的原则:就是要么避 开抖动的时候检测按键或是在抖动的时候检测到的按键不做处理。这里说明一下 常用的两种方法: 第一种方法是检测到按键闭合电平后先执行一个延时程序,做一个 12ms~ 24ms 的延时,让前抖动消失后再一次检测按键的状态,如果仍是闭合状态的电 平,则认为真的有按键按下;若不是闭合状态电平,则认为没有键按下。若是要 判断按键松开的话,也是要在检测到按键释放电平之后再给出 12ms~24ms 的延 时,等后抖动消失后再一次检测按键的状态,如果仍为断开状态电平,则确认按 键松开。这种方法的优点是程序比较简单,缺点是由于延时一般采用跑空指令延 时,造成程序执行效率低。 第二种方法是每隔一个时间周期检测一次按键,比如每 5ms 扫描一次按键, 要连续几次都扫描到同一按键才确认这个按键被按下。一般确认按键的扫描次数 由实际情况决定,扫描次数的累积时间一般为 50ms~60ms。比如,以 5ms 为基 本时间单位去扫描按键的话,前后要连续扫描到同一个按键 11 次而达到 50ms 来确认这个按键。按键松开的检测方法也是一样要连续多次检测到按键状态为断 开电平才能确认按键松开。这种方法的优点是程序执行效率高,不用刻意加延时 指令,而且这种方法的判断按键抗干扰能力要更好;缺点是程序结构较复杂。 在以下的介绍中,我们将使用第二种方法来去除键抖动。 2. 键盘结构及工作原理 键盘一般有独立式和行列式(矩阵式)两种。当然还有其它的结构,比如交 互式结构等等,不过其它的结构比较少用,在这里就不介绍了。在中颖的单片机 中,有些单片机的 LCD 驱动引脚的 SEGMENT 口可以共享按键扫描口,当选择为按 键扫描口时,可以使用这些口来扫描按键,所以在外部电路可以连接 LCD 和按键 矩阵,采用分时扫描进行处理,下面也将介绍这个特殊应用的方法和注意的地方。 ? 独立式键盘结构 独立式键盘是指各个按键相互独立地连接到各自的单片机的 I/O 口,I/O 口只需要做输入口就能读到所有的按键。 独立式键盘可以使用上拉电阻也可以使用下拉电阻,基本原理是一样 的。使用上拉电阻的独立式键盘结构如图 1-3 所示。 图 1-3 独立式键盘结构 图 1-3 所示的是利用 PB 口和 PC 口共 8 个 I/O 口独自连接 8 个按键,使 用外部上拉电阻构成的独立式键盘。在中颖的单片机中,有很多型号的单片 机有 I/O 内部上拉电阻或内部下拉电阻,所以在实际应用,若是使用到这样 的单片机,是不需要接外部上拉电阻或下拉电阻了,只需在程序中把内部上 拉电阻或内部下拉电阻打开即可。 从图 1-3 可以看出,当按键没有被按下的时候,连接到该按键的 I/O 口 输入电平为高电平,当按键按下去之后,输入电平则变为低电平。所以要判 别有无按键按下,只需判断输入口的电平即可,程序写起来十分方便。 这种键盘虽然有电路简单、程序容易写的优点,但是也有缺点:当按键 个数较多的时候,要占用较多的 I/O 口资源。所以当按键个数比较多的时候, 比较少用这样的按键结构,而是使用下面我们要讲的行列式结构。 ? 行列式键盘结构 为了减少键盘占用太多的单片机 I/O 口资源,当按键个数较多的时候, 通常都使用行列式键盘。 行列式键盘同样可以使用上拉电阻或是下拉电阻,使用上拉电阻的行列 式键盘结

文档评论(0)

汪汪队 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档