• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)軟件三重監(jiān)視抗干擾技術(shù)

    單片機(jī)軟件三重監(jiān)視抗干擾技術(shù)

    作者: 時(shí)間:2012-11-07 來(lái)源:網(wǎng)絡(luò) 收藏

    3 T0中斷服務(wù)程序過(guò)程設(shè)計(jì)

    T0中斷的功能是T1中斷服務(wù)程序的運(yùn)行狀態(tài)。由于T0中斷服務(wù)程序較短,因干擾而引起的“死循環(huán)”的幾率很小,重點(diǎn)考慮中斷關(guān)閉故障。A1、B1為T(mén)1中斷運(yùn)行狀態(tài)觀測(cè)單元。A1的初值為00H,T1每中斷一次,A1便加1,T0中斷服務(wù)程序中若檢測(cè)到A1>0,說(shuō)明T1中斷正常;若A1=0,則B1單元加1(B1的初值為00H),若B1的累加值大于Q,說(shuō)明T1中斷失效,失效時(shí)間為T(mén)0定時(shí)溢出時(shí)間與Q值之積。例如:T0的定時(shí)溢出時(shí)間為4ms,T1的定時(shí)溢出時(shí)間為2 ms,當(dāng)Q=5時(shí),說(shuō)明允許T1的失效時(shí)間為20 ms,在這樣長(zhǎng)的時(shí)間內(nèi),T1并沒(méi)有發(fā)生中斷,說(shuō)明T1中斷發(fā)生了故障。由于T0中斷級(jí)別高于T1中斷級(jí)別,所以T1的任何故障(如死循環(huán)、中斷關(guān)閉)都會(huì)由T0檢測(cè)出來(lái)。T0中斷服務(wù)程序一般很短,發(fā)生“死循環(huán)”的幾率很小。

    設(shè)晶振頻率為6MHz,T0以工作方式1產(chǎn)生4 ms的定時(shí)中斷,則T0的計(jì)數(shù)初值為:

    (216-N)×2×10-6=4×10-3

    N=63536D=F830H

    設(shè)計(jì)數(shù)單元A0、A1、B1分別為內(nèi)RAM 30H、31H、32H,Q=5,60H、61H為暫存單元,則T0中斷程序如下:

    PUSH   PSW     ;保護(hù)現(xiàn)場(chǎng)

    PUSH ACC

    MOV TH0,#0F8H ;設(shè)T0初值

    MOV TL0,#30H

    INC 30H ;A0加1

    MOV A,31H ;A1單元判0

    JZ loop1

    CLR A     ;清A1、B1單元

    MOV 31H,A

    MOV 32H,A

    loop0:POP ACC ;恢復(fù)現(xiàn)場(chǎng)

    POP PSW

    RETI  ;返回

    loop1:INC 32H ;B1加1

    CLR C

    MOV A  ,32H;B1≥Q?

    SUBB A,#05H

    JC loop0

    POP  ACC    ;恢復(fù)現(xiàn)場(chǎng)

    POP PSW

    POP 60H ;原斷點(diǎn)彈出

    POP 61H

    MOV 60H,#00H ;修改斷點(diǎn)0000H

    MOV 61H,#00H

    PUSH 60H

    PUSH 61H

    RETI

    當(dāng)系統(tǒng)受到干擾后,主程序可能發(fā)生“死循環(huán)”,中斷服務(wù)程序也可能陷入“死循環(huán)”,或因中斷方式字的破壞而關(guān)閉中斷。主程序的“死循環(huán)”可由T1中斷服務(wù)程序監(jiān)視;T1中斷服務(wù)程序的“死循環(huán)”和中斷關(guān)閉故障由T0中斷服務(wù)程序監(jiān)視;T0的中斷故障可由主程序監(jiān)視。由于采取了監(jiān)測(cè)方法,大大提高了系統(tǒng)運(yùn)行的可靠性。


    上一頁(yè) 1 2 3 下一頁(yè)

    評(píng)論


    相關(guān)推薦

    技術(shù)專(zhuān)區(qū)

    關(guān)閉
    主站蜘蛛池模板: 霍林郭勒市| 芮城县| 玛纳斯县| 迭部县| 宜城市| 勐海县| 新晃| 囊谦县| 汉源县| 车致| 锦州市| 莆田市| 宜兰县| 保山市| 扎赉特旗| 永兴县| 全南县| 香河县| 朝阳县| 陇南市| 陇川县| 隆昌县| 铁岭县| 洪雅县| 措美县| 平遥县| 吉林省| 济宁市| 垣曲县| 沾益县| 昂仁县| 资兴市| 阳山县| 新乐市| 甘孜县| 乌兰浩特市| 木兰县| 长治市| 柳州市| 安徽省| 太白县|