新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MAX813L在51單片機(jī)系統(tǒng)抗干擾中的應(yīng)用及工作原理

MAX813L在51單片機(jī)系統(tǒng)抗干擾中的應(yīng)用及工作原理

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

2.2 硬件實(shí)現(xiàn)電路圖
  圖2―2給出了中的典型線路圖。此電路可以實(shí)現(xiàn)上電、瞬時掉電以及程序運(yùn)行出現(xiàn)“死機(jī)”時的自動復(fù)位和隨時的手動復(fù)位;并且可以實(shí)時地監(jiān)視電源故障,以便及時地保存數(shù)據(jù)。
  本電路巧妙地利用了的手動復(fù)位輸入端。只要程序一旦跑飛引起程序“死機(jī)”,MAX813L工作原理及其在51單片機(jī)系統(tǒng)抗干擾中的應(yīng)用端電平由高到低,MAX813L工作原理及其在51單片機(jī)系統(tǒng)抗干擾中的應(yīng)用當(dāng)變低超過140 ms,將引起產(chǎn)生一個200 ms的復(fù)位脈沖。同時使看門狗定時器清0和使MAX813L工作原理及其在51單片機(jī)系統(tǒng)抗干擾中的應(yīng)用引腳變成高電平。也可以隨時使用手動復(fù)位按鈕使MAX813L產(chǎn)生復(fù)位脈沖,由于為產(chǎn)生復(fù)位脈沖端MAX813L工作原理及其在51單片機(jī)系統(tǒng)抗干擾中的應(yīng)用要求低電平至少保持140ms以上,故可以有效地消除開關(guān)抖動。
  該電路可以實(shí)時地監(jiān)視電源故障(掉電、電壓降低等)。圖2―2中R1的一端接未經(jīng)穩(wěn)壓的直流電源。電源正常時,確保R2上的電壓高于1.26 V,即保證MAX813L的PFI輸入端電平高于1.26 V。當(dāng)電源發(fā)生故障,PFI輸入端的電平低于1.25 V時,電源故障輸出端電平由高變低,引起中斷,CPU響應(yīng)中斷,執(zhí)行相應(yīng)的中斷服務(wù)程序,保護(hù)數(shù)據(jù),斷開外部用電電路等。

3 程序設(shè)計(jì)
3.1 程序運(yùn)行“死機(jī)”及相應(yīng)對策
程序正常運(yùn)行時,由主程序在小于1.6 s的時間間隔內(nèi)周期性地從P1.7端向MAX813L的WDI輸入端發(fā)送一個脈沖信號,以清除芯片內(nèi)部的看門狗定時器。實(shí)現(xiàn)指令為:
RST-PRG:SETB P1.7
NOP     
CLR P1.7
若超過1.6 s該輸入端收不到脈沖信號,則內(nèi)部看門狗定時器溢出,8號引腳由高電平變?yōu)榈碗娖健R餗AX813L產(chǎn)生一個200 ms的復(fù)位脈沖。同時使看門狗定時器清0和使MAX813L工作原理及其在51單片機(jī)系統(tǒng)抗干擾中的應(yīng)用引腳變成高電平。
  需要引起注意的是,整個完成復(fù)位后,在PC指針的指引下整個程序?qū)?000H地址處重新開始初始化運(yùn)行,而這在很多情況下是不允許的(如連續(xù)的工藝流程),為此必須采取相應(yīng)的措施。首先在對單片機(jī)完成復(fù)位后,程序應(yīng)該先判斷是開機(jī)運(yùn)行(冷啟動)還是運(yùn)行過程中“死機(jī)”之后的重新加載運(yùn)行(熱啟動)。因?yàn)橐话闱闆r下在這兩種啟動方式下,系統(tǒng)程序在進(jìn)入主流程前所要做的往往不同。如冷啟動后,系統(tǒng)程序在初始化程序中往往要進(jìn)行系統(tǒng)資源的自檢以及將各外圍設(shè)備設(shè)置為相應(yīng)的待機(jī)狀態(tài)等。而熱啟動后往往不再對系統(tǒng)的資源自檢,同時應(yīng)盡量避免對各外圍設(shè)備修改設(shè)置,只是對單片機(jī)系統(tǒng)本身的一些資源進(jìn)行必要的設(shè)置。其次,在大多數(shù)情況下,我們總可以把一個連續(xù)的過程分解開來,把它變成一個個獨(dú)立的子過程(狀態(tài))組成的連續(xù)過程。在主程序運(yùn)行過程中,適時保存相應(yīng)狀態(tài)和該狀態(tài)下的相關(guān)參數(shù)。這樣當(dāng)程序運(yùn)行出現(xiàn)“死機(jī)”,在MAX813L作用下系統(tǒng)復(fù)位和初始化后,將首先查詢事先保存的狀態(tài)參數(shù),然后根據(jù)此參數(shù)決定程序的流向。同時把該狀態(tài)下事先保存的參數(shù)取出,對系統(tǒng)外圍設(shè)備進(jìn)行必要的恢復(fù)設(shè)置和引導(dǎo)程序繼續(xù)運(yùn)行。根據(jù)這一思想設(shè)計(jì)的系統(tǒng)程序流程圖如圖3―1所示。
