單片機休眠,自身耗電是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
- }
- }
復制代碼 |