復(fù)位的主要作用是把特殊功能寄存器的數(shù)據(jù)刷新為默認(rèn)數(shù)據(jù),單片機(jī)在運(yùn)算過程中由于干擾等外界原因造成寄存器中數(shù)據(jù)混亂不能使其正常繼續(xù)執(zhí)行程序(稱死機(jī))或產(chǎn)生的結(jié)果不正確時(shí)均需要復(fù)位,以使程序重新開始運(yùn)行。現(xiàn)在好多單片機(jī)內(nèi)部集成有上電復(fù)位電路,這種單片機(jī)不需要外接上電復(fù)位電路。如果是普通不帶內(nèi)部上電復(fù)位電路的單片機(jī),沒有上電復(fù)位電路,一般不會(huì)正常工作!單片機(jī)復(fù)位電路相對比較簡單,一般來說運(yùn)用最多的就是上電復(fù)位。所謂上電復(fù)位是指在單片機(jī)通電的瞬間,因各部分電路電壓未正常建立,這時(shí)單片機(jī)會(huì)出現(xiàn)運(yùn)行錯(cuò)誤,因此在上電時(shí)應(yīng)使單片機(jī)復(fù)位,復(fù)位時(shí)間要求大于上電時(shí)間。以單片機(jī)AT89C51為例,其復(fù)位電路如下圖所示,在RST端上接一個(gè)電容至VCC端,下接一個(gè)電阻至地。當(dāng)VCC端通電時(shí),復(fù)位電路通過電容給RST端加一個(gè)高電平,此高電平信號(hào)隨VCC對電容的充電而逐漸降低,因此要保證電容的充電時(shí)間足夠長來完成復(fù)位功能。 51單片機(jī)要復(fù)位只需要在第9引腳接個(gè)高電平持續(xù)2us就可以實(shí)現(xiàn),那這個(gè)過程是如何實(shí)現(xiàn)的呢?在單片機(jī)系統(tǒng)中,系統(tǒng)上電啟動(dòng)的時(shí)候復(fù)位一次,當(dāng)按鍵按下的時(shí)候系統(tǒng)再次復(fù)位,如果釋放后再按下,系統(tǒng)還會(huì)復(fù)位。所以可以通過按鍵的斷開和閉合在運(yùn)行的系統(tǒng)中控制其復(fù)位。 開機(jī)的時(shí)候?yàn)槭裁礊閺?fù)位 在電路圖中,電容的的大小是10uf,電阻的大小是10k。所以根據(jù)公式,可以算出電容充電到電源電壓的0.7倍(單片機(jī)的電源是5V,所以充電到0.7倍即為3.5V),需要的時(shí)間是10K*10UF=0.1S。也就是說在電腦啟動(dòng)的0.1S內(nèi),電容兩端的電壓時(shí)在0~3.5V增加。這個(gè)時(shí)候10K電阻兩端的電壓為從5~1.5V減少(串聯(lián)電路各處電壓之和為總電壓)。所以在0.1S內(nèi),RST引腳所接收到的電壓是5V~1.5V。在5V正常工作的51單片機(jī)中小于1.5V的電壓信號(hào)為低電平信號(hào),而大于1.5V的電壓信號(hào)為高電平信號(hào)。所以在開機(jī)0.1S內(nèi),單片機(jī)系統(tǒng)自動(dòng)復(fù)位(RST引腳接收到的高電平信號(hào)時(shí)間為0.1S左右)。 按鍵按下的時(shí)候?yàn)槭裁磿?huì)復(fù)位 在單片機(jī)啟動(dòng)0.1S后,電容C兩端的電壓持續(xù)充電為5V,這是時(shí)候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時(shí)候,開關(guān)導(dǎo)通,這個(gè)時(shí)候電容兩端形成了一個(gè)回路,電容被短路,所以在按鍵按下的這個(gè)過程中,電容開始釋放之前充的電量。隨著時(shí)間的推移,電容的電壓在0.1S內(nèi),從5V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個(gè)時(shí)候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平。單片機(jī)系統(tǒng)自動(dòng)復(fù)位。 總結(jié): 1、復(fù)位電路的原理是單片機(jī)RST引腳接收到2US以上的電平信號(hào),只要保證電容的充放電時(shí)間大于2US,即可實(shí)現(xiàn)復(fù)位,所以電路中的電容值是可以改變的。 2、按鍵按下系統(tǒng)復(fù)位,是電容處于一個(gè)短路電路中,釋放了所有的電能,電阻兩端的電壓增加引起的。
150036edsrddr3ol446dhz.jpg (13.68 KB, 下載次數(shù): 89)
下載附件
2017-8-16 16:06 上傳
|