



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机按键去抖动程序设计思路徐丽红王佰营在单片机应用系统设计中,人机界面部分的友好程度,很大一部分取决于键盘处理程序。在按键时按得快了没有反应,按慢了一连响应几次,总给人紧迫感或迟钝感,不能使人满意。用以下思路设计的键处理程序取得了满意效果。判断有没有键值:1. 若有键值:判断是否为首次按下:A: 若首次按下:判断是否与上次按下的键值相同a. 若相同再判断:是否已经按下了300ms ?1).若已经按下 300ms 则将此键做为连键处理。2).若不是连键则判断:是否按下20ms ?1.若确认按下 20ms ,得到有效键值等待弹起2.若不是按下 20ms 直接结束处理( ret )。b. 若不相同
2、则将标志清零结束处理(ret )。B :若不是首次按下:将键值暂存起来,标志置位结束处理。2. 若无键值:判断是否有键值已被确认A. 若有键已被确认:判断按键是否首次抬起a. 若首次抬起:判断抬起延时时间(20ms )是否到达1.若延时到则将标志处理结束处理。2.若延时未到直接结束处理(ret )。b.若非首次抬起:直接结束处理(ret )。B. 若没有键被确认:直接结束处理(ret )。具体程序实现流程图如下:( 所有延时均为非阻塞式延时)Lcll scan_key-为调用键扫描程序;简单的按键处理程序见:简单、友好的按键处理程序设计简单、友好的按键处理程序设计王佰营徐丽红在嵌入程序设计中,
3、键处理程序在一定程度上决定着人机对话界面的友好程度。 WINDOWS 是公认的界面友好的典范,我们就借鉴WINDOWS 的键处理的思想:1. 当击键时 WINDOWS 立即作出响应;2. 当按住键不放时, WINDOWS 延迟一定时间来判断是否为连键;其间不作响应;3. 当认为是连键时,会间隔一定时间重复作出响应;(可以打开记事本,敲个 h 键试验: 瞬时敲击,即可出现 h,再按着键不放,无 h出现,当延迟一定时间 h,就以较快速度出现 ;)在 C8051F020和 DSP 编程中运用上述的思想所编的键处理程序非常简捷、高效和友好,以下为该程序的流程图:根据该流程的 51 系列单片机程序和DS
4、P程序:1、C8051F020单片机程序如下:;=; function: key_filter;键盘去抖程序 - 徐丽红; input: a; output: key.bsure; usage: a,b;=key_filter: ;键盘去抖程序lcall scan_keyjzkf_no;a=0?jbbfirst,kf_1th;first down?movb, amova, k_dlyjnzkf_ret;20ms到了吗 ?mova, b;20ms到cjne a, key_tmp,kf_no ;a=k_tmp?movk_dly, #10;a=k_tmpdecdly_kjnbbfast, kf_no
5、fast ;是连键吗 ?kf_is0:mova,dly_k;是连键jnzkf_ret;300ms/160ms?movdly_k, #12;fast OK!sjmp kf_ftokkf_nofast:mova,dly_k;不是连键cjnea,#24, kf_is0;延时了 1 次吗?kf_ftok:movkey,key_tmp;first OK!setbbkey_dosetbbfastkf_ret:retkf_1th:movk_dly, #10;first downmovkey_tmp, amovdly_k, #25clrbfirstclrbfastret2、LF2407 型 DSP 程序如下:
6、;-;function:judge_key键值判断;input:-;output:-;usege:ACC;-judge_key:;键值判断ldp#PEDATDIR7laclPEDATDIRcmpland#00110110bldp#DP_B01saclkey_tmpbcndk_down,NEQ;CATCH KEY?ldp#DP_B01splk#00h,bknot1retk_down:lacl bknot1bcndnot_first,NEQ;first?lacl key_tmpsaclkey_oksplk#04,key_clksplk#50,key_dlysplk#11h,bknot1splk#0
7、0h,bksuresplk#00h,bcontinueretnot_first: laclkey_clk;N timesbcndT_over,EQ ;12ms?retT_over:lacl key_ok;12msxorkey_tmpbcndIs_same,EQ ;same key?splk#00h,bknot1retIs_same:splk#4,key_clklacl bcontinuebcndIs_fast,NEQ ;continue?OK_key:splk#11h,bcontinuesplk#11h,bksureretIs_fast: laclkey_dly;key_dly-sub#01hsaclkey_dlybcndtuch_set,EQ ;500/300ms?rettuch_set:splk#25,key_dlybOK_key该
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 气管异物患者的护理
- 驾校管理系统答辩
- 2024年CFA考试问题解析试题及答案
- 鱼塘光伏施工全过程培训资料
- 防暴雨雷电安全教育
- 鼻腔腺癌病理
- 护理操作礼仪规范
- 麻醉科室年终总结
- 第二章 3 简谐运动的回复力和能量-2025版高二物理选择性必修一
- 第八章 作业25 功-2025版高一物理必修二
- 人教版小学六年级下册音乐教案全册
- 12J201平屋面建筑构造图集(完整版)
- 20起典型火灾事故案例合集-2024年消防月专题培训
- 湘教版区域地理 课件 第八讲《南亚-印度》第二课时
- 拼多多在线测评98道题
- 人教版(2024)六年级全一册 第18课 土壤湿度控制好
- 中国国新基金管理有限公司招聘笔试题库2024
- 高中历史选择性必修2知识点总结归纳
- 海洋能电网并网控制策略
- 中国血脂管理指南(基层版2024年)解读
- 湖南省2024年对口升学考试计算机应用类试题(含参考答案)
评论
0/150
提交评论