當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 單片機(jī)復(fù)位電路
有時(shí)候我們的代碼會(huì)跑飛,這個(gè)時(shí)候基本上是一切推到重來(lái).”推倒重來(lái)”在計(jì)算機(jī)術(shù)語(yǔ)上稱為復(fù)位.復(fù)位需要硬件的支持,復(fù)位電路就是在單片機(jī)的復(fù)位管腳上產(chǎn)生一個(gè)信號(hào),俗稱復(fù)位信號(hào).這個(gè)信號(hào)需要持續(xù)一定的時(shí)間,單片機(jī)收到該信號(hào)之后就會(huì)復(fù)位,從頭執(zhí)行。
復(fù)位原理:
那么復(fù)位的原理是什么, 其實(shí)很簡(jiǎn)單,復(fù)位的工作其實(shí)是把寄存器的數(shù)值加載為默認(rèn)值,,即恢復(fù)到開(kāi)機(jī)的狀態(tài).由于單片機(jī)在運(yùn)算過(guò)程中受外界干擾造成寄存器中數(shù)據(jù)混亂不能使其正常繼續(xù)執(zhí)行程序(稱死機(jī))或單片機(jī)的指令不按照程序執(zhí)行而指向了未知位置(俗稱跑飛),這時(shí)候就需要單片機(jī)復(fù)位一下,以使程序重新開(kāi)始運(yùn)行.
復(fù)位電路的設(shè)計(jì):
復(fù)位電路的原理是單片機(jī)RST引腳接收到2US以上的電平信號(hào),只要保證電容的充放電時(shí)間大于2US,即可實(shí)現(xiàn)復(fù)位,所以電路中的電容值是可以改變的。如何實(shí)現(xiàn)呢,下面是幾種常見(jiàn)的復(fù)位電路:
第一種,復(fù)位電路
上電瞬間,由于電容兩端的電壓不能發(fā)生突變,所以電容兩端的電位都是VCC(此時(shí)充電電流最大,電容相當(dāng)于短路),即RST是高電平,而隨著VCC通過(guò)RC電路對(duì)電容充電,當(dāng)電容兩端的電壓達(dá)到VCC時(shí),電容相當(dāng)于斷路(此時(shí)電容充電電流為0,即隔直流),RST的電平為低電平,單片機(jī)正常工作。
第二種復(fù)位電路:
上電瞬間,由于電容兩端的電壓不能發(fā)生突變,所以電容兩端的電位都是GND,即RST是低電平,而隨著VCC通過(guò)RC電路對(duì)電容充電,當(dāng)電容兩端的電壓達(dá)到VCC時(shí),RST的電平為高電平,單片機(jī)正常工作。
手動(dòng)復(fù)位電路:
手動(dòng)平復(fù)位電路
該電路同時(shí)也是一個(gè)上電高電平復(fù)位電路。單片機(jī)正常工作時(shí),如果按下按鍵S1,復(fù)位引腳RST得到高電平,從而實(shí)現(xiàn)復(fù)位。