简单有效的“单键复用”C51程序
2010-07-16 11:11
351 查看
简单有效的“单键复用”C51程序
2009-08-25 00:27
类别:c51编程 |
| 添加到搜藏 | 分享到i贴吧 | 浏览(820) | 评论 (9)
2009-08-25 00:27
在做我的MINI POV时,考虑到空间有限,必须简化结构,尽量减少按键数量,最后设计只用两个按键作模式转换和时间调整,这样,需将其中的一键“单键复用”,采用最常见的是“短击”、“长击”和“双击”三种模式。这样一来编程就成了问题。 然而,真不明白一个简单的“单键复用”的问题居然在网上还找不到合适的现成的程序,找到的也是一些高深莫测的(还用上什么状态机之类的)东西。没办法,还是自己动手吧! nn=0; //“按下”时长计数器清零 mm=0; //“释放”时长计数器清零 if(set0==0){ //如按键set0按下 DelayMs(30); //延时(消抖) if(set0==0){ //如按键set0按下 do { //“按下”计数器开始计数 nn++; DelayMs(10); }while(set0==0); if(nn<50) //如“按下”计数小于设定值(短击的最大限制值) { DelayMs(30); //延时(消抖) do { //“释放”计数器开始计数 mm++; DelayMs(10); }while((mm<40)&&(set0==1)); //当超出设定值或再次有“按下”事件发生,结束计数 DelayMs(25); //延时(消抖) do { //待到第二次的“按下”事件结束 }while(set0==0); if(mm<40) Key_Num=3; else Key_Num=1; //在释放期间提前结束的为双击,否则为短击 } else { Key_Num=2; //”按下”计数大于设定值为长击 } } } 嘿嘿,其实就这么简单。 有的人喜欢将简单问题复杂化,而本人更喜欢将复杂问题简单化。 |
| 添加到搜藏 | 分享到i贴吧 | 浏览(820) | 评论 (9)
登录后,您就出现在这里。 |
相关文章推荐
- 如何取消程序的默认打开方式 windows亲测简单有效!
- 简单有效的去掉 Tomcat 上 的 猫咪图标,从而个性化WEB程序的风格!
- [C/C++]_[初级]_[如何编写简单有效代码,提高程序运行效率和性能]
- C51简单的时钟程序
- 一个51单片机的键盘扫描程序,算法简单有效
- C51中232/485一个简单的程序框架
- linux网络编程十六:I/O复用的应用-poll简单实现聊天室程序
- 简单的加密解密程序(单词加密解密)
- python学习—几个简单小程序
- Android结束Activity退出程序的一种有效方法
- linux 下简单的ftp客户端程序
- 7.2一个简单分类的程序
- C语言实现的一个简单的HTTP程序
- linux之一个简单的shell程序
- 在linux下编写简单的c程序
- 微信小程序中input标签详解及简单实例
- 控制发送SMS信息的C51程序[GSM模块(M22)通过串口与单片机相连]
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 基于51单片机的简单交通灯程序
- 最简单有效的处理方法解决安装SQL Server2005时出现COM+的警告