微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 如何通过一个按键的长按控制电源开关

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

时间:10-02 整理:3721RD 点击:
如题,怎么用一个按键的长按短按去控制不同功能,长按控制电源开关,短按控制别的功能,这样的功能可以通过一个按键实现吗

可以,网上搜索一键开关机电路,需要用到两个io。

很简单,用程序控制啊

按键控制根据时间长短生成flag值,然后根据flag值去实现不同的功能,我是这样想的,但是电路设计是个问题,长按按键打开电源好像不可能实现,那么只能按一下按键打开电源,那么这样按键肯定设置要在开关电路上,那么后续的功能如何实现呢,再按一下按键肯定会触发电源开关的

按键进单片机,继电器控制通断

电路只有一个电源,如果用继电器的话,电源接在继电器控制电路上,按键按下,继电器控制电源接入主电路,继电器也一直处于触发状态,那么电源如何断开呢

共享一下,我用过,可以实现       
   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;
           }
        }

你想的是单片机的供电,也是用的板子上的电源吗。

只有用两个继电器,可以实现,学过PLC的肯定都会的

发表一下我的看法:可以用定时器计时按下的时间。开关按下计时开始,松开结束;然后获取寄存器的值(可以自定义按键时间长短),计算时间。大于长按键时间执行①;小于短按键时间执行②。

对,整个系统只有一个锂电池供电,只能用按键开关

我想控制的是电源开关,更多是电路设计上的问题。

按键一键启停。

开关一断,所有的电源都断了?

从你的叙述来说,你需要的是一个缓慢开机电路,你可以上网搜双稳态开关机电路

你既然长短按的功能不同,那就需要一个独立的电子电路能区分长短按,这个电路本身就要供电,懂么,不要被电源限制死了.

都可以实现的。

见电路图。平时Q8不导通,VCC无电,单片机不工作。当开关S1按下后,Q8导通,VCC有电,单片机工作。软件判断按键时间长短,如果是长按则POWER ON输出高电平开机,这样即使开关松开Q8也保持导通;如果是短按则POWER ON不输出高,按键松开后Q8关闭,单片机断电。正常开机后等待开关松开,此后再判断长短按执行相应的功能。


应该是这个电路吧


是的,我找到一个电路,理论上没有问题,但是实际用的时候不知道会出现什么问题


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top