1. 單片機中的看門狗是什麼東西,有什麼作用
看門狗(WDT)是一個定時器。看門狗是用來防止萬一單片機程序出錯造成重大損失的。防錯的原理很簡單,它在硬體上就是一個定時器,當它溢出的時候就會讓單片機強制復位使程序重新開始執行。
正常的情況下是不能讓它溢出的,所以在程序上每隔一段時間要給他置一次值(俗稱喂狗),只要程序中正常給它喂他就不會溢出。
一旦程序跑飛了,有干擾或者進入死循環之類的情況時,不能正常執行程序了,那麼就永遠執行不到喂狗的指令了,但此時定時器是硬體控制的,仍然會走,所以溢出了,單片機就復位了。
一般安全性要求比較高的,系統跑飛了會造成重大事故的都會加一個「狗」保安全。
通常,看門狗的溢出時間越短越靈敏,跑飛之後復位的時間越短,也就越安全,但是,喂狗的操作也要更頻繁。
(1)單片機看門狗擴展閱讀:
看門狗工作原理:
使用時,WDT將遞增直到溢出或「超時」。 除非處於休眠或空閑模式,否則WDT超時將強制器件復位。 為避免WDT超時復位,用戶必須使用PWRSAV或CLRWDT指令定期清除看門狗定時器。 如果WDT在休眠或空閑模式下超時。
器件將喚醒並從執行PWRSAV指令的位置繼續執行代碼。 在以上兩種情況下,WDTO位(RCON <4>)將被置1,表明器件復位或喚醒事件是由WDT超時引起的。
如果WDT將CPU從睡眠或空閑模式喚醒,則還將置位「睡眠」狀態位(RCON <3>)或「空閑」狀態位(RCON <2>),表明該設備先前已上電。 保存模式。
在正常操作期間,WDT超時將產生設備復位。 當設備處於睡眠狀態時,WDT超時將喚醒設備以繼續正常操作(稱為WDT喚醒)。 清零WDTE設置位可以永久關閉WDT。 後分頻器分配完全由軟體控制,也就是說,可以在程序執行期間隨時更改它。
為避免不可預測的器件復位,當從Timer0預分頻器分配更改為WDT後分頻器分配時,必須執行以下指令序列。 即使禁止了WDT,也必須執行該指令序列。
2. 關於單片機看門狗
喂狗啊 向這個0x7012單元中表示一個寄存器啊!寫入一個數據時表示進行了一次喂狗。這樣養就不會因為沒有喂狗而導致系統復位。單片機的喂狗是很重要的,防止程序跑飛。
3. 單片機中說的看門狗是什麼
單片機中的看門狗指的是一個定時器電路,有一個輸入和一個輸出,其中輸入叫做喂狗,輸出連接到另外一個部分的復位端。
看門狗的功能是定期的查看晶元內部的情況,一旦發生錯誤就向晶元發出重啟信號。看門狗命令在程序的中斷中擁有最高的優先順序。
在由單片機構成的微型計算機系統中,由於單片機的工作常常會受到來自外界電磁場的干擾,造成各種寄存器和內存的數據混亂,會導致程序指針錯誤,不在程序區,取出錯誤的程序指令等,都有可能會陷入死循環,程序的正常運行被打斷,由單片機控制的系統無法繼續正常工作,導致整個系統的陷入停滯狀態,發生不可預料的後果。
工作原理
使用時,WDT將遞增,直到溢出,或稱「超時」。除非處於休眠或空閑模式,WDT 超時會強制器件復位。為避免WDT超時復位,用戶必須定期用PWRSAV 或CLRWDT 指令將看門狗定時器清零。如果WDT 在休眠或空閑模式下超時,器件將喚醒並從PWRSAV 指令執行處繼續執行代碼。
在上述兩種情況下,WDTO 位(RCON<4>)都會置1,表示該器件復位或喚醒事件是由於WDT超時引起的。如果WDT 將CPU從休眠或空閑模式喚醒,「休眠」狀態位(RCON<3>)或「空閑」狀態位(RCON<2>)也會置1,表示器件之前處於省電模式。
4. 簡述51單片機看門狗電路的功能
看門狗電路基本功能是在發生軟體問題和程序跑飛後使系統重新啟動。看門狗計數器正常工作時自動計數,程序流程定期將...
5. 單片機的看門狗怎麼用
復位會清除埠和特殊寄存器,不會影響RAM,與斷電不同。
6. (單片機)外部看門狗是怎麼實現的
你應該看一看一款具體的外部看門狗晶元的內部結構圖,比如MAX706,他有一個引腳WDI,是看門狗計數器輸入引腳,看門狗晶元不會去統計單片機輸出的脈沖數,而是只檢測在這個引腳上是否發生了電平翻轉。
單片機需要控制這個引腳的電平保持高低不停的跳變。
一但看門狗啟用,看門狗晶元內部的1.6秒計數器開始計數,如果WDI引腳上現在了電平反轉,則復位計數器,如果在1.6秒的時間內沒有在WDI引腳上檢測到電平反轉,看門狗晶元就會在RST引腳上輸出一個200ms的低電平,復位目標MCU,然後復位他自己的計數器,重新開1.6秒計數,然後以上過程無限重復。
7. 單片機的看門狗怎麼用
首先,你要知道什麼是看門狗?在由單片機構成的微型計算機系統中,由於單片機的工作常常會受到來自外界電磁場的干擾,造成程序的跑飛,而陷入死循環,程序的正常運行被打斷,由單片機控制的系統無法繼續工作,會造成整個系統的陷入停滯狀態,發生不可預料的後果,所以出於對單片機運行狀態進行實時監測的考慮,便產生了一種專門用於監測單片機程序運行狀態的晶元,俗稱"看門狗"(watchdog)。其次,看門狗的工作原理是什麼?在系統運行以後也就啟動了看門狗的計數器,看門狗就開始自動計數,如果到了一定的時間還不去清看門狗,那麼看門狗計數器就會溢出從而引起看門狗中斷,造成系統復位。所以在使用有看門狗的晶元時要注意清看門狗(俗稱喂狗)。下面這段程序是我成功調試過了的,看門狗寄存器的各位的具體的意義,你可以自己去看下單片機的PDF文檔,裡面有詳細的介紹.#include52系列單片機頭文件#defineucharunsignedchar#defineuintunsignedintsfrWDT_CONTR=0xe1;/*看門狗寄存器聲明*/sbitled1=P1^0;/*接發光二極體*/voiddelayms(uintxms)/*延時函數*/{uinti,j;for(i=xms;i>0;i--)/*i=xms即延時約xms毫秒*/for(j=110;j>0;j--);}voidmain(){WDT_CONTR=0x35;led1=0;delayms(500);led1=1;while(1){delayms(1000);//WDT_CONTR=0x35;/*喂狗,如果這句話不加的話單片機就會一直復位,看到的現象是發光二極體閃爍,加上這句的話,發光二極體一直亮著,所以在實際工程應用的時候通常要在程序裡面調用比較頻繁的函數內部寫上這句話*/}}/*******************************************************************喂狗的技巧:如果一個大循環少於看門狗益處時間,放在while(1)哪個地方都可以啊,如果大於,看下哪個地方停頓時間長就放哪*********************************************************************/
8. 為什麼單片機內部有看門狗電路,還在外面接看門狗晶元
那要看是什麼類型的看門狗,如果是獨立看門狗,自己有內部的時鍾,就算系統時鍾停止,照樣工作,獨立看門狗啟動了就關不掉,不喂狗一定會咬到人。
但是窗口看門狗就不同了,他的時鍾來源於系統時鍾,當系統休眠停機,系統時鍾關閉,窗口看門狗不喂狗也不會咬。這個設計適合低功耗的設計。
你說的為什麼還要看門狗晶元,那就是看看具體設計中需要怎樣的看門狗功能了,可能是你那設計是需要獨立看門狗這種能力,但是單片機卻只有窗口看門狗而沒有獨立看門狗。
9. STC單片機怎麼加看門狗程序
加到While循環的最前面就可以了。
define Pre_scale_Word 0x3c //0.68s
sfr WDT_CONTR 0xc1;
..................................
while(1)
{
WDT_COUNTR=Pre_scale_Word;
....................................
}