第11章 單片機小知識(復位 )
1 外部RST引腳復位(不斷電下載程序)
2 軟件復位
3 內部低壓檢測復位
4 看門狗復位
復位將使單片機內核及其它功能部件都處在一個確定的初始狀態,并從這個狀態
開始工作,復位分為熱啟動復位(斷電復位)和冷啟動復位(非斷電復位)兩大 類,它們區別如表11-1所示。
表11-1 冷啟動復位與熱啟動復位對照表
冷啟動復位 | 系統斷電后再上電引 起的硬復位 | 熱啟動復位 | 通過RST引腳產生的 硬復位 | 內部看門狗復位 | 內部低壓檢測復位 | 通過對IAP_CONTR寄 存器操作的軟復位 |
|
| 從系ISP監控程序區開始執行程序,如果檢測 不到合法的ISP下載命令流,將軟復位到用戶 程序區執行用戶程序 | 復位到用戶程序區0000H處。 |
|
0.png (26.4 KB, 下載次數: 191)
下載附件
2016-3-28 03:35 上傳
%E7%AC%AC11%E7%AB%A0--%E5%8D%95%E7%89%87%E6%9C%BA%E5%AE%9E%E7%94%A8%E5%B0%8F%E7%9F%A5%E8%AF%86-2.jpg (40.35 KB, 下載次數: 177)
下載附件
2016-3-28 03:51 上傳
外部RST引腳復位就是從外部向RST引腳施加大于100uS寬度的高電平復位脈沖,外
部高電平消失后,單片機從系統ISP程序下載監控區啟動,因此可以使用P5.4/RST引腳外 接常開按鍵到VCC的方式實現不斷電下載程序(先點下載,后按復位鍵),這樣可提高程序 下載速度。P5.4/RST引腳出廠時被配置為I/O口,要將其配置為復位引腳,需要在ISP下 載程序時設置(如上圖),需要注意的是在ISP軟件中改變了P5.4口的設置后,程序下載 到單片機并不立即生效,需要給單片機斷電重啟后才生效,ISP軟件中的很多設置都是這
樣的,測試過程注意斷電重啟才生效的問題。
2 軟件復位
從用戶程序區軟件復位并切換到用戶程序命令為: IAP_CONTR = 0x20 ; 從用戶程序區軟件復位并切換到ISP程序下載監控區命令為: IAP_CONTR = 0x60 ;
實驗代碼如下:
#include "STC15W4K.H" // 注意宏定義后面沒分號
void delay3s(void)
{
unsigned char i,j,k;
for(i=255;i>0;i--) // 注意后面沒分號 for(j=255;j>0;j--) // 注意后面沒分號 for(k=255;k>0;k--); // 注意后面有分號
}
void main(void)
{
P00=0; delay3s(); P00=1; delay3s();
IAP_CONTR = 0x20 ; // 選擇用戶程序區軟復位。
// IAP_CONTR = 0x60 ; // 選擇ISP區軟復位。
while(1);
}
3 內部低壓檢測復位
為防止電源接通與斷開瞬間系統供電不穩定狀態引起程序功能混亂(部分 外圍器件供電不在要求范圍內),在要求比較嚴格的運用中建議使用低壓檢 測復位,當電源電壓VCC低于內部低電壓檢測門檻電壓時,單片機產生復位, 當VCC高于內部低電壓檢測門檻電壓時,單片機解除復位狀態并恢復正常工 作,要使用此功能,前提是在STC-ISP軟件下載程序時,允許低電壓檢測復 位,低壓檢測門檻電壓就是復位門檻電壓,IAP15W4K58S4單片機內部低壓檢 測門檻電壓可設定范圍是:2.03V—4.08V。
// 程序功能:程序運行狀態LED點亮,復位狀態LED熄滅。
%E7%AC%AC11%E7%AB%A0--%E5%8D%95%E7%89%87%E6%9C%BA%E5%AE%9E%E7%94%A8%E5%B0%8F%E7%9F%A5%E8%AF%86-3.jpg (31.37 KB, 下載次數: 170)
下載附件
2016-3-28 03:51 上傳
#include "STC15W4K.H" void main(void) {
while(1)
{
P41=0; // 點亮LED
}
}
4 看門狗復位
%E7%AC%AC11%E7%AB%A0--%E5%8D%95%E7%89%87%E6%9C%BA%E5%AE%9E%E7%94%A8%E5%B0%8F%E7%9F%A5%E8%AF%86-4.jpg (47.19 KB, 下載次數: 181)
下載附件
2016-3-28 03:51 上傳
在工業控制、汽車電子、航空航天等需要高可靠性的系統中,為了防止系統在異常情況下 受到干擾,CPU程序跑飛,導致系統長時間異常工作,往往需要在系統中使用看門狗電路,看 門狗電路的基本作用就是監視CPU的工作,正常工作時,單片機可以在規定的時間內復位看門 狗(即喂狗),時間只要不超出看門狗電路的溢出時間即可,當系統進入死循環或者執行到無 程序代碼區造成死機時,單片機就會停止喂狗,超過一定時間后,看門狗電路就會強制系統 復位,使系從新開始運行,要使用此功能,需要在STC-ISP軟件下載程序時開啟看門狗,開啟 看門狗后程序必須不斷地在規定的時間內喂狗,注意:看門狗一旦開啟,單片機執行任何指 令都無法將其關閉,必須斷電才能關閉。狗定時器溢出時間由ISP軟件的分頻系數確定(見下 頁表格)。
%E7%AC%AC11%E7%AB%A0--%E5%8D%95%E7%89%87%E6%9C%BA%E5%AE%9E%E7%94%A8%E5%B0%8F%E7%9F%A5%E8%AF%86-1.jpg (45.82 KB, 下載次數: 160)
下載附件
2016-3-28 03:51 上傳
具有看門狗的程序示例。
#include “STC15W4K.H”
void main(void)
{
… // 其他初始化代碼
while(1)
{
display(); // 顯示程序
keyboard(); // 鍵盤程序
… // 其他代碼
WDT_CONTR = 0x3c; // 喂狗信號,復位WDT。
}
}