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