- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 口资源,当按键个数较多的时候,
通常都使用行列式键盘。
行列式键盘同样可以使用上拉电阻或是下拉电阻,使用上拉电阻的行列
式键盘结
您可能关注的文档
最近下载
- 数字化碳排放解决方案.docx VIP
- 六年级上册分数除法解决问题例7数学工程问题1省公开课获奖课件说课比赛一等奖课件.pptx
- 初中九年级历史教案-阿拉伯帝国-“十校联赛”一等奖.docx VIP
- 古建筑工程施工检验批质量验收记录.docx VIP
- 碳管理,碳核查,碳足迹,碳中和评价流程.pptx VIP
- 部编版语文八年级上册 白杨礼赞 课件PPT(附教案、说课稿).ppt
- 建设工程施工现场供用电安全规范.doc VIP
- 西门子SINUMERIK808D编程和操作手册车削第一部分:操作.pdf VIP
- 思考,让我们不断前行 前行广释第四十八课思考答案.doc VIP
- 供热管网施工应急处理措施.doc
文档评论(0)