这段代码如果再关机后再按开机呢?这个只是单次开关机,通常需要重复操作开关机才行。 |
关闭下面的管子后 ,,Q5 浮空没问题么? |
你好! 请问一下所用的MCU型号,还有头文件之类 |
这个思路确实挺新颖的。 |
1313133 发表于 2021-11-12 09:35 51单片机不用像32一样配置端口 |
qwettyuio 发表于 2021-11-5 14:36 端口没有配置,输入、输出之类的 |
短按开,长按关,怎么编程? |
开关可以放在LDO前面,这样关机后静态电流几乎可以为零 |
名字不是重点 发表于 2021-11-5 11:11 不太行 代码: #include <REGX51.H> #define uchar unsigned char sbit POW_ON =P3^1; sbit KEY_POW=P3^0; void delay_ms(unsigned int t) //延时函数 { while(t--); } int main(void) { if(KEY_POW==0)//电源键有触发 { delay_ms(1000);//延时,看情况,定义长短 if(KEY_POW==0)// 真的是电源键按下了 POW_ON=1; // 上电,锁定电源输出 while(KEY_POW==0) //等待按键松开 { ; } } while(1) //大循环 { delay_ms(500);// 工作状态演示 if(KEY_POW==0)//电源键又按下了 { delay_ms(2000);//延时,老规矩,长按关机 if(KEY_POW==0) // 真的是电源键按下了 { while(KEY_POW==0) //等松开 POW_ON=0;// 最后取消电源锁定,关闭电源 } } } } |
这个不错,都注释了。 |
qwettyuio 发表于 2021-11-5 09:53 我就是用51的 |
U1详细型号是什么?支持低压差? |
51单片机能用这个控制电路吗 |
bg4rfb 发表于 2021-3-12 13:17 代码实测可用。 单片机由3U供电。电池接VBAT,没有按键时,3U是无电的。 这段代码只是提供一个方法,很多地方都可以优化的。比如第一个 if(KEY_POW==0)是可以去掉的。 而且如果按住按键不放,会一直在开机、关机间循环。都是要优化的。 |
这样是不是单片机提前已经通电了呢,一直在检测KEY_POW==0 ? |
谢谢分享,有实践过可行么? |