<progress id="jlsnq"><code id="jlsnq"></code></progress>

<strong id="jlsnq"><del id="jlsnq"></del></strong>
    <mark id="jlsnq"></mark>

    <legend id="jlsnq"><table id="jlsnq"></table></legend>
    <small id="jlsnq"></small>
  • <ruby id="jlsnq"><table id="jlsnq"></table></ruby>

      <strong id="jlsnq"></strong>

      24小時聯系電話:18217114652、13661815404

      中文

      您當前的位置:
      首頁>
      電子資訊>
      行業資訊>
      C51單片機看門狗電路

      行業資訊

      C51單片機看門狗電路


      采用89C51單片機和X25045組成的看門狗電路,X25045硬件連接圖如圖1所示。X25045芯片內包含有一個看門狗定時器,可通過軟件預置系統的監控時間。在看門狗定時器預置的時間內若沒有總線活動,則X25045將從RESET輸出一個高電平信號,經過微分電路C2、R3輸出一個正脈沖,使CPU復位。圖1電路中,CPU的復位信號共有3個:上電復位(C1、R2),人工復位(S、R1、R2)和Watchdog復位(C2、R3),通過或門綜合后加到RESET端。C2、R3的時間常數不必太大,有數百微秒即可,因為這時CPU的振蕩器已經在工作。

        


      采用89C51單片機和X25045組成的看門狗電路
       

        看門狗定時器的預置時間是通過X25045的狀態寄存器的相應位來設定的。如表1所示,X25045狀態寄存器共有6位有含義,其中WD1、WD0和看門狗電路有關,其余位和EEPROM的工作設置有關。

        


       

        WD1=0,WD0=0,預置時間為1.4s。

        WD1=0,WD0=1,預置時間為0.6s。

        WD1=1,WD0=0,預置時間為0.2s。

        WD1=1,WD0=1,禁止看門狗工作。

        看門狗電路的定時時間長短可由具體應用程序的循環周期決定,通常比系統正常工作時最大循環周期的時間略長即可。編程時,可在軟件的合適地方加一條喂狗指令,使看門狗的定時時間永遠達不到預置時間,系統就不會復位而正常工作。當系統跑飛,用軟件陷阱等別的方法無法捕捉回程序時,則看門狗定時時間很快增長到預置時間,迫使系統復位。

        以下是C語言編寫的看門狗程序部分。

        #include reg51.h

        sbit cs=P1^2;/*片選信號由P1.2產生*/

        sbit sck=P1^3; /*時鐘信號由P1.3 產生*/

        sbit si=P1^0; /*SI由P1.0產生*/

        sbit so=P1^1; /*SO由P1.1產生*/

        sbit c=ACC^7; /*定義位變量*/

        bdata unsigned char com;

        void tran() /*發送一字節數據子函數*/

        {

        unsigned char i;

        for(i=0; i<8; i++)

        { ACC=com; /*將數據放入a中*/

        si=c;

        sck=0; /*sck產生一個上跳變*/

        sck=1;

        com=com<<1; /*左移一位*/

        }

        return;

        }

        main()

        {

        com=0x06; /*發寫讀使能命令*/

        cs=0;

        tran();

        cs=1;

        com=0x01; /*發寫狀態字命令*/

        cs=0;

        tran();

        com=0x00; /*定時1.4s*/

        tran();

        cs=1;

        ...;系統正常運行的程序部分

        }

        需要注意的是,在程序正常運行的時候,應該在適當的地方加一條喂狗指令,使系統正常運行時的定時時間達不到預置時間。系統就不會復位。喂狗指令如下。

        main()

        {

        ...;系統正常運行的程序部分

        {

        cs=0; /*產生cs脈沖*/

        cs=1;

        }

        }

        X25045的看門狗電路使用十分方便。X25045內部還集成了512BEEPROM和電壓運行監視系統,只需這樣一塊芯片,外加晶振和復位電路就可以組成單片機的應用系統,非常適合于便攜式儀器和嵌入式系統的設計。

      請輸入搜索關鍵字

      確定
      色鲁99热99re超碰精品_91精品一区二区三区无码吞精_亚洲国产欧洲综合997久久_一级a性色生活片久久无
      <progress id="jlsnq"><code id="jlsnq"></code></progress>

      <strong id="jlsnq"><del id="jlsnq"></del></strong>
        <mark id="jlsnq"></mark>

      <legend id="jlsnq"><table id="jlsnq"></table></legend>
      <small id="jlsnq"></small>
    1. <ruby id="jlsnq"><table id="jlsnq"></table></ruby>

        <strong id="jlsnq"></strong>