|
http://www.21ic.com/app/mcu/201208/135613.htm轉 采用89C51單片機和X25045組成的看門狗電路,X25045硬件連接圖如圖2所示。X25045芯片內包含有一個看門狗定時器,可通過軟件預置系統(tǒng)的監(jiān)控時間。在看門狗定時器預置的時間內若沒有總線活動,則X25045將從RESET輸出一個高電平信號,經過微分電路C2、R3輸出一個正脈沖,使CPU復位。圖2電路中,CPU的復位信號共有3個:上電復位(C1、R2),人工復位(S、R1、R2)和Watchdog復位(C2、R3),通過或門綜合后加到RESET端。C2、R3的時間常數不必太大,有數百微秒即可,因為這時CPU的振蕩器已經在工作。
看門狗定時器的預置時間是通過X25045的狀態(tài)寄存器的相應位來設定的。如表2所示,X25045狀態(tài)寄存器共有6位有含義,其中WD1、WD0和看門狗電路有關,其余位和EEPROM的工作設置有關。
WD1=0,WD0=0,預置時間為1.4s。 看門狗電路的定時時間長短可由具體應用程序的循環(huán)周期決定,通常比系統(tǒng)正常工作時最大循環(huán)周期的時間略長即可。編程時,可在軟件的合適地方加一條喂狗指令,使看門狗的定時時間永遠達不到預置時間,系統(tǒng)就不會復位而正常工作。當系統(tǒng)跑飛,用軟件陷阱等別的方法無法捕捉回程序時,則看門狗定時時間很快增長到預置時間,迫使系統(tǒng)復位。 以下是C語言編寫的看門狗程序部分。 #include reg51.h 需要注意的是,在程序正常運行的時候,應該在適當的地方加一條喂狗指令,使系統(tǒng)正常運行時的定時時間達不到預置時間。系統(tǒng)就不會復位。喂狗指令如下。 main() X25045的看門狗電路使用十分方便。X25045內部還集成了512BEEPROM和電壓運行監(jiān)視系統(tǒng),只需這樣一塊芯片,外加晶振和復位電路就可以組成單片機的應用系統(tǒng),非常適合于便攜式儀器和嵌入式系統(tǒng)的設計。 |
|
|
來自: KevinGuo079 > 《單片機》