没有合适的资源?快使用搜索试试~ 我知道了~
键盘扫描原理及应用键盘.pdf
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
温馨提示
![preview](https://dl-preview.csdnimg.cn/3524381/0001-4abaa871c1726e01f2e0ef5f3cc27144_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
21页
这是最基本的键盘扫描原理,键盘是由按键构成,是单片机系统里最常用的输入设备。我们可以通过键 盘输入数据或命令来实现简单的人-机通信。
资源推荐
资源详情
资源评论
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/release/download_crawler_static/3524381/bg1.jpg)
本资源为网上搜集而来,如果该程序涉及或侵害到您的版权请立即写信通知我
![](https://csdnimg.cn/release/download_crawler_static/3524381/bg2.jpg)
键盘扫描
键盘是由按键构成,是单片机系统里最常用的输入设备。我们可以通过键
盘输入数据或命令来实现简单的人-机通信。
1. 按键及键抖动
按键是一种常开型按钮开关。平时,按键的两个触点处于断开状态,按下
按键时两个触点才闭合(短路)。如图 1-1 所示,平常状态下,当按键 K 未被按
下时,按键断开,PA0 输入口的电平为高电平;当按键 K 被按下时,按键闭合,
PA0 输入口的电平为低电平。
图 1-1 按键电路
图 1-2 按键抖动
一般的按键所用开关都是机械弹性开关,由于机械触点的弹性作用,按键开
![](https://csdnimg.cn/release/download_crawler_static/3524381/bg3.jpg)
关在闭合时不会马上稳定地连接,在断开进也不会马上完全的断开,在闭合和断
开的瞬间均有一连串的抖动。按键按下的电压信号波形图如图 1-2 所示,从图中
可以看出按键按下和松开的时候都存在着抖动。抖动时间的长短因按键的机械特
性不同而有所不同,一般为 5ms~10ms。
如果不处理键抖动,则有可能引起一次按键被误读成多次,所以为了确保能
够正确地读到按键,必须去除键抖动,确保在按键的稳定闭合和稳定断开的时候
来判断按键状态,判断后再做处理。按键在去抖动,可用硬件或软件两种方法消
除。由于使用硬件方法消除键抖动,一般会给系统的成本带来提高,所以通常情
况下都是使用软件方法去除键抖动。
常用的去除键抖动的软件方法有很多种,但是都离不开基本的原则:就是要么避
开抖动的时候检测按键或是在抖动的时候检测到的按键不做处理。这里说明一下
常用的两种方法:
第一种方法是检测到按键闭合电平后先执行一个延时程序,做一个 12ms~
24ms 的延时,让前抖动消失后再一次检测按键的状态,如果仍是闭合状态的电
平,则认为真的有按键按下;若不是闭合状态电平,则认为没有键按下。若是要
判断按键松开的话,也是要在检测到按键释放电平之后再给出 12ms~24ms 的延
时,等后抖动消失后再一次检测按键的状态,如果仍为断开状态电平,则确认按
键松开。这种方法的优点是程序比较简单,缺点是由于延时一般采用跑空指令延
时,造成程序执行效率低。
第二种方法是每隔一个时间周期检测一次按键,比如每 5ms 扫描一次按键,
要连续几次都扫描到同一按键才确认这个按键被按下。一般确认按键的扫描次数
由实际情况决定,扫描次数的累积时间一般为 50ms~60ms。比如,以 5ms 为基
本时间单位去扫描按键的话,前后要连续扫描到同一个按键 11 次而达到 50ms
来确认这个按键。按键松开的检测方法也是一样要连续多次检测到按键状态为断
开电平才能确认按键松开。这种方法的优点是程序执行效率高,不用刻意加延时
指令,而且这种方法的判断按键抗干扰能力要更好;缺点是程序结构较复杂。
在以下的介绍中,我们将使用第二种方法来去除键抖动。
2. 键盘结构及工作原理
键盘一般有独立式和行列式(矩阵式)两种。当然还有其它的结构,比如交
互式结构等等,不过其它的结构比较少用,在这里就不介绍了。在中颖的单片机
中,有些单片机的 LCD 驱动引脚的 SEGMENT 口可以共享按键扫描口,当选择为按
键扫描口时,可以使用这些口来扫描按键,所以在外部电路可以连接 LCD 和按键
矩阵,采用分时扫描进行处理,下面也将介绍这个特殊应用的方法和注意的地方。
独立式键盘结构
![](https://csdnimg.cn/release/download_crawler_static/3524381/bg4.jpg)
独立式键盘是指各个按键相互独立地连接到各自的单片机的 I/O 口,I/O
口只需要做输入口就能读到所有的按键。
独立式键盘可以使用上拉电阻也可以使用下拉电阻,基本原理是一样
的。使用上拉电阻的独立式键盘结构如图 1-3 所示。
图 1-3 独立式键盘结构
图 1-3 所示的是利用 PB 口和 PC 口共 8 个 I/O 口独自连接 8 个按键,使
用外部上拉电阻构成的独立式键盘。在中颖的单片机中,有很多型号的单片
机有 I/O 内部上拉电阻或内部下拉电阻,所以在实际应用,若是使用到这样
的单片机,是不需要接外部上拉电阻或下拉电阻了,只需在程序中把内部上
拉电阻或内部下拉电阻打开即可。
从图 1-3 可以看出,当按键没有被按下的时候,连接到该按键的 I/O 口
输入电平为高电平,当按键按下去之后,输入电平则变为低电平。所以要判
别有无按键按下,只需判断输入口的电平即可,程序写起来十分方便。
这种键盘虽然有电路简单、程序容易写的优点,但是也有缺点:当按键
个数较多的时候,要占用较多的 I/O 口资源。所以当按键个数比较多的时候,
![](https://csdnimg.cn/release/download_crawler_static/3524381/bg5.jpg)
比较少用这样的按键结构,而是使用下面我们要讲的行列式结构。
行列式键盘结构
为了减少键盘占用太多的单片机 I/O 口资源,当按键个数较多的时候,
通常都使用行列式键盘。
行列式键盘同样可以使用上拉电阻或是下拉电阻,使用上拉电阻的行列
式键盘结构如图 1-4 所示。
图 1-4 行列式键盘结构
跟独立式键盘一样,若是使用有内部上拉电阻或是下拉电阻的单片机
时,外面不需连接上拉电阻或是下拉电阻,只需在程序内打开内部上拉电阻
或是内部下拉电阻即可。
行列式键盘的原理就是每一行线与每一列线的交叉地方不相通,而是接
上一个按键,通过按键来接通。所以利用这种结构,a 个 I/O 口可以接 a 个
行线,另外的 b 个 I/O 可以接 b 个列线,总共可以组成 a×b 个按键的键盘。
如图 1-11 所示,共有 4 个行线,4 个列线,可以组成 4×4=16 个按键的键
盘。
剩余20页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- yahlii2016-12-07有参考价值
- ReddingH2013-01-16下載的比較早了,還是可以的。
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
dcwdch
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 消防高清大音量双语应急广播录音
- 基于SpringMVC和Vue校园订餐系统(移动端+PC端+server端源码+SQL脚本+环境安装部署运行讲解)
- Android 悬浮view
- qt发布软件代码方法资源
- 2_2024-03-23--数据结构实验指导书.doc
- cherryusb-acm-multi.zip
- 全套ad封装库(大部分带3d模型)
- JAVA-线程的入门记录
- Java项目-基于Springboot+Vue的汉服推广网站的设计与实现(源码+数据库脚本+部署视频+代码讲解视频+全套软件)
- STC12LE5A60S2 STC125A60S2系列单片机开发板资料(DEMO软件源码+硬件设计原理图+技术资料).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)