- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51单片机学习教程第5章 按键
按键识别 单片机识别按键状态的原理: 对单个或成组按键,需要通过接口电路与单片机IO口相连接 单片机通过一定的方式(查询或中断)检查各个IO口的状态,从而得知按键的状态 如有按键按下,将按下的按键键号送入单片机进行处理 单片机C语言程序设计 单片机C语言程序设计 单片机C语言程序设计 单片机C语言程序设计 单片机C语言程序设计 单片机C语言程序设计 单片机C语言程序设计 单片机C语言程序设计 单片机C语言程序设计 单片机C语言程序设计 单片机C语言程序设计 按 键Key * * 单片机C语言程序设计 单片机与按键 计算机系统的输入设备 5.1 按键开关的分类 5.2 按键识别的方法 5.3 单片机与按键的连接 5.4 按键的处理方法 5.5 * * 单片机C语言程序设计 计算机系统的输入设备 计算机系统的输入设备指向计算机输入信息的设备,是计算机与用户或其他设备交换信息的桥梁。 常用的输入设备有:键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、游戏杆和语音输入装置等。 * * 单片机C语言程序设计 嵌入式系统的输入设备 嵌入式系统因性能体积等限制,主要使用 、 、 等作为输入s设备。 输入设备在嵌入式系统中主要作用: 数据输入 流程控制 * * 单片机C语言程序设计 按键开关类型 单片机系统使用的按键开关种类繁多: 单个按键 自锁按键 钮子开关 编码开关 轻触按键 * * 单片机C语言程序设计 键盘的分类 单片机系统使用的键盘分为两类: 全编码键盘 配有专用硬件电路识别按键编码 程序简单、硬件复杂、价格较贵 非编码键盘 靠单片机软件识别按键编码 硬件简单、程序复杂、价格便宜 * * 单片机C语言程序设计 单片机与键盘的连接 键盘与单片机连接方式有: 独立式键盘 单个按键直接与单个IO引脚相连 优点:简单、易用 缺点:接入按键少,IO口占用较多 行列式键盘 多个按键组成矩阵形式与IO口相连 优点:接入按键多 缺点:复杂、不易使用 * * 单片机C语言程序设计 单片机与键盘的连接 键盘与单片机连接方式有: 通过键盘控制芯片相连 矩阵键盘与扩展芯片相连(HD7279、8279) 优点:占用IO口少,软件控制容易 缺点:价格较高 * * 单片机C语言程序设计 按键识别 单片机在识别按键时,IO口工作在输入状态: 按键弹起,IO口电平5V 按键按下,IO口电平0V 单片机读取IO口的状态 即可知按键的状态 * * 单片机C语言程序设计 按键抖动 实际的按键在被按下或抬起时,由于机械触点的弹性作用,在闭合或断开的瞬间均伴随有一连串的抖动现象。 * * 单片机C语言程序设计 完整的按键过程包括: 释放状态 按下抖动阶段 完全按下状态 释放抖动阶段 释放状态 按键防抖 由于按键在闭合或断开的瞬间伴随着机械抖动,造成输入电平的变化,因此在单片机识别按键的过程中应采取防抖措施: 硬件防抖 在按键输出端加RS或施密特触发器 去抖效果好、电路复杂、成本高 软件防抖 利用软件进行延时(10ms) 电路简单、成本低、但占用CPU时间 * * 单片机C语言程序设计 键盘的工作方式 单片机对按键动作的识别有两种方式: 查询方式 单片机不断的扫描键盘判断按键是否动作 特点:硬件简单,但需要单片机不停地扫描键盘,占用CPU资源 中断方式 键盘动作时发出中断请求,单片机响应中断请求后转按键识别程序 特点:硬件复杂,需要中断电路,但不占用CPU资源 * * 单片机C语言程序设计 单片机处理按键的流程 单片机处理按键动作需要以下步骤: 判断按键是否按下 按键按下时的防抖 识别哪个按键按下,判断键值 判断按键是否放开 送出键值,处理按键动作 * * 单片机C语言程序设计 独立式按键的处理 每个独立按键单独占有一根单片机IO口线,各按键之间相互独立。 少量按键定义位变量处理 成列按键使用并行IO口处理 * * 单片机C语言程序设计 矩阵式键盘的处理 矩阵式键盘的按键排列成矩阵的形式,在单根IO口线上连接了多个按键,因此需要特殊的处理方法: 逐行(列)扫描法 单片机一行行(列列)循环对键盘进行扫描 口线反转法 单片机按行和按列扫描一次 * * 单片机C语言程序设计 按键处理中的特殊要求 单片机在处理按键的过程中,根据实际的需求,还可能遇到以下一些比较复杂的问题: 短按、长按按键 按键按下时计时 单击、双击按键 记录每次和上一次按键的键值 组合键 增加按键键码 * * 单片机C语言程序设计 实例 设计一个单片机按键系统,单片机能识别到8个按键的变化。 * * 单片机C语言程序设计 软件设计 软件流程图 * * 单片机C语言程序设计 程序预处理 编译系统对程序中特殊命令进行预处理
文档评论(0)