




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除在单片机应用系统设计中,人机界面部分的友好程度,很大一部分取决于键盘处理程序。在按键时按得快了没有反应,按慢了一连响应几次,总给人紧迫感或迟钝感,不能使人满意。用以下思路设计的键处理程序取得了满意效果。判断有没有键值:lo若有键值:判断是否为首次按下:A:若首次按下:判断是否与上次按下的键值相同ao若相同再判断:是否已经按下了300ms?1)o若已经按下300ms则将此键做为连键处理。2)。若不是连键则判断:是否按下20ms?1) o若确认按下20ms,得到有效键值等待弹起2) .若不是按下20ms直接结束处理(ret)。b.若不相同则将
2、标志清零结束处理(ret)。B:若不是首次按下:将键值暂存起来,标志置位结束处理.2。若无键值:判断是否有键值已被确认A.若有键已被确认:判断按键是否首次抬起a.若首次抬起:判断抬起延时时间(20ms)是否到达1>.若延时到则将标志处理结束处理。2.若延时未到直接结束处理(ret)。bo若非首次抬起:直接结束处理(ret).Bo若没有键被确认:直接结束处理(ret)。具体程序实现流程图如下:(所有延时均为非阻塞式延时)2 / 12资料内容仅供您学习参考,如有不当之处,请联系改正或者删除Lcllscan_key为调用键扫描程序;简单的按键处理程序见:3 / 12在嵌入程序设计中,键处理程序
3、在一定程度上决定着人机对话界面的友好程度.WINDOWS是公认的界面友好的典范,我们就借鉴WINDOWS的键处理的思想:lo当击键时WINDOWS立即作出响应;2o当按住键不放时,WINDOWS延迟一定时间来判断是否为连键;其间不作响应;3o当认为是连键时,会间隔一定时间重复作出响应;资料内容仅供您学习参考,如有不当之处,请联系改正或者删除key_ok=key_tnip?N bknotl=0bksme =1bcontinue =1IIN ,key_dly=key dly -1_key_dly =3? YN ret(可以打开记事本,敲个,'键试验:瞬时敲击,即可出现%;再按着键不放,无以
4、出现,当延迟一定时间少,就以较快速度出现、)在C8051F020和DSP编程中运用上述的思想所编的键处理程序非常简捷、高效和友好,以下为该程序的流程图:开始keyJinp=O?bkiiotl=O?N>key_clk=0?keyclk=4keydly=50bkiiotl=0bksnre=0bcontinue=0key_clk=4bcontinue=0?据该流程的51系列单片机程序和DSP程序:1、C8051F020单片机程序如下:function: key_f ilter;键盘去抖程序-一徐丽红input:aoutput:key.bsureusage:a,b4 / 12资料内容仅供您学习参
5、考,如有不当之处,请联系改正或者删除key_.fiIter:;键盘去抖程序leanscan_keyjzkf_no;a=0?jbbfirst,kf_lth;firstdown?movb,amova,k_dlyjnzkf_ret;20ms到了吗?mova,b;20ms到cjnea,key_tmp,kf_no;a=k_tmp?movk_dly,#10;a=k_tmpdecdly_kjnbbfast,kf_nofast:是连键吗?kf_isO:mova,dly_k;是连键jnzkf_ret;300ms/160ms?movdly_k,#12;fastOK!sjmpkf_ftokkf_nofast:mov
6、a,dly_k;不是连键cjnea,#24,kf_isO;延时了1次吗?kf_ftok:movkey,key_tmp;firstOK!setbbkey_do4 / 12资料内容仅供您学习参考,如有不当之处,请联系改正或者删除setbbfastret5 / 12资料内容仅供您学习参考,如有不当之处,请联系改正或者删除;firstdownkf_lth:movk_dly,#10movkey_tmp,amovdly_k,#25clrbfirstclrbfastret2、LF2407型DSP程序如下:;function:judge_key键值判断;input:;output:;usege:ACCjudg
7、e_key:;键值判断Idp#PEDATDIR»7laclPEDATDIRcmpland#00110110bIdp#DP_B01saclkey_tmpbendk_down,Idp#DP_B01NEQ ; CATCHKEY?bknot 1splk#00h,6 / 12资料内容仅供您学习参考,如有不当之处,请联系改正或者删除lacl bcontinuebend Is_fast, NEQOK_key:splk#l Ih,retk_down:laclbknot1bendnot_first,laclkey_tmpsaclkey_oksplk#04.splk#50,splk#lIhrsplk#0
8、0h,splk#00h,retnot_first:laclkey_clkbendT_over,retTrover:laclkey_okxorkey_tmpbendIs_same,splk#00hrretIs_same:splk#4,NEQ;first?key_clkkey_dlybknot1bksurebcontinue;NtimesEQ;12ms?;12msEQ;samekey?bknotIkey_clkcontinue?bcontinue6 / 12资料内容仅供您学习参考,如有不当之处,请联系改正或者删除bksuresplk#1lh.7 / 12Is_fast:laclkey_dlysub#01h;key_dlysaclkey_dlybendtuch_set,EQ ; 5OO/3OOms?tuch_set:splk#2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北旅游职业学院《翻译理论入门》2023-2024学年第二学期期末试卷
- 柳州城市职业学院《无机材料科学与技术》2023-2024学年第二学期期末试卷
- 特殊人群产品设计核心框架
- 湖北汽车工业学院科技学院《经济法(II)》2023-2024学年第二学期期末试卷
- 重庆工程职业技术学院《数据新闻理论与实践》2023-2024学年第二学期期末试卷
- 全国交通安全日主题教育活动
- 浙大宁波理工学院《材料与器件测试技术》2023-2024学年第二学期期末试卷
- 河北大学工商学院《电路分析基础实验》2023-2024学年第二学期期末试卷
- 邯郸科技职业学院《建筑制图与识图》2023-2024学年第二学期期末试卷
- 西安思源学院《儿童游戏创编》2023-2024学年第二学期期末试卷
- 创造性思维与创新方法智慧树知到期末考试答案章节答案2024年大连理工大学
- 外科围手术期营养支持疗法
- 知道网课智慧树《集成电路测试技术基础(北方工业大学)》章节测试答案
- 人工智能在新闻中的应用
- (高清版)TDT 1015.1-2024 地籍数据库 第1部分:不动产
- CJT156-2001 沟槽式管接头
- 民宿承包合同协议书样本
- 检修中的应急处置培训课件
- 烈士陵园智慧管理系统
- 中国特色社会主义期中测试题-2023-2024学年中职高教版
- 学习康复科常见物理治疗法课件
评论
0/150
提交评论