<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > C51單片機看門狗電路

          C51單片機看門狗電路

          作者: 時間:2011-12-23 來源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/172290.htm

          49.jpg

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

          50.jpg

            WD1=0,WD0=0,預(yù)置時間為1.4s。

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

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

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

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

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

            #include reg51.h

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

            sbit sck=P1^3; /*時鐘信號由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ā)送一字節(jié)數(shù)據(jù)子函數(shù)*/

            {

            unsigned char i;

            for(i=0; i8; i++)

            { ACC=com; /*將數(shù)據(jù)放入a中*/

            si=c;

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

            sck=1;

            com=com1; /*左移一位*/

            }

            return;

            }

            main()

            {

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

            cs=0;

            tran();

            cs=1;

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

            cs=0;

            tran();

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

            tran();

            cs=1;

            ...;系統(tǒng)正常運行的程序部分

            }

          需要注意的是,在程序正常運行的時候,應(yīng)該在適當?shù)牡胤郊右粭l喂狗指令,使系統(tǒng)正常運行時的定時時間達不到預(yù)置時間。系統(tǒng)就不會復(fù)位。喂狗指令如下。

            main()

            {

            ...;系統(tǒng)正常運行的程序部分

            {

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

            cs=1;

            }

            }

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

          DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY




          關(guān)鍵詞: 電路 看門 單片機 C51

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();