新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 89S51內部看門狗功能的使用方法

        89S51內部看門狗功能的使用方法

        作者: 時間:2016-11-10 來源:網絡 收藏
        在ATMEL的89S51系列的89S51與89C51功能相同。指令兼容。HEX程序無需任何轉換可以直接使用。89S51除了可以通過下載線與計算機連接進行在線編程以外,它還比89C51增加了一個內部看門狗功能。89S51的其它功能可以參見89C51的資料。

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

        本文引用地址:http://www.104case.com/article/201611/317361.htm

        在程序初始化中向看門狗寄存器(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位計數器。在16382個機器周期內必須至少喂狗一次。而且這個時間是固定的,無法更改。當晶振為12M時每16個毫秒需喂狗一次。

        89S52只有13位計數器。在8191個機器周期內必須至少喂狗一次。而且這個時間是固定的,無法更改。當晶振為12M時每8個毫秒需喂狗一次。

        以上程序我已調試通過。還利用定時器把看門狗的喂狗時間延長幾秒至幾分鐘。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 千阳县| 岱山县| 禹州市| 肥东县| 丰城市| 元谋县| 乳源| 辽阳市| 栖霞市| 登封市| 吉安市| 民权县| 兴山县| 滕州市| 星子县| 光泽县| 伊金霍洛旗| 西安市| 辉县市| 辽阳市| 察雅县| 定南县| 高尔夫| 西昌市| 青州市| 车致| 湄潭县| 福清市| 克拉玛依市| 宁远县| 襄汾县| 新邵县| 紫阳县| 新干县| 四会市| 富源县| 思南县| 措勤县| 独山县| 中山市| 内黄县|