51微控制器怎麼休眠

2021-08-25 16:05:53 字數 1980 閱讀 8356

1樓:

呵呵,最近剛好研究了一下這個問題

51微控制器空閒和掉電模式應用

我們知道微控制器內部有一個電源管理暫存器pcon,這個暫存器的最低兩位,idl和pd這兩位分別用來設定是否使微控制器進入空閒模式和掉電模式。

1. 空閒模式 當微控制器進入空閒模式時,除cpu處於休眠狀態外,其餘硬體全部處於活動狀態,晶片中程式未涉及到的資料儲存器和特殊功能暫存器中的資料在空閒模式期間都將保持原值。但假若定時器正在執行,那麼計數器暫存器中的值還將會增加。

微控制器在空閒模式下可由任一個中斷或硬體復位喚醒,需要注意的是,使用中斷喚醒微控制器時,程式從原來停止處繼續執行,當使用硬體復位喚醒微控制器時,程式將從頭開始執行。???? 讓微控制器進入空閒模式的目的通常是為了降低系統的功耗,舉個很簡單的例子,大家都用過數字萬用表,在正常使用的時候表內部的微控制器處於正常工作模式,當不用時,又忘記了關掉萬用表的電源,大多數表在等待數分鐘後,若沒有人為操作,它便會自動將液晶顯示關閉,以降低系統功耗,通常類似這種功能的實現就是使用了微控制器的空閒模式或是掉電模式。以stc89系列微控制器為例,當微控制器正常工作時的功耗通常為4ma~7ma,進入空閒模式時其功耗降至2ma,當進入掉電模式時功耗可降至0.

1μa以下。

2.?? 休眠模式 當微控制器進入掉電模式時,外部晶振停振、cpu、定時器、序列口全部停止工作,只有外部中斷繼續工作。使微控制器進入休眠模式的指令將成為休眠前微控制器執行的最後一條指令,進入休眠模式後,晶片中程式未涉及到的資料儲存器和特殊功能暫存器中的資料都將保持原值。

可由外部中斷低電平觸發或由下降沿觸發中斷或者硬體復位模式換醒微控制器,需要注意的是,使用中斷喚醒微控制器時,程式從原來停止處繼續執行,當使用硬體復位喚醒微控制器時,程式將從頭開始執行。【例】:開啟兩個外部中斷,設定低電平觸發中斷,用定時器計數並且顯示在數碼管的前兩位,當計到5時,使微控制器進入空閒(休眠)模式,同時關閉定時器,當微控制器響應外部中斷後,從空閒(休眠)模式返回,同時開啟定時器。

程式**如下:

#define idlemode() pcon |=0x01 //01為空閒模式

// 當微控制器進入空閒模式時,除cpu處於休眠狀態外,其餘硬體全部處於活動狀

//晶片中程式未涉及到的資料儲存器和特殊功能暫存器中的資料在空閒模式期間都將保持原值。

//但假若定時器正在執行,那麼計數器暫存器中的值還將會增加。

//微控制器在空閒模式下可由任一個中斷或硬體復位喚醒,

//需要注意的是,使用中斷喚醒微控制器時,程式從原來停止處繼續執行,當使用硬體復位喚醒微控制器時,程式將從頭開始執行。

#define poweroff() pcon |=0x02 //02掉電模式

//進入掉電模式,外部晶振停振、cpu、定時器、序列口全部停止工作,只有外部中斷繼續工作

//使微控制器進入休眠模式的指令將成為休眠前微控制器執行的最後一條指令

//進入休眠模式後,晶片中程式未涉及到的資料儲存器和特殊功能暫存器中的資料都將保持原值。

//可通過外部中斷喚醒,proteus**時無法喚醒

#define ext0_init() ex0=1;ea=1 //開啟外部中斷,以方便喚醒。喚醒後程式從原來停止處繼續執行

//電源管理模板程式

main()

//}}void ex0isr(void) interrupt 0

2樓:匿名使用者

微控制器的型號不同,指令不同。你用什麼型號的微控制器?

3樓:

51微控制器, 如 stc 系列微控制器 ,可以進入休眠狀態(或者掉電模式),待機方式(或者空閒模式),

掉電模式:為 時鐘停止的 所有工作狀態 全部停止, 可以 有部分 io 口觸發喚醒(連線按鍵的功能) , 可以 通過 軟體 設定 標誌位 進入掉電模式

空閒模式:為除了 cpu 不工作外,其餘 都正常工作 如 定時器 等等,可以於 中斷 及 部分 io 口觸發喚醒, 可以 通過 軟體 設定 標誌位 進入空閒模式

不是 所有 微控制器 具有上述功能,要根據 微控制器的 資料手冊 標示。

51微控制器的51是什麼意思,51微控制器什麼意思啊

其實開始微控制器就是 8031 沒有程式的 後來有個8051 比較好用 比較牛逼 其他人紛紛 模仿 這種8位 的微控制器 自然就把51當成了 標準 劃時代的產品 後來就統稱此類 微控制器為 mcs 51系列就像 馮諾依曼 哈佛 等結構 51微控制器什麼意思啊 微控制器又稱mcu,微處理器,可以以使用...

51微控制器外部中斷到底什麼意思,51微控制器中的外部中斷服務程式入口0和1有什麼不同

51微控制器有兩個外部中斷申請輸入端 int0 和 int1 這兩個引腳對應兩個中斷入口,只有這兩個引腳上的電平變化,才會觸發相應的中斷 51微控制器中的外部中斷服務程式入口0和1有什麼不同 你是哪個型別的51微控制器 一般是指 兩個中斷的區分 51微控制器有幾個中斷源,分別是什麼?一共5種中斷 優...

51微控制器串列埠通訊寫字元,51微控制器串列埠通訊寫一個字元

你主程式這麼寫,傳送一個字元後,微控制器並不停止。應該加一行無限迴圈語句,while 1 才能停,如下 include include unsigned char ch bit read flag 0 void init serialcom void 串列埠通訊初始設定 向串列埠傳送一個字元 voi...