一、什么是單片機復位
單片機(ji)復位(wei)(wei)(wei)是(shi)單片機(ji)上的復位(wei)(wei)(wei)電(dian)路(lu)的復位(wei)(wei)(wei)操作(zuo),作(zuo)用是(shi)使電(dian)路(lu)恢復到起(qi)始狀(zhuang)態(tai),為(wei)確保微機(ji)系統中電(dian)路(lu)穩(wen)定可靠工作(zuo),復位(wei)(wei)(wei)電(dian)路(lu)是(shi)必不可少(shao)的一部分。
簡單來(lai)說,單片機復(fu)(fu)位,就是把數據清零,從頭再來(lai)的(de)意思,一般單片機在運算過程(cheng)中(zhong),由于干擾等(deng)外界原(yuan)因(yin),造成寄存器中(zhong)數據混亂(luan),不(bu)能使其正常繼續執(zhi)行程(cheng)序,或(huo)產生的(de)結(jie)果不(bu)正確(que)時,需要復(fu)(fu)位,以使程(cheng)序重新開始運行。
二、單片機復位方式有幾種
復(fu)位的(de)(de)功(gong)能是將單片(pian)機里的(de)(de)重新(xin)開始(shi),主要(yao)(yao)防止(zhi)程序混亂,也就是跑飛、或者死機等(deng)現象,單片(pian)機的(de)(de)復(fu)位方式主要(yao)(yao)有以(yi)下幾種:
1、上電復位
當電(dian)(dian)(dian)源電(dian)(dian)(dian)壓VCC低(di)于上(shang)電(dian)(dian)(dian)/掉電(dian)(dian)(dian)復(fu)位(wei)電(dian)(dian)(dian)路(lu)的(de)門檻電(dian)(dian)(dian)壓時,所有的(de)邏輯(ji)電(dian)(dian)(dian)路(lu)都會被復(fu)位(wei)。當VCC重新恢復(fu)到(dao)正常電(dian)(dian)(dian)壓時,單(dan)片機(ji)延遲32768個(ge)時鐘后,上(shang)電(dian)(dian)(dian)復(fu)位(wei)/掉電(dian)(dian)(dian)復(fu)位(wei)狀(zhuang)態結束(shu)。
2、看門狗復位
在(zai)工業應(ying)用中,絕大多數(shu)應(ying)用系統(tong)都(dou)會(hui)用到看(kan)門(men)狗(Watch Dog Timer)。在(zai)工業控制/汽車(che)電子/航空航天等(deng)高可靠系統(tong)中,為(wei)了防(fang)止系統(tong)在(zai)異常情(qing)況下(xia)受到干(gan)擾導致MCU長(chang)時間異常工作、程序跑飛(fei),通常是引進(jin)(jin)看(kan)門(men)狗。如果CPU不在(zai)規定(ding)時間內(nei)訪(fang)問(wen)看(kan)門(men)狗,看(kan)門(men)狗就認為(wei)系統(tong)出了問(wen)題,會(hui)強(qiang)制將系統(tong)進(jin)(jin)行(xing)復位,使系統(tong)從頭開(kai)始執行(xing)程序。
3、軟件復位
單片機(ji)(ji)系統在(zai)運行(xing)過(guo)程中,有時難免會(hui)遇到需(xu)要軟件(jian)復(fu)(fu)(fu)位(wei)的(de)(de)(de)情況。有些(xie)古(gu)老的(de)(de)(de)單片機(ji)(ji)在(zai)硬(ying)件(jian)上可能(neng)不支(zhi)持(chi)軟件(jian)復(fu)(fu)(fu)位(wei)功(gong)能(neng),所以(yi)我(wo)們就需(xu)要去模擬軟件(jian)復(fu)(fu)(fu)位(wei)的(de)(de)(de)過(guo)程。比較常(chang)(chang)用的(de)(de)(de)方法是(shi)跳轉到程序的(de)(de)(de)入口地址(zhi),利用匯編LJMP、JMP等跳轉語句跳到程序的(de)(de)(de)初始入口。但是(shi)現(xian)在(zai)常(chang)(chang)用的(de)(de)(de)一些(xie)單片機(ji)(ji)(8051、STM32等)在(zai)硬(ying)件(jian)上都(dou)支(zhi)持(chi)軟件(jian)復(fu)(fu)(fu)位(wei),配置(zhi)專(zhuan)門的(de)(de)(de)寄存器(qi)就可以(yi)實現(xian)復(fu)(fu)(fu)位(wei)功(gong)能(neng)。例如常(chang)(chang)用的(de)(de)(de)8051單片機(ji)(ji),有專(zhuan)門的(de)(de)(de)ISP_CONTER寄存器(qi)來(lai)支(zhi)持(chi)復(fu)(fu)(fu)位(wei)。
4、按鍵復位
如果系統(tong)內部(bu)不能正常復(fu)位或者(zhe)軟件復(fu)位無效的(de)時候(hou),可以(yi)依靠(kao)外部(bu)的(de)按鍵進行復(fu)位。
三、單片機復位原理是什么
無論使用上面的哪種復位方式,其本質都是在操作RST復位引腳。8051單片機的RST引腳只需要(yao)保持(chi)2個(ge)機(ji)器(qi)周(zhou)期的高電(dian)(dian)(dian)平(ping)即可產(chan)生復位。利用(yong)電(dian)(dian)(dian)容(rong)電(dian)(dian)(dian)壓(ya)(ya)不可突變的性質,適當選取電(dian)(dian)(dian)容(rong)充(chong)(chong)放(fang)電(dian)(dian)(dian)的參數(電(dian)(dian)(dian)容(rong)值、電(dian)(dian)(dian)阻值)即可達到要(yao)求(qiu)。剛開始(shi)上電(dian)(dian)(dian)時,由于電(dian)(dian)(dian)容(rong)電(dian)(dian)(dian)壓(ya)(ya)(0V)不能突變,所(suo)以電(dian)(dian)(dian)容(rong)兩(liang)端(duan)電(dian)(dian)(dian)壓(ya)(ya)為0V,RST此時的電(dian)(dian)(dian)壓(ya)(ya)為VCC。電(dian)(dian)(dian)容(rong)慢慢充(chong)(chong)電(dian)(dian)(dian),充(chong)(chong)電(dian)(dian)(dian)結束后,電(dian)(dian)(dian)容(rong)兩(liang)端(duan)的電(dian)(dian)(dian)壓(ya)(ya)為VCC,所(suo)以此時RST的電(dian)(dian)(dian)勢為0V。電(dian)(dian)(dian)容(rong)的這(zhe)一段充(chong)(chong)電(dian)(dian)(dian)時間要(yao)大于單(dan)片機(ji)的2個(ge)機(ji)器(qi)周(zhou)期。
軟(ruan)件復位和看門狗復位方式的(de)原理都是使RST的(de)高(gao)電(dian)平持續時間能夠維(wei)持2個機器周期。