项目2任务5非编码键盘系统设计.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文档。上传文档
查看更多
任务5 非编码键盘系统设计 任务内容 看一看:各种终端设备中的键盘 知识要求 知识点1 非编码键盘 1个MCU的IO口,可以检查一个按键的状态 结构简单 编程容易 口线资源占用严重! 行列结构,节省口线 编程略复杂 小练习1 知识点2 按键的抖动与消抖 1. 按键的抖动现象 2. 硬件消抖 RS触发电路实现消抖 3. 软件消抖 5ms延时消抖 知识点3 线性非编码键盘的识别 知识点4 矩阵非编码键盘的识别 行线和列线:一个输出,另一个输入 常用方法:一是行扫描法,二是线反转法 键名与键值 2、线反转法 3、键名与键值 一一对应(键值表) 知识点5 多分支语句(switch) switch 语句中的break 语句 小练习2 小练习3 典型问题分析 案例1(运算问题) 案例2(循环结构问题) 带参数和返回值的子程序设计 子程序1(键盘检测,返回键值) 子程序2(获取键值) 参考例程 小练习4 课后练习 * * 项目2 键盘与显示系统 组装一个单片机系统,外接16个按键(代表0~F),以及1位数码管显示器(或其他显示器)。要求实时显示当前按下的按键值。 独立键盘和矩阵键盘的结构,能够完成单片机与它们的接口电路设计;了解按键抖动的原因,能够解决如何消除按键抖动的问题;矩阵键盘按键的识别和检测方法,能够用多分支结构的编程方法实现按键的检测; 能将键盘识别模块代码和显示模块代码组合,完成系统设计。 1、编码键盘与非编码键盘 2、线性非编码键盘 5V 3、矩阵非编码键盘 【例】 完成4*4矩阵键盘与单片机的接口设计 按键是控制系统中最常见的输入设备。 按键的闭合和打开将在单片机的输入引脚上分别加入高、低电平,这样CPU就可以根据读入引脚的信号来判断按键的状态。 现象:持续5~10ms 后果:CPU的误判 延时5ms再次读取端口,如果前后两次结果相同,就认为状态稳定 1、行扫描法 5V 行端口 列端口 0 1 1 1 1 1 1 1 对第一行进行扫描: 行输出端口输出 0111 检查列回读端口的值 5V 行端口 列端口 1 0 1 1 1 0 1 1 对第二行进行扫描: 行输出端口输出 1011 检查列回读端口的值 最坏的情况下需要进行4次扫描过程,能否更快? 对第一行进行扫描: 行输出端口输出 0111 检查列回读端口的值 1 1 1 1 5V 行端口 列端口 1 1 0 1 0 0 0 0 行端口输出 0000 检查列端口的值 根据列端口的值,已经可以确定在哪一列有键按下 1 1 1 1 5V 行端口 列端口 1 1 1 1 行端口输出 0000 检查列端口的值 根据列端口的值,确定 哪一列有键按下 将行端口和列端口 输入输出方向反转 列端口输出0000 检查行端口的值 根据行端口的值,确定 哪一行有键按下 0 0 0 0 1 0 1 1 0x77 F 0x7d 7 0xb7 E 0xbd 6 0xd7 D 0xdd 5 0xe7 C 0xed 4 0x7b B 0x7e 3 0xbb A 0xbe 2 0xdb 9 0xde 1 0xeb 8 0xee 0 键值 键名 键值 键名 switch语句的一般形式: switch ( 表达式 ) { case 常量表达式1 : 语句1; case 常量表达式2 : 语句2; …… case 常量表达式n : 语句n; default : 语句n+1; } break 语句又称为间断语句,其作用是使程序的执行立即跳出switch 语句,从而使switch 语句真正起到分支的作用。 为了解决上述存在的问题,必须在switch 语句中使用break 语句,即在每个语句的后面添加一条“break; ”语句。 使用break 语句后,switch 语句的一般格式: switch ( 表达式 ) { case 常量表达式1:语句1; break; case 常量表达式2:语句2; break; …… case 常量表达式n:语句n; break; default:语句n+1; } 使用break 语句后,switch 语句的执行过程如图所示。 【例】 4个按键控制4个LED开关。

文档评论(0)

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

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

1亿VIP精品文档

相关文档