新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 89S52看門狗使用方法

        89S52看門狗使用方法

        作者: 時間:2016-11-18 來源:網絡 收藏
        在ATMEL的89S52系列的89S52與89C51功能相同。指令兼容。HEX程序無需任何轉換可以直接使用。89S52比89C51增加了一個看門狗功能。89S52的其它功能可以參見89C52的資料。

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

          在程序初始化中向看門狗寄存器(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個毫秒需喂狗一次。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 镇平县| 新丰县| 互助| 义马市| 徐汇区| 西乌| 闽清县| 扎鲁特旗| 石门县| 嵊州市| 天水市| 张家口市| 江油市| 旬邑县| 乌兰县| 怀安县| 玉环县| 蚌埠市| 黔西| 镇沅| 于田县| 信阳市| 玉环县| 会宁县| 北流市| 桐庐县| 金昌市| 九江市| 漾濞| 浦江县| 广河县| 郸城县| 黄山市| 广东省| 马鞍山市| 通许县| 荥经县| 吴旗县| 晋城| 克山县| 汝南县|