你好,游客 登录 注册 搜索

背景:
阅读内容

天津时时彩五星走势图非凡彩票:单片机按键软件可靠性的提高

[日期:2018-03-07] 来源:  作者:广东 尹华军 [字体: ]

天津时时彩开奖 www.yoyjg.cn

 

  假设单片机外接十六个按键,十六个按键可以是通过八个10口接入的4*4矩阵按键,也可以是通过一个模数转换器(一个10口)接入的十六个按键,单片机“按键软件”将十六个按键“按下”时分别转换成0至15共十六个键值,没有按键“按下”时(即都处于“释放”状态),键值为16。由于按键“按下”或“释放”时会产生“抖动”,或偶尔受到“外部干扰”,会产生部分“假键值”,本文介绍过滤掉这些“假键值”提高“按键软件”可靠性的方法。
  
  按键“按下”或“释放”时产生“抖动”,或偶尔受到的“外部干扰”,持续时间一般都小于30毫秒,单片机每隔10毫秒获取_次键值,上上次获取的键值、上次获取的键值、本次获取的键值,构成连续三次键值,过滤“假键值”提高“按键软件”可靠性的方法如下:
  
  1.若连续三次键值不相同,就判为“不稳定的键值”,“过滤后的本次获取的键值”简称“G”为16(即键值稳定前,等效为“释放”状态)。
  
  2.若连续三次键值相同,就判为“稳定的键值W”,此时:若与“上次的稳定的键值”不同,就判为新的键值G,键值G为“稳定的键值W”。若与“上次的稳定的键值”相同,则。
  
  A.若该键值对应的按键不允许“按键长时间按下表示多次按键”,则键值G为16。
  
  B.若该键值对应的按键允许“按键长时间按下表示多次按键”,则:
  
  a)持续时间小于或等于1000毫秒,键值G为16(即等效“释放”状态)。
  
  b)持续时间大于1000毫秒,键值G为“稳定的键值W”(即等效相同的键第二次“按下”)。
  
  c)持续时间大于1500毫秒,键值G为“稳定的键值W”(即等效相同的键第三次“按下”)。
  
  d)持续时间大于2000毫秒,键值G为“稳定的键值W”(即等效相同的键第四次“按下”)e)……假设:
  
  1.本次获取的键值放在51单片机的累加器A中:
  
  2.只有键值8、9对应的按键允许“按键长时间按下表示多次按键”。
  
  3.程序占用23H、22H、21H、20H四个DATA区存储单元。
  
  23H中存放“10毫秒”剩余次数,用于计算“稳定的键值”的持续时间。累加器A、22H、21H中存放最近的连续三次键值。20H中存放“上次的稳定的键值”。
  
  4.键值过滤子程序运行结束后,过滤后的键值G存放在累加器A中。
  
  过滤“假键值”提高“按键软件”可靠性的“键值过滤子程序KEY_VAL-UE_FILTER”如下:
  
  KEY_VALUE_FILTER:
  
  CJNE A,22H, KEY_VALUE_FIL-TER_1CJNE, A,21H,KEY_VALUE_FIL-TER_1CJNE A,20H, KEY_VALUE_FIL-TER_3DJNZ 23H, KEY_VALUE_FIL-TER_2MOV 23H,#50;50次循环的时间,即500毫秒CJNE A,#08H,$+4;判断长时间按下的键值是否为8RETCJNE A,#09H,KEY_VALUE_FIL-TER_2;判断长时间按下的键值是否为9RETKEY_VALUE_FILTER_1:
  
  XCH A,22HXCH A,21HKEY_VALUE_FILTER_2:
  
  MOV A,#16RETKEY_VALUE_FILTER_3:
  
  MOV 20H,AMOV 23H,#100;初始化,100次循环的时间,即1000毫秒RET小结:
  
  1.本文的过滤“假键值”提高“按键软件”可靠性的方法,经实践验证,具有非常好的抗“抖动”抗“外部干扰”效果。
  
  2.“按键长时间按下表示多次按键”在设置连续性参数中非常实用,如设置电子时钟的初始时间,按一下,加1,再按一下,再加1,若按下不放,可快速连续增加,增加速度可通过23H存储单元的值(即本文中的1000毫秒和500毫秒)进行改变。

     往下看有更多相关资料

推荐文章 收藏 推荐 打印 | 整理:嘉嘉宝宝 | 阅读:
查看相关资料       单片机 

  • 春运谢幕 “互联网+服务”等成铁路郑州局公司亮点 2018-08-17
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-08-17
  • 【学习时刻】人民大学王义桅:“一带一路”是世界上最大的民生工程 2018-08-16
  • 端午节,跟随习近平找寻中华民族“精气神” 2018-08-12
  • 571| 518| 338| 201| 295| 905| 494| 961| 994| 441|