3.2 電源故障及相應(yīng)對策  
  當(dāng)電源發(fā)生故障時,引起單片機(jī)中斷,CPU響應(yīng)中斷,執(zhí)行相應(yīng)的中斷服務(wù)程序,保護(hù)數(shù)據(jù),斷開外部用電電路等。為了做到這一點(diǎn),必須把中斷優(yōu)先級(PX0)設(shè)為最高,特別是系統(tǒng)中還有其它中斷時,更應(yīng)如此。中斷優(yōu)先級的設(shè)置可通過中斷優(yōu)先寄存器IP實(shí)現(xiàn),此外還要設(shè)置中斷允許寄存器IE的總允許位(EA)及外部中斷0中斷允許位(EX0)。實(shí)現(xiàn)指令為:

SETB IP.0   ??;設(shè)置PX0=1
SETB IE.7   ??;設(shè)置EA=1  
SETB IE.0    ;設(shè)置EX0=1

 MAX813L工作原理及其在51單片機(jī)系統(tǒng)抗干擾中的應(yīng)用
  至于中斷源的觸發(fā)方式。如果選擇電平觸發(fā),則中斷擦除時必須外加輔助電路,否則中斷不能正常執(zhí)行;如果選擇跳變觸發(fā),當(dāng)MAX813L工作原理及其在51單片機(jī)系統(tǒng)抗干擾中的應(yīng)用端出現(xiàn)負(fù)跳變時,CPU內(nèi)部硬件自動置位中斷標(biāo)志IE0,CPU響應(yīng)中斷,通過向量地址轉(zhuǎn)入中斷服務(wù)程序時IE0被硬件清0。所以基于上述分析,必須選用跳變觸發(fā)方式。觸發(fā)方式由定時器控制寄存器TCON中的IT0位決定。實(shí)現(xiàn)指令為:
SETB TCON.0
  設(shè)計(jì)好中斷服務(wù)程序?qū)τ谙到y(tǒng)的連續(xù)可靠運(yùn)行具有重要意義。在中斷服務(wù)程序中,先保存重要數(shù)據(jù)到片內(nèi)RAM(掉電時由備用電源供電,相應(yīng)實(shí)現(xiàn)電路未畫出)。發(fā)出控制信號斷開外圍設(shè)備,最后把電源控制寄存器PCON的PD位置1,激活掉電工作方式,中斷返回。中斷服務(wù)程序?qū)崿F(xiàn)如下(其中R0代表保存的數(shù)據(jù)在內(nèi)存中的緩沖區(qū)首址,DPTR代表要保存的數(shù)據(jù)在外部RAM中的緩沖區(qū)首址,R1代表要保存的數(shù)據(jù)字節(jié)量):
INT0:MOVX A,@DPTR  ;保存數(shù)據(jù)
MOV?。繰0,A
INC R0       ??;內(nèi)存緩沖區(qū)指針加1
INC DPTR      ?。煌獯婢彌_區(qū)指針加1
DJNZ R1,INT0    ??;保存完?沒完,繼續(xù)保存
SETB PCON.1    ??;激活掉電方式
RET1    

4 結(jié)束語
本系統(tǒng)巧妙地利用MAX813L芯片,實(shí)現(xiàn)了單片機(jī)系統(tǒng)的看門狗電路、電源故障監(jiān)視電路和手動、自動復(fù)位電路,電路結(jié)構(gòu)緊湊,設(shè)計(jì)合理。結(jié)合本文給出的程序設(shè)計(jì)方案,可有效地解決程序運(yùn)行中出現(xiàn)的“死機(jī)”現(xiàn)象和電源故障帶來的不利影響。在我們設(shè)計(jì)氮化鎵半導(dǎo)體薄膜生長工藝流程實(shí)時監(jiān)控系統(tǒng)中實(shí)際運(yùn)行表明:該方案設(shè)計(jì)合理,運(yùn)行可靠,能力強(qiáng),達(dá)到了滿意的使用效果,并且可推廣到其它的單片機(jī)控制系統(tǒng)中去。


上一頁 1 2 下一頁

評論


相關(guān)推薦

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

關(guān)閉