简单有效的“单键复用”C51程序
来源:互联网 发布:ajax返回类型json数据 编辑:程序博客网 时间:2024/05/17 23:39
在做我的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; //”按下”计数大于设定值为长击
}
}
}
嘿嘿,其实就这么简单。
有的人喜欢将简单问题复杂化,而本人更喜欢将复杂问题简单化。
- 简单有效的“单键复用”C51程序
- C51简单的时钟程序
- 也来写个简单的单键模式实现
- 按键矩阵(单键有效)
- C51中232/485一个简单的程序框架
- C51单片机中简单的流水灯程序
- TLC1549 的c51程序
- Loki 单键的使用
- 我的C51延时程序
- 一个51单片机的键盘扫描程序,算法简单有效
- Keil C51 延时程序的两次研究
- C51编写菜单的示例程序
- Android去掉标题栏点菜单键程序崩溃
- Android去掉标题栏点菜单键程序崩溃
- 用visual_studio编写c51单片机程序
- Jeff Atwood质疑iPhone的单键设计
- 简单有效的养生方法
- 不是有效的win32程序
- Windows Mobile下使用HTML控件
- java 抽象类 和接口 构造函数
- Rational ClearQuest使用说明书(一)
- C++代码静态分析工具-Prefast
- 智能卡嵌入式开发的个人经验
- 简单有效的“单键复用”C51程序
- MFC对话框按下回车和Esc键关闭的解决
- yun yun de
- 开山贴
- POJ图论分类
- __int64的一些用法
- UrlRewrite 的用途
- 3G中QoS分类
- ora-01033:oracle initializationg or shutdown in progress 错误