單片機(jī)的看門狗課件_第1頁
單片機(jī)的看門狗課件_第2頁
單片機(jī)的看門狗課件_第3頁
單片機(jī)的看門狗課件_第4頁
單片機(jī)的看門狗課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、單片機(jī)的看門狗-及系列為什么要看門狗?你家的看門狗是做什么的?“看門狗定時器”是這樣一種東西,從功能上說它可以讓微控制器在意外狀況下(比如軟件陷入死循環(huán)或跑飛)重新回復(fù)到系統(tǒng)上電狀態(tài),以保證系統(tǒng)出問題的時候重啟一次。 就跟我們現(xiàn)在用電腦一樣,死機(jī)了你就按一下reset鍵重啟一次電腦,看門狗就是負(fù)責(zé)干這個事兒的。它是52單片機(jī)增加的一個功能,以前Intel 8031、AT 89C51時代單片機(jī)片內(nèi)都沒有“看門狗”功能,需要我們外擴(kuò)看門狗芯片,比如X5045?!翱撮T狗”就是一個計數(shù)器,由于位數(shù)有限計數(shù)器能夠裝的數(shù)值是有限的(比如8位的最多裝256個數(shù)、16位的最多裝65536個數(shù)),從開啟“看門狗

2、”那刻起,它就開始不停的數(shù)機(jī)器周期,數(shù)一個機(jī)器周期就計數(shù)器加,加到計數(shù)器盛不下了(術(shù)語叫溢出)就就產(chǎn)生一個復(fù)位信號,重啟系統(tǒng)??撮T狗的看門原理我們在設(shè)計程序時,先根據(jù)看門狗計數(shù)器的位數(shù)和系統(tǒng)的時鐘周期算一下計滿數(shù)需要的時間,就是說在這個時間內(nèi)“看門狗”計數(shù)器是不會裝滿的,然后在這個時間內(nèi)告訴它重新開始計數(shù),就是把計數(shù)器清零,這個過程叫“喂狗”,這樣隔一段時間喂一次狗,只要程序正常運(yùn)行他就永遠(yuǎn)計不滿,一旦出現(xiàn)死循環(huán)之類的故障,沒有及時來清零計數(shù)器,就會導(dǎo)致裝滿了溢出,他就重啟系統(tǒng),這就是舉個例子說:8051 單片機(jī)選用12MHz晶振,一個時鐘周期為1us,如果“看門狗計數(shù)器”是16位的,最大計數(shù)

3、65536個,那么從0開始計到65535需要約65ms,所以我們可以在程序的50ms左右清零一次計數(shù)器(“喂狗”),讓他重新從0開始計,再過50ms,再清,這樣下去只要程序正常運(yùn)行,計數(shù)器永遠(yuǎn)不會計滿,也就永遠(yuǎn)不會被“看門狗”復(fù)位。每種單片機(jī)的“看門狗”實(shí)現(xiàn)方法不盡相同,但是原理都一樣,而且“看門狗”都是啟動了之后就不能被關(guān)閉,只能系統(tǒng)復(fù)位(重新斷電在上電)才能關(guān)閉。 設(shè)置“看門狗”的一般步驟如下:1. 設(shè)置“看門狗”相關(guān)寄存器,啟動“看門狗”;2. 隔一段時間清零一次,“喂狗”;3. 如果程序正常,一直運(yùn)行;如果程序出錯,沒有按時“喂狗”,“看門狗”就在溢出的時候復(fù)位系統(tǒng)。的看門狗AT89S

4、52單片機(jī)看門狗定時器是14位的,最大計數(shù)214=16384個數(shù),每計16384個時鐘周期就溢出一次。也就是說如果使用12M晶振的話,至少應(yīng)該在16.384ms內(nèi)喂一次狗。 其中N是單片機(jī)的時鐘周期,STC89C5X系列單片機(jī)提供6時鐘周期和12時鐘周期兩種時鐘周期,可以在燒寫程序時修改; Prescale是預(yù)分頻數(shù),通過設(shè)置【看門狗控制寄存器】可以設(shè)置為2、4、8、16、32、64、128、256;怎么設(shè)置演示程序中有介紹; 晶振頻率就是系統(tǒng)選用的晶振。 所以如果同樣選擇12MHz晶振,使用傳統(tǒng)的12時鐘周期,它最小的溢出時間是(12*2*32768)/(12*106)=65.536ms,最

