PIC16C5X內(nèi)藏有上電復(fù)位電路(POR)。在芯片上有一復(fù)位端MCLR,對(duì)于一般的應(yīng)用,只要把MCLR端接在高電位(VDD)即可,因?yàn)閮?nèi)部復(fù)位電路會(huì)在芯片上電時(shí)自動(dòng)復(fù)位,無需在MCLR端再加上電復(fù)位電路。對(duì)于某些特殊應(yīng)用,則需在MCLR端加上外部上電復(fù)位電路,在§1.10.5我們會(huì)談及這個(gè)問題。 §1.10.1 復(fù)位的條件和原因 復(fù)位可由下面事件引發(fā)產(chǎn)生: a、芯片上電; b、把芯片MCLR端置低電平; c、看門狗(WDT)超時(shí)溢出。
§1.10.2 復(fù)位時(shí)的PIC狀態(tài) 在芯片復(fù)位期間,芯片狀態(tài)為: a、振蕩器處于起振準(zhǔn)備狀態(tài); b、所有I/O口都被置成高阻態(tài)(即輸入態(tài)); c、PC值被置為全"1"; d、OPTION被置為全"1"; e、WDT和預(yù)分頻器被清零; f、狀態(tài)寄存器(F3)的程序頁面位(高三位)被清零。 §1.10.3 振蕩起振計(jì)時(shí)器(OST) 對(duì)于晶體/陶瓷振蕩電路,上電后它們還需要一定的時(shí)間來起振或產(chǎn)生穩(wěn)定的振蕩信號(hào),有鑒于此,PIC在其內(nèi)部專門設(shè)置了一個(gè)"振蕩起振計(jì)時(shí)器"OST(Oscillator Start-up Timer)。OST在MCLR端達(dá)到高電平后才開始啟動(dòng)計(jì)時(shí)18ms,使RESET狀態(tài)保持18ms以便讓振蕩電路起振及穩(wěn)定下來。在一般情況下,我們都將MCLR端直接在VDD(+5V)上即可。這樣上電后一旦MCLR端電平升高到一定程序后OST即開始計(jì)數(shù)18ms,這段時(shí)間已足夠讓振蕩起振,OST計(jì)滿18ms后,芯片結(jié)束RESET狀態(tài),開始進(jìn)入程序運(yùn)行。 當(dāng)WDT計(jì)時(shí)溢出后,OST也是馬上啟動(dòng)計(jì)時(shí)18ms,保持18ms的RESET狀態(tài),然后再進(jìn)行程序運(yùn)行。 §1.10.4 內(nèi)部上電復(fù)位路(POR) PIC16C5X片內(nèi)上電復(fù)位電路POR(Power On Reset)能使PIC芯片上電后自動(dòng)會(huì)產(chǎn)生復(fù)位,所以一般不需要再在MCLR端加外部復(fù)位電路,只要將其接在VDD上即可。圖1.16是POR的簡(jiǎn)圖。 從圖中我們可以看到,當(dāng)上電(Power On)、或MCLR端變低,都會(huì)置位(set)"復(fù)位鎖存器",使其輸出復(fù)位電平讓芯片處于RESET狀態(tài),這時(shí)OST也處于復(fù)位狀態(tài)。當(dāng)OST檢測(cè)到MCLR變?yōu)楦唠娖胶蠹撮_始計(jì)時(shí)18ms,計(jì)滿18ms后會(huì)復(fù)位(Reset)"復(fù)位鎖存器"使其Q端輸出高電平,從而使芯片結(jié)束復(fù)位狀態(tài),進(jìn)入運(yùn)行。  圖1.16 內(nèi)部上電復(fù)位路簡(jiǎn)圖 §1.10.5 外部復(fù)位電路 在某些應(yīng)用情況下我們也可能需要外部復(fù)位電路。 一、手動(dòng)復(fù)位開關(guān) 當(dāng)你在應(yīng)用中需要一個(gè)手動(dòng)復(fù)位開關(guān)時(shí),可以使用下面的電路。如圖1.17。 二、低頻振蕩電路 當(dāng)使用低頻振蕩(LP)時(shí),OST的18ms不足以使其建立穩(wěn)定的振蕩,所以也許你需要更長(zhǎng)的RESET 時(shí)間,這時(shí)可以用外部上電復(fù)位電路來延長(zhǎng)復(fù)位時(shí)間。如圖1.18。
圖1.17 按健復(fù)位電路
 圖1.18 外部上電復(fù)位電路 |