网站大量收购独家精品文档,联系QQ:2885784924

情境五应用矩阵键盘.pptVIP

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

湖南科技工业职业技术学院主讲:刘丹湖南科技工业职业技术学院主讲:刘丹单片机学习领域情景6应用矩阵键盘01请分组单步执行数码控制程序02从每组中请一个同学回答数码控制程序中所用指令的作用03通过程序执行过程进一步讲解子程序调用和堆栈的概念04重点堆栈的操作过程单片机与键盘接口单片机与键盘接口按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。按键按照接口原理可分为编码键盘与非编码键盘两类。这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对按键的识别,硬件结构复杂;非编码键盘主要是由软件来实现按键的定义与识别,硬件结构简单,软件编程量大。这里将要介绍的独立式按键和矩阵式键盘都是非编码键盘。单片机与键盘接口分类:一、独立式按键独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。单片机与键盘接口矩阵式按键通常,矩阵式键盘的列线由单片机输出口控制,行线连接单片机的输入口。单片机与键盘接口按键的去抖机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来,抖动时间一般为5?10ms,在触点抖动期间检测按键的通与断状态,可能导致判断出错。键盘输入中要解决的问题:按键的确认:

即判断按键是否闭合。通过检测电平的高低状态,就能确认是否有键按下。

按键抖动的消除

按键较多时,常采用软件方法消除抖动。即在第一次检测到有按键被按下时,执行一段延时12-15ms的子程序后,再确认该键电平是否仍保持闭合状态电平,如保持为闭合状态电平就可确认真正有键按下,从而消除抖动的影响。单片机与键盘接口按键的去抖检测按键(b)释放按键按键去抖流程图单片机与键盘接口矩阵式按键键盘编程扫描法识别按键一般应包括以下内容:判别有无键按下。键盘扫描取得闭合键的行、列位置。用计算法或查表法得到键值。判断闭合键是否释放,如没释放则继续等待。将闭合键的键值保存,同时转去执行该闭合键的功能。开发板按键矩阵由4行4列组成4行:R1、R2、R3、R4,接P3.0、P3.1、P3.2、P3.3。4列:C1、C2、C3、C4,接P3.4、P3.5、P3.6、P3.7。按键的识别:识别按键的方法很多,最常见的方法是扫描法。由列线送入全“0”扫描字、行线读入行线状态来判断的。其方法是:给列线的所有I/O线均置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入不全为1。键盘中哪一个键按下是由列线逐列置低电平后,检查行输入状态。其方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下之键不在此列。如果不全为1,则所按下的键必在此列。而且是在与电平为“0”的行线相交点上的那个键。程序设计流程图如下:列线输出0,行线写1输入行线数据行线数据数据不全为“1”延时去抖列线输出0,行线写1输入行线数据行线数据数据不全为“1”转键处理程序判断是否有键按下程序设置列扫描次数首列号送R6DPTR指向列扫描码表查表求列扫描码输出列扫描码输入行线状态0行有键按下1行有键按下2行有键按下3行有键按下计算0行键值计算1行键值计算2行键值计算3行键值列号加14列扫描结束否键值存于A结束键处理程序NOYESYESNONONONONONOYESYESYESYESYES参考程序Org0000hMain:movwdtcn,#0deh;关看门狗movwdtcn,#0adhmovprt3cf,#0f0h;列线推挽输出方式movxbr2,#40h;交叉开关允许Key:lcallpressyn;判断是否有键按下lcallwhich;判断键号ljmpkeyPressyn:movP3,#0FH;使列线输出0,行线写1movA,P3;输入行线上的数据cjneA,#0fh,press;不相等,有键按下sjmppressyn;没键按下,重新查询Press:lcalldelay;有键按

文档评论(0)

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

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

1亿VIP精品文档

相关文档