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