• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    89S51的看門狗用法

    作者: 時(shí)間:2011-03-14 來(lái)源:網(wǎng)絡(luò) 收藏
    起作用的時(shí)候是不是只要同時(shí)寫O1EH和OE1H到特殊寄存器OA6H中就可以了呢?
    這是89S51的看門狗用法,S52應(yīng)該是一樣的
    看門狗具體使用方法如下:
    在程序初始化中向看門狗寄存器(WDTRST地址是0A6H)中先寫入01EH,再寫入0E1H。即可激
    活看門狗。
    Org 0000 
    Ljmp begin
    Begin:
    Mov 0A6H,#01EH ;先送1E
    Mov 0A6H,#0E1H ;后送E1
    ;在程序初始化中激活看門狗。
    ……
    ……
    For:
    ……
    Mov 0A6H,#01EH ;先送1E
    Mov 0A6H,#0E1H ;后送E1
    ;喂狗指令
    ……
    Ljmp for
    C語(yǔ)言中要增加一個(gè)聲明語(yǔ)句。
    AT89X51.h聲明文件中增加一行 sfr WDTRST = 0xA6;
    Main()
    {
    WDTRST=0x1E;
    WDTRST=0xE1;//初始化看門狗。
    While (1)
    {
    WDTRST=0x1E;
    WDTRST=0xE1;//喂狗指令
    }
    }
    注意事項(xiàng):
    1. 89S51的看門狗必須由程序激活后才開(kāi)始工作。所以必須保證CPU有可靠的上電復(fù)位。否則看門狗也無(wú)法工作。
    2. 看門狗使用的是CPU的晶振。在晶振停振的時(shí)候看門狗也無(wú)效。
    3. 89S51只有14位計(jì)數(shù)器。在16383個(gè)機(jī)器周期內(nèi)必須至少喂狗一次。而且這個(gè)時(shí)間是固定的,無(wú)法更改。
    當(dāng)晶振為12M時(shí)每16個(gè)毫秒需喂狗一次。
    以上程序已調(diào)試通過(guò)。還利用定時(shí)器把看門狗的喂狗時(shí)間延長(zhǎng)幾秒至幾分鐘。


    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 雷山县| 海口市| 河池市| 金堂县| 文水县| 永年县| 峨眉山市| 梁山县| 石屏县| 防城港市| 夏河县| 凭祥市| 漳州市| 汽车| 贵州省| 永州市| 二连浩特市| 阆中市| 无极县| 永顺县| 翼城县| 道真| 金湖县| 海城市| 手游| 日照市| 固阳县| 远安县| 全椒县| 宜良县| 手游| 隆尧县| 和龙市| 罗平县| 洛扎县| 公主岭市| 精河县| 高州市| 钟祥市| 修水县| 科尔|