单片机一个按键的多次击键组合判别技巧.docVIP

单片机一个按键的多次击键组合判别技巧.doc

  1. 1、本文档共8页,可阅读全部内容。
  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文档。上传文档
查看更多
单片机一个按键的多次击键组合判别技巧.doc

《一个按键的多次击键组合判别技巧》大话篇 小匠自从上次在旧社区发表了一篇《程序编写规范倡议书大话篇》后,好久没有发表高论了.急坏了一帮MM,以为小匠退隐江湖了。 (斑竹在旁问道:“MM”不是“Mie Mie”,而是 “Ma Ma” 吧?) 论坛内外谣言四起,有人说小匠改行了,不做程序匠,改做泥水匠了;还有人说小匠上阿富汗反恐怖去了;其实非也,只因新板论坛启用后,小匠一直用不惯...... (斑竹在旁笑道:是“用不来”吧?) 今天,小匠再次隆重登坛献演。贴一个小程序段..... (斑竹道:我看是“蹬痰现眼”吧?) (程序匠人贴完帖子,下到后台,一边洗着手上残余的浆糊,一边哼着小曲:“如果你的‘芯’是一座作坊,我愿作那不知疲倦的程序匠,……”) (一黑客悄悄贴近匠人,将一个废弃的浆糊桶扣到匠人头上......) (匠人忙问:“斑竹,谁把灯给关了?”) (众人哈哈大笑!......) 一个按键的多次击键组合判别技巧 有时在设计中,往往要用一个按键来输入多种信息。如:单击/双击/三击、短击/长击、还有各种组合击键方式。可以用以下程序来做。 如果按键闭合时间500MS,判断为一次短击(0); 如果按键闭合时间500MS,判断为一次长击(1); 两次击键时间间隔应700MS,如果按键释放后700MS内无键按下,则结束读键。 读键完毕返回一个键号值KEY_NUM。其意义如下: KEY_NUM 意义 无键按下过 无意义 单次短击 单次长击 短击 + 短击 短击 + 长击 长击 + 短击 长击 + 长击 …… …… 7次短击 7次长击 上表中的KEY_NUM值的规律是,从左向右看,第一个1后面的每一位代表一次击键;0代表短击,1代表长击。掌握该规律后,我们可将任何一个8位的二进制数翻译成一种击键组合。例如代表的是:短+长+短+长+短+长。 该程序最多可识别7次连续击键,共254种组合。但并非每个程序中用得上。在大多数程序中,能判断双击即可以了,这时可将程序中的ZHBIT定义为2。同理,如果要判断3次按键,将ZHBIT定义为3即可。 当ZHBIT=1时,程序仅能判断一次击键,包括2种组合(短击/长击);当ZHBIT=2时,程序还能判断两次击键,包括6(2+4)种组合(短击/长击/(短+短)/(短+长)/(长+短)/(长+长));以次类推,当ZHBIT=3时,程序能判断三次击键,包括14(2+4+8)种组合。 ZHBIT 组合种类 1 2 2 2+4=6 3 2+4+8=14 4 2+4+8+16=30 5 2+4+8+16+32=62 6 2+4+8+16+32+64=126 7 2+4+8+16+32+64+128=254 下面这段程序摘自小匠的一个智能充电器程序(MCU是EM78P458),如下: ;******************************** ;读键子程序 ;出口: KEY_NUM =键号值 ;中间: KEY_DL =计数器 ;说明: /* 短击:键按下时间500MS 长击:键按下时间500MS 两次按键间隔时间700MS 键号定义: KEY_NUM 无键按下 KEY_NUM 无意义 KEY_NUM 单次短击 KEY_NUM 单次长击 KEY_NUM 短击 + 短击 KEY_NUM 短击 + 长击 KEY_NUM 长击 + 短击 KEY_NUM 长击 + 长击 ... ... KEY_NUM 长击 + 长击 + 长击 + 长击 + 长击 + 长击 + 短击 KEY_NUM 长击 + 长击 + 长击 + 长击 + 长击 + 长击 + 长击 */ ZHBIT EQU 2 ;按键组合位(选择范围1~7) ;******************************** READKEY: CLR KEY_NUM ;清键号 JKOFF READKEYF

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档