这个电路在16年的时候搞过,当时在开云(中国)官方里发帖问才找到电路图,前几天有人回复了我那个帖子,问我怎么实现的,当时想回复那哥们就照帖子里面的电路整就行,但自己对那个电路是否能很好的实现开关机的功能不怎么确定,因为当时自己编的程序也没有完全调试好,这样回复别人不太靠谱,于是就想重新研究一下这个电路,弄个靠谱点的方案。 话不多说,贴一下电路图。 ![]() 原理都在图中了,说一下我对这个电路一些理解: (1)单片机上电后延时一段时间再进行关机检测是因为按键按下后,单片机不是立马上电,延时是为了单片机进入稳定工作状态,所以我程序设置是长按打开。 (2)两个二极管的作用是防止按键检测IO口与Q2集电极电压相互影响。 电路是用面包板连的,除了三极管用的S8050、S8550,其他与图中参数相同,测试用电源为3.7V锂电池,单片机用的是之前做的一块板子上的STC15W202S。 电路虽然不难理解,但是程序自己却调了半天,汗-_-||。 程序贴上来太长了,我就贴图片了,好看一点,下面是调试好的程序: ![]() 程序设计思路: (1)上电后先进行开机检测,1S长按后开机,然后进入主循环,检测按键后续动作 (2)按键可复用,长按开关机,短按执行其他程序,短按功能和关机都是在按键抬起后生效; (3)短按判定为50-1000ms,长于1S的动作都判定为长按; 整体测试后,电路能达到预期效果:1S长按开机,短按P30取反,长按关机,并且电源完全关断。 在调试过程中也遇到了一些问题: (1)MCU控制IO口在上电后得软件置0,不然开不了机; (2)这个电路在开机后如果用手去碰一下MCU控制IO口,系统就会关机,轻轻碰一下就会关机。。。也许是我身体电压波动比较大。 以上就是我对这个电路的理解与测试,见识浅薄,难免有说的不合理的地方,欢迎大家多多指点。 |
谢谢分享! |
MCU判断关机,是把关机检测IO置高,再读取电平是否为低(按键按下),是这样吗? |
ESP32驱动ST7789触摸屏开发指南:LVGL主题设置与示波器面板
673 浏览 0 评论
ULink2 和keil4 连接显示 SWD通讯失败,硬件在另一台电脑上是可以连接成功的,有没有大佬能帮忙解答一下的
2019 浏览 0 评论
2605 浏览 1 评论
1018 浏览 0 评论
1044 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
13017 浏览 31 评论
电子发烧友网
电子发烧友开云(中国)官方