单片机休眠,自身耗电是uA级的,但不代表外围电路不耗电。这取决于你的电路设计和编程。单片机休眠之前把当前状态保存,关闭外设,进入休眠。唤醒后恢复之前保存的状态。以下是一键开关机的掉电模式函数,供参考。
- void Shutdown()//掉电模式函数
- {
- if(allow)
- {
- P1=0xff; //关闭LED显示
- //关闭所有在用硬件,减小能耗
- EX0 = 1; //打开中断
- PCON = 0x02;//MCU进入掉电模式
- _nop_(); //掉电模式被唤醒后,首先执行此语句,然后再进入中断服务程序
- _nop_(); //中断服务程序执行完再接着此句继续执行
- EX0 = 0; //关闭中断
- while(!key);//等待按键松手,防止按键扫描程序误读
- //打开所有在用硬件,恢复正常运行
- P1=~Temp; //恢复LED显示
- allow=0; //清0
- }
- }
复制代码 |