5、大溢出時間是(12*256*32768)/(12*106)8.38s。如果選擇256分頻,也就是說只要在8.38秒之內(nèi)喂一次狗就可以了。 看門狗應(yīng)用舉例STC89C52最小單片機(jī)系統(tǒng)+兩個指示燈 串行口接口(用于下載程序和測試本次試驗 #include sfr WDT_CONTR=0 xE1;/定義特殊功能寄存器:STC單片機(jī)看門狗控制寄存器#define uchar unsigned char#define true 1#define false 0#define WEIGOU WDT_CONTR=0 x34/看門狗啟動設(shè)置和“喂狗”操作sbit LED=P16;/信號燈,系統(tǒng)正常工作就一閃

6、一閃的sbit LED_busy=P17;/工作燈,上電滅一會兒(約800ms),然后正常工作的時候一直亮著;用于指示系統(tǒng)是否重啟uchar timer0_ctr,i;const uchar str=I love MCU!;/定義一句話,讓他從串口輸出,只有系統(tǒng)重啟的時候才輸出一次,所以也是用于驗證看門狗有沒有重啟系統(tǒng)/延時函數(shù),11.0592MHz晶振下延時約xms毫秒void delay_ms(unsigned xms)unsigned x,y;for(x=xms; x0; x-)for(y=110; y0; y-);/串行口初始化程序void InitCOM()SCON=0 x50;/S

7、CON=(0101 0000)B,波特率不加倍,允許接收TH1=0 xFD;/設(shè)置波特率=9600bpsTL1=TH1;TR1=1;/啟動定時器1/定時器0中斷服務(wù)程序程序,控制信號燈閃爍。如果系統(tǒng)正常運(yùn)行,信號燈1.5秒閃一次void Timer0_isr() interrupt 1TH0=0 x4C;TL0=0 x00;timer0_ctr+;if(timer0_ctr=30)TR0=0;/定時器0暫停,否則再次來中斷會沖斷程序timer0_ctr=0;LED=0;delay_ms(100);LED=1;TR0=1;/定時器0重新啟動void main()WEIGOU;/上來第一步設(shè)置看門

8、狗定時器,并且啟動InitMain();InitCOM();/開機(jī)通過串口發(fā)送一次“I love MCU!”,使用串口調(diào)試助手可以查看/由于在while大循環(huán)外邊,所以只要系統(tǒng)不重新啟動,則上電后只會發(fā)送一次,用于判斷系統(tǒng)是否重啟i=0;while(stri!=0)SBUF=stri;while(TI=0);TI=0;i+;/while大循環(huán)while(true)/約每隔800ms喂一次狗,可以通過調(diào)整這里的喂狗時間來驗證看門狗是否有效/我們設(shè)置的看門狗約1秒。所以可以用800和2000分別做一次試驗,看是否會被看門狗復(fù)位delay_ms(800);LED_busy=0;/第一次上電約延時80

9、0ms工作燈點(diǎn)亮,如果系統(tǒng)不重啟,他將一直亮著,用于指示系統(tǒng)是否重啟WEIGOU;89S52看門狗使用方法 在ATMEL的89S52系列的89S52與89C51功能相同。指令兼容。HEX程序無需任何轉(zhuǎn)換可以直接使用。89S52比89C51增加了一個看門狗功能。89S52的其它功能可以參見89C52的資料??撮T狗具體使用方法如下:在程序初始化中向看門狗寄存器(WDTRST地址是0A6H)中先寫入01EH,再寫入0E1H。即可激活看門狗。的看門狗應(yīng)用在C語言中要增加一個聲明語句。 在AT89X51.h聲明文件中增加一行 sfr WDTRST = 0 xA6; 程序代碼sfr WDTRST = 0 xA6; main() WDTRST=0 x1E; WDTRST=0 xE1;/初始化看門狗。 While (1) WDTRST=0 x1E; WDTRST=0 xE1;/喂狗指令 注意事項:1 89S51的看門狗必須

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論