如何通过一个按键的长按控制电源开关

2019-07-15 13:15发布

如题,怎么用一个按键的长按短按去控制不同功能,长按控制电源开关,短按控制别的功能,这样的功能可以通过一个按键实现吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
xyz549040622
1楼-- · 2019-07-15 17:00
可以,网上搜索一键开关机电路,需要用到两个io。 最佳答案
红尘。破
2楼-- · 2019-07-15 19:34
很简单,用程序控制啊
慵懒的瞄
3楼-- · 2019-07-15 21:45
红尘。破 发表于 2016-8-12 16:12
很简单,用程序控制啊

按键控制根据时间长短生成flag值,然后根据flag值去实现不同的功能,我是这样想的,但是电路设计是个问题,长按按键打开电源好像不可能实现,那么只能按一下按键打开电源,那么这样按键肯定设置要在开关电路上,那么后续的功能如何实现呢,再按一下按键肯定会触发电源开关的
qq328128752
4楼-- · 2019-07-16 03:24
慵懒的瞄 发表于 2016-8-12 16:36
按键控制根据时间长短生成flag值,然后根据flag值去实现不同的功能,我是这样想的,但是电路设计是个问题,长按按键打开电源好像不可能实现,那么只能按一下按键打开电源,那么这样按键肯定设置要在开关电路上,那么后续的功能如何实现呢,再按一下按键肯定会触发电源开关的 ...

按键进单片机,继电器控制通断
慵懒的瞄
5楼-- · 2019-07-16 06:07
 精彩回答 2  元偷偷看……
一卷空白qw
6楼-- · 2019-07-16 07:33
共享一下,我用过,可以实现       
   if(!KEY_ADD)  
      {
         DelayMs(10);
     if(!KEY_ADD)     
           {
           while(!KEY_ADD)
            {
                key_press_num++;
               DelayMs(10);        
                if(key_press_num==200)            长安时间大于2s
          {
                   key_press_num=0;  
           while(!KEY_ADD)     
                       {                            //长按处理
                               if(szminute<99)   
                      szminute++;                               
                         TempData[0]=dofly_DuanMa[szminute/10];
                 TempData[1]=dofly_DuanMa[szminute%10]|0x80;
                DelayMs(200);
                                }
                    }
                }
      key_press_num=0;               短按处
                          TempData[0]=dofly_DuanMa[szminute/10];//·Ö
              TempData[1]=dofly_DuanMa[szminute%10]|0x80;
           }
        }

一周热门 更多>