標(biāo)題:
51單片機(jī)看門(mén)狗功能如何使用?
[打印本頁(yè)]
作者:
asp65
時(shí)間:
2018-2-3 20:31
標(biāo)題:
51單片機(jī)看門(mén)狗功能如何使用?
51單片機(jī)看門(mén)狗功能如何使用?
作者:
yzwzfyz
時(shí)間:
2018-2-5 18:58
查51手冊(cè)
作者:
dzbj
時(shí)間:
2018-2-5 19:14
按分頻定時(shí)喂狗 看手冊(cè) 上面寫(xiě)的挺明白的
作者:
angmall
時(shí)間:
2018-2-5 20:42
首先 ,你要知道什么是看門(mén)狗?
在由單片機(jī)構(gòu)成的微型計(jì)算機(jī)系統(tǒng)中,由于單片機(jī)的工作常常會(huì)受到來(lái)自外界電磁場(chǎng)的干擾,造成程序的跑飛,而陷入死循環(huán),程序的正常運(yùn)行被打斷,由單片機(jī)控制的系統(tǒng)無(wú)法繼續(xù)工作,會(huì)造成整個(gè)系統(tǒng)的陷入停滯狀態(tài),發(fā)生不可預(yù)料的后果,所以出于對(duì)單片機(jī)運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè)的考慮,便產(chǎn)生了一種專門(mén)用于監(jiān)測(cè)單片機(jī)程序運(yùn)行狀態(tài)的芯片,俗稱"看門(mén)狗"(watchdog)。
其次,看門(mén)狗的工作原理是什么?
在系統(tǒng)運(yùn)行以后也就啟動(dòng)了看門(mén)狗的計(jì)數(shù)器,看門(mén)狗就開(kāi)始自動(dòng)計(jì)數(shù),如果到了一定的時(shí)間還不去清看門(mén)狗,那么看門(mén)狗計(jì)數(shù)器就會(huì)溢出從而引起看門(mén)狗中斷,造成系統(tǒng)復(fù)位。所以在使用有看門(mén)狗的芯片時(shí)要注意清看門(mén)狗(俗稱喂狗)。
下面這段程序是我成功調(diào)試過(guò)了的,看門(mén)狗寄存器的各位的具體的意義,你可以自己去看下單片機(jī)的PDF文檔,里面有詳細(xì)的介紹...................
#include <reg52.h> 52系列單片機(jī)頭文件
#define uchar unsigned char
#define uint unsigned int
sfr WDT_CONTR=0xe1;/*看門(mén)狗寄存器聲明*/
sbit led1=P1^0; /*接發(fā)光二極管*/
void delayms(uint xms) /*延時(shí)函數(shù)*/
{
uint i,j;
for(i=xms;i>0;i--) /*i=xms即延時(shí)約xms毫秒 */
for(j=110;j>0;j--);
}
void main()
{
WDT_CONTR=0x35;
led1=0;
delayms(500);
led1=1;
while(1)
{
delayms(1000);
// WDT_CONTR=0x35; /*喂狗,如果這句話不加的話單片機(jī)就 會(huì)一直復(fù)位,看到的現(xiàn)象是發(fā)光二極管閃爍,加上這句的話,發(fā)光二極管一直亮著,所以在實(shí)際工程應(yīng)用的時(shí)候通常要在程序里面調(diào)用比較頻繁的函數(shù)內(nèi)部寫(xiě)上這句話*/
}
}
/*******************************************************************
喂狗的技巧:如果一個(gè)大循環(huán)少于看門(mén)狗益處時(shí)間,
放在while(1)哪個(gè)地方都可以啊,如果大于,看下
哪個(gè)地方停頓時(shí)間長(zhǎng)就放哪
*********************************************************************/
復(fù)制代碼
作者:
er2052098
時(shí)間:
2018-2-6 15:14
配置好,在主函數(shù)里喂狗,不要在中斷里喂
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1