|
看門狗是為了解決單片機(jī)程序運(yùn)行時(shí)可能進(jìn)入混亂或死循環(huán)面設(shè)置的,AT89S51/52單片機(jī)的看門狗它是由一個(gè)14bit的計(jì)數(shù)器和看門狗復(fù)位WDTRST構(gòu)成,在單片機(jī)外部復(fù)位時(shí),看門狗默認(rèn)為關(guān)閉狀態(tài),有打開看門狗,必須按順序?qū)?1EH和0E1H寫入到WDTRST寄存器(SRF寄存器中,地址為0A6H),單啟動(dòng)了看門狗,它會(huì)隨晶振在每個(gè)機(jī)器周期計(jì)數(shù),這時(shí)除硬件復(fù)位或看門狗溢出復(fù)位外沒有其它的方法關(guān)閉看門狗,當(dāng)看門狗溢出,將會(huì)使單片機(jī)的復(fù)位腳RST引腳輸出高電平的復(fù)位脈沖使單片機(jī)復(fù)位。
在C語言中要增加一個(gè)聲明語句。 在AT89X51.h聲明文件中增加一行 sfr WDTRST = 0xA6; 在程序中加入初始化看門狗及喂狗指令,如下:
main()
{
WDTRST=0x1E;
WDTRST=0xE1;//初始化看門狗。
While (1)
{
WDTRST=0x1E;
WDTRST=0xE1;//喂狗指令
}
}
|
|