![C51單片機看門狗電路與程序的設(shè)計方案_第1頁](http://file4.renrendoc.com/view/a397826cc80304bef13634c74c899858/a397826cc80304bef13634c74c8998581.gif)
![C51單片機看門狗電路與程序的設(shè)計方案_第2頁](http://file4.renrendoc.com/view/a397826cc80304bef13634c74c899858/a397826cc80304bef13634c74c8998582.gif)
![C51單片機看門狗電路與程序的設(shè)計方案_第3頁](http://file4.renrendoc.com/view/a397826cc80304bef13634c74c899858/a397826cc80304bef13634c74c8998583.gif)
![C51單片機看門狗電路與程序的設(shè)計方案_第4頁](http://file4.renrendoc.com/view/a397826cc80304bef13634c74c899858/a397826cc80304bef13634c74c8998584.gif)
![C51單片機看門狗電路與程序的設(shè)計方案_第5頁](http://file4.renrendoc.com/view/a397826cc80304bef13634c74c899858/a397826cc80304bef13634c74c8998585.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
..C51單片機看門狗電路及程序設(shè)計方案院系:信息工程學(xué)院年級:2010級電子一班劉禹豪電子一班趙訓(xùn)虎電子二班鄧啟新引言在由單片機構(gòu)成的微型計算機系統(tǒng)中,程序的正常運行常常會因為來自外界的電磁場干擾等原因而被打斷,從而造成程序的跑飛,而陷入死循環(huán)。由此導(dǎo)致單片機控制的系統(tǒng)無法繼續(xù)工作,造成整個系統(tǒng)的陷入停滯狀態(tài),發(fā)生不可預(yù)料的后果,所以出于對單片機運行狀態(tài)進行實時監(jiān)測的考慮,便產(chǎn)生了一種專門用于監(jiān)測單片機程序運行狀態(tài)的芯片或程序,俗稱"看門狗"<watchdog>〔1看門狗電路基本原理看門狗電路的應(yīng)用,使單片機可以在無人狀態(tài)下實現(xiàn)連續(xù)工作,其工作原理是:看門狗芯片和單片機的一個I/O引腳相連此處設(shè)計原理實際上為下文中硬件看門狗設(shè)計思路此處設(shè)計原理實際上為下文中硬件看門狗設(shè)計思路。〔2看門狗電路一般設(shè)計方式"看門狗"電路一般分為硬件看門狗與軟件看門狗兩種設(shè)計方式。硬件看門狗是利用了一個定時器,來監(jiān)控主程序的運行,也就是說在主程序的運行過程中,我們要在定時時間到之前對定時器進行復(fù)位。如果出現(xiàn)死循環(huán),或者說PC指針不能回來,那么定時時間到后就會使單片機復(fù)位。常用的WDT芯片如MAX813,5045,IMP813等,價格4~10元不等.軟件看門狗技術(shù)的原理和硬件看門狗類似,只不過是用軟件的方法實現(xiàn)〔即利用單片機內(nèi)部定時器資源,通過編程模擬硬件看門狗工作方式,以51系列為例:因在51單片機中有兩個定時器,在利用內(nèi)部定時器資源來對主程序的運行進行監(jiān)控時??梢詫1〔或T0設(shè)定一定的定時時間〔設(shè)定的定時值要小于主程序的運行時間,當(dāng)產(chǎn)生定時中斷的時候?qū)σ粋€變量進行賦值〔此變量在主程序運行的開始已有一個初值。當(dāng)主程序運行至最后時對此變量的值進行判斷,如果值發(fā)生了預(yù)期的變化,就說明T0中斷正常,如果沒有發(fā)生變化則使程序復(fù)位??紤]到設(shè)計要求,本設(shè)計采用軟件看門狗設(shè)計思路??撮T狗電路整體設(shè)計思路根據(jù)設(shè)計要求,本設(shè)計利用C51單片機內(nèi)部自帶的定時器1進行編程,并配合少量電路實現(xiàn)"看門狗"電路功能。整個設(shè)計分為軟件部分與硬件部分,如下:軟件部分設(shè)計原理:軟件設(shè)計分為三部分:"看門狗"定時器設(shè)置程序、溢出中斷服務(wù)程序和喂狗代碼。1.1設(shè)計思路:1在主程序開頭,"看門狗"定時器設(shè)置程序設(shè)置定時器1計時50ms。2當(dāng)定時達50ms時,定時器1產(chǎn)生溢出中斷,溢出中斷服務(wù)程序開始工作,將看門狗標(biāo)志num加1。當(dāng)num的值等于100時,說明看門狗定時器已經(jīng)計時5s,此時,單片機I/O端口P1.0輸出高電平,對程序進行復(fù)位。3在此過程中,喂狗代碼將被穿插于程序中循環(huán)體末尾。當(dāng)循環(huán)體結(jié)束時,喂狗代碼執(zhí)行,關(guān)閉定時器1、清空num并重新初始化定時器設(shè)置。若循環(huán)體進入死循環(huán),喂狗代碼無法執(zhí)行,num將一直累加至100,此時程序復(fù)位。注:喂狗代碼放置位置可根據(jù)num預(yù)計數(shù)值進行調(diào)整:當(dāng)num門限值較小,即看門狗計數(shù)時間較短時,喂狗代碼可放于程序中各循環(huán)體之后或均勻分布于整個主程序中。當(dāng)num門限值較大,即看門狗計數(shù)時間較長時,喂狗代碼可放于程序主循環(huán)體末尾。但是需注意看門狗計數(shù)時間必須長于正常工作時間,以免非正常復(fù)位。1.2軟件設(shè)計流程圖:STARTSTART定時器1主程序定時器1主程序寄存器累加定時器1設(shè)置寄存器累加定時器1設(shè)置溢出中斷溢出中斷開定時器1開定時器1循環(huán)中斷服務(wù)程序循環(huán)中斷服務(wù)程序喂狗代碼num+1喂狗代碼num+1NoNonum=100?num=100?YesYes復(fù)位復(fù)位以下為三部分詳細程序設(shè)計1.3"看門狗"定時器設(shè)置程序:"看門狗"定時器設(shè)置程序?qū)Χ〞r器1進行設(shè)置。設(shè)定時器1為工作方式1。設(shè)M為工作方式1下,定時器最大計數(shù)值,可知M=65536。所以,設(shè)定時器1的初值為X,則初值X與機器周期I機及定時時間T的關(guān)系為:<M-X>T機=T<1>其中:T機=12個時鐘周期=12/fosc。所以,定時器1的初值為:X=M-T/T機<2>因此,當(dāng)T1工作于方式1,定時時間為50ms,時鐘頻率fosc=12MHz時,可知:X=M-T/T機=65536-50000/1=15536=3CB0H所以,"看門狗"定時器設(shè)置程序清單〔c語言如下:TMOD=0x10;//設(shè)置TMOD寄存器,定時器1設(shè)為方式1TL1=0xB0;//設(shè)置定時器初值低8位TH1=0x3C;//設(shè)置定時器初值高8位,設(shè)置為計時50msET1=1;//開定時器1溢出中斷EA=1;//開總中斷控制TF1=0;//定時器1溢出中斷標(biāo)志清零TR1=1;//開定時器11.4溢出中斷服務(wù)程序:溢出中斷服務(wù)程序為定時器1溢出中斷服務(wù)程序,每執(zhí)行一次,num加1,并判斷num是否達到100,即計時5s。若已達到5s,I/O口P1.0輸出復(fù)位信號。溢出中斷服務(wù)程序清單〔c語言如下:voidint_T1<>interrupt3using3//定時器1溢出中斷服務(wù)程序{num++;//每溢出一次標(biāo)志加1if<num==100>//當(dāng)標(biāo)志等于100時,即計時5s{P1=~<0x01>;//P1.0輸出1}}1.5喂狗代碼:喂狗代碼主要功能為暫時關(guān)定時器1,定時器1寄存器清零,看門狗標(biāo)志num清零和重新開啟定時器1.喂狗代碼程序清單〔c語言如下:TR1=0;//喂狗代碼,關(guān)定時器1TL1=0xB0;//重新設(shè)置定時器初值TH1=0x3C;TF1=0;//定時器1溢出中斷標(biāo)志清零TR1=1;//開定時器11.6完整測試程序清單完整測設(shè)程序分為兩部分,以一個正向運行一次的流水燈程序和逆向無限循環(huán)流水燈程序組成。在正向進行一次流水燈程序時,看門狗代碼不會復(fù)位單片機;逆向無限循環(huán)流水燈程序時,延時5s,看門狗復(fù)位單片機。完整測試程序清單〔c語言如下:#include"reg51.h"#include"stdio.h"unsignedinti,num;//設(shè)置變量unsignedchartemp;voiddelay<unsignedintt>;//聲明delay函數(shù)intmain<>{num=0;//看門狗復(fù)位標(biāo)志P1=~<0x00>;//將P1口賦值為0TMOD=0x10;//設(shè)置TMOD寄存器,定時器1設(shè)為方式1TL1=0xB0;//設(shè)置定時器初值低8位TH1=0x3C;//設(shè)置定時器初值高8位,設(shè)置為計時50msET1=1;//開定時器1溢出中斷EA=1;//開總中斷控制TF1=0;//定時器1溢出中斷標(biāo)志清零TR1=1;//開定時器1temp=0x01;//流水燈狀態(tài)標(biāo)志for<i=0;i<8;i++>//流水燈程序〔1{P0=~temp;//點亮P0口對應(yīng)的LEDdelay<100>;temp<<=1;//點亮的LED燈前移一位}TR1=0;//喂狗代碼,關(guān)定時器1TL1=0xB0;//重新設(shè)置定時器初值TH1=0x3C;TF1=0;//定時器1溢出中斷標(biāo)志清零TR1=1;//開定時器1while<1>//流水燈程序〔2{//倒序,無限循環(huán)temp=0x80;for<i=0;i<8;i++>{P0=~temp;delay<100>;temp>>=1;}}TR1=0;//喂狗代碼TL1=0xB0;TH1=0x3C;TF1=0;TR1=1;num=0;return0;}voiddelay<unsignedintt>//延時子程序{registerunsignedintbt;for<;t;t-->for<bt=0;bt<255;bt++>;}voidint_T1<>interrupt3using3//定時器1溢出中斷服務(wù)程序{num++;//每溢出一次標(biāo)志加1if<num==100>//當(dāng)標(biāo)志等于100時,即計時5s{P1=~<0x01>;//P1.0輸出1}}完整測試程序清單〔c語言反匯編版如下:Q0000:LJMPQ00ABQ0003:PUSHACCINC0AHMOVA,0AHJNZQ000DINC09HQ000D:XRLA,#64HORLA,09HJNZQ0016MOVP1,#0FEHQ0016:POPACCRETINOPNOPLJMPQ0003Q001E:CLRAMOV09H,AMOV0AH,AMOVP1,#0FFHMOVTMOD,#10HMOVTL1,#0B0HMOVTH1,#3CHSETBET1SETBEACLRTF1SETBTR1MOV08H,#01HMOV0BH,AMOV0CH,AQ003E:LCALLQ0089MOVA,08HADDA,ACCMOV08H,AINC0CHMOVA,0CHJNZQ004FINC0BHQ004F:CLRCSUBBA,#08HMOVA,0BHSUBBA,#00HJCQ003ECLRTR1MOVTL1,#0B0HMOVTH1,#3CHCLRTF1SETBTR1Q0064:MOV08H,#80HCLRAMOV0BH,AMOV0CH,AQ006C:LCALLQ0089MOVA,08HCLRCRRCAMOV08H,AINC0CHMOVA,0CHJNZQ007DINC0BHQ007D:CLRCSUBBA,#08HMOVA,0BHSUBBA,#00HJCQ006CSJMPQ0064RETQ0089:MOVA,08HCPLAMOVP0,AMOVR7,#64HMOVR6,#00HQ0092:MOVA,R7ORLA,R6JZQ00AACLRAMOVR5,AMOVR4,AQ0099:INCR5CJNER5,#00H,Q009EINCR4
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一年級夜色聽評課記錄
- 湘教版地理八年級下冊5.3《西北地區(qū)和青藏地區(qū)》(第2課時)聽課評課記錄
- 魯教版數(shù)學(xué)八年級下冊8.3《用公式法解一元二次方程》聽評課記錄
- 五年級數(shù)學(xué)口算競賽題
- 蘇教版小學(xué)數(shù)學(xué)三年級下冊口算題
- 蘇教版二年級下冊數(shù)學(xué)口算練習(xí)題費
- 小學(xué)數(shù)學(xué)-六年級下冊-4-3 正比例圖像 聽評課記錄
- 船員勞動合同范本
- 商業(yè)房屋租借合同范本
- 2025年度高級技術(shù)人才聘用與管理制度合同
- 激光拉曼光譜技術(shù)課件
- DB33-T 2082-2017(2021)托幼機構(gòu)消毒衛(wèi)生規(guī)范
- 提高攜帶雙J管患者的健康教育落實率泌尿科品管圈課件
- 《隋朝的統(tǒng)一與滅亡》 -完整版課件
- API-650-1鋼制焊接石油儲罐
- 職業(yè)危害告知書(最新版)
- 金融科技課件(完整版)
- 醫(yī)院壓力性損傷患者質(zhì)控標(biāo)準(zhǔn)
- 醫(yī)療機構(gòu)規(guī)章制度診所診所規(guī)章制度
- 飲品店操作流程圖
- 風(fēng)居住的街道鋼琴二胡合奏譜
評論
0/150
提交評論