• <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>

    24小時(shí)聯(lián)系電話(huà):18217114652、13661815404

    中文

    您當前的位置:
    首頁(yè)>
    電子資訊>
    行業(yè)資訊>
    C51單片機看門(mén)狗電路

    行業(yè)資訊

    C51單片機看門(mén)狗電路


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

      


    采用89C51單片機和X25045組成的看門(mén)狗電路
     

      看門(mén)狗定時(shí)器的預置時(shí)間是通過(guò)X25045的狀態(tài)寄存器的相應位來(lái)設定的。如表1所示,X25045狀態(tài)寄存器共有6位有含義,其中WD1、WD0和看門(mén)狗電路有關(guān),其余位和EEPROM的工作設置有關(guān)。

      


     

      WD1=0,WD0=0,預置時(shí)間為1.4s。

      WD1=0,WD0=1,預置時(shí)間為0.6s。

      WD1=1,WD0=0,預置時(shí)間為0.2s。

      WD1=1,WD0=1,禁止看門(mén)狗工作。

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

      以下是C語(yǔ)言編寫(xiě)的看門(mén)狗程序部分。

      #include reg51.h

      sbit cs=P1^2;/*片選信號由P1.2產(chǎn)生*/

      sbit sck=P1^3; /*時(shí)鐘信號由P1.3 產(chǎn)生*/

      sbit si=P1^0; /*SI由P1.0產(chǎn)生*/

      sbit so=P1^1; /*SO由P1.1產(chǎn)生*/

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

      bdata unsigned char com;

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

      {

      unsigned char i;

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

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

      si=c;

      sck=0; /*sck產(chǎn)生一個(gè)上跳變*/

      sck=1;

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

      }

      return;

      }

      main()

      {

      com=0x06; /*發(fā)寫(xiě)讀使能命令*/

      cs=0;

      tran();

      cs=1;

      com=0x01; /*發(fā)寫(xiě)狀態(tài)字命令*/

      cs=0;

      tran();

      com=0x00; /*定時(shí)1.4s*/

      tran();

      cs=1;

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

      }

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

      main()

      {

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

      {

      cs=0; /*產(chǎn)生cs脈沖*/

      cs=1;

      }

      }

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

    請輸入搜索關(guān)鍵字

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

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>