版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第11課《核舟記》說課稿-2023-2024學(xué)年統(tǒng)編版語文八年級下冊
- 粵教版 信息技術(shù) 必修 3.1.2日常文本信息的加工與表達(dá)說課稿
- 第一單元認(rèn)識幾何畫板第4課《作特殊三角形》說課稿 2023-2024學(xué)年人教版初中信息技術(shù)八年級下冊
- 年會獲獎感言發(fā)言稿15篇
- 采購助理年終總結(jié)5篇
- 醫(yī)療設(shè)備用造影劑市場發(fā)展預(yù)測和趨勢分析
- 翡翠項目評價分析報告
- 惡作劇玩具市場需求與消費(fèi)特點(diǎn)分析
- 頭發(fā)造型用制劑市場需求與消費(fèi)特點(diǎn)分析
- 英語學(xué)科教學(xué)工作計劃5篇
- 幼兒園:我中獎了(實(shí)驗版)
- 趙學(xué)慧-老年社會工作理論與實(shí)務(wù)-教案
- 《世界主要海峽》
- 住院醫(yī)師規(guī)范化培訓(xùn)師資培訓(xùn)
- “三新”背景下的數(shù)學(xué)課堂教學(xué) 論文
- 中央企業(yè)商業(yè)秘密安全保護(hù)技術(shù)指引2015版
- 螺旋果蔬榨汁機(jī)的設(shè)計
- 《脊柱整脊方法》
- 會計與財務(wù)管理專業(yè)英語智慧樹知到答案章節(jié)測試2023年哈爾濱商業(yè)大學(xué)
- 廣東省2020年中考英語試題【含答案】
- 0417 教學(xué)能力大賽 公共基礎(chǔ)《英語 》教學(xué)實(shí)施報告 電子商務(wù)專業(yè)
評論
0/150
提交評論