回覆列表
  • 1 # 使用者2342335691113

    89S51的看門狗用法2008-03-31 12:19

    起作用的時候是不是隻要同時寫O1EH和OE1H到特殊暫存器OA6H中就可以了呢?

    這是89S51的看門狗用法,S52應該是一樣的

    看門狗具體使用方法如下:

    在程式初始化中向看門狗暫存器(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語言中要增加一個宣告語句。

    在AT89X51.h宣告檔案中增加一行 sfr WDTRST = 0xA6;

    Main()

    {

    WDTRST=0x1E;

    WDTRST=0xE1;//初始化看門狗。

    While (1)

    {

    WDTRST=0x1E;

    WDTRST=0xE1;//餵狗指令

    }

    }

    注意事項:

    1. 89S51的看門狗必須由程式啟用後才開始工作。所以必須保證CPU有可靠的上電覆位。否則看門狗也無法工作。

    2. 看門狗使用的是CPU的晶振。在晶振停振的時候看門狗也無效。

    3. 89S51只有14位計數器。在16383個機器週期內必須至少餵狗一次。而且這個時間是固定的,無法更改。

    當晶振為12M時每16個毫秒需餵狗一次。

    以上程式已除錯透過。

  • 中秋節和大豐收的關聯?
  • 夢幻西遊建立什麼人物比較好?然後選擇什麼門派?