本文主要是介绍单片机按键软开关:1个引脚实现单片机低电量自己控制给自己断电,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
背景
类似于手机的开机按键,我们希望在单片机电路上也能实现类似的低电量自动关机、通过按键而不是自锁开关来上电开机。
软开关电路
电路图如下:
- 当按键按下时,Q1导通,R18右侧变为低电平,进而Q2导通,系统上电
- 系统上电后,立刻控制PWR_CTR为高电平,此时松开按键,系统依旧保持上电状态。
- 当系统主动关机时,控制PWR_CTR为低电平,系统断电。
电压采样电路
我们在加了软开关之后,就可以在软开关后面加采样电阻采样电量,这样不会导致电池一直被放电。
使用一个引脚实现
在上述电路中,有2个问题:
- 当按键按下时,单片机PWR_CTR引脚会受到外部输入POWER_IN的电压,如果电压高于5V,会打坏单片机。
- 必须通过PWR_CTR控制软开关开断,再通过另外一个引脚对电池电压进行采样,这样就整个需要2个引脚。
我们可以对电路做如下修改:
- 输入到PWR_CTR引脚的电压,被电阻R18和R19分压,不会打坏电阻。
- 当按下按键时,单片机上电,首先初始化PA1为ADC,此时松开按键,由于ADC为输入,不会输出电平,所以ADC_PA1端的电平为高电平,可以保持单片机一直上电。当检测到电池电压过低时,将PA1初始化为输出,输出低电平,给电源断电。
仿真如下:
刚上电时,如下:
按下开关,再松开后,如下:
电源电压变化后,ADC采样端电压如下:
这篇关于单片机按键软开关:1个引脚实现单片机低电量自己控制给自己断电的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!