51單片機的復位
復位是單片機的初始化操作。單片機啟運運行時,都需要先復位,其作用是使CPU和系統(tǒng)中其他部件處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。因而,復位是一個很重要的操作方式。但單片機本身是不能自動進行復位的,必須配合相應的外部電路才能實現(xiàn)。
復位電路:
當MCS-5l系列單片機的復位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài)。
根據(jù)應用的要求,復位操作通常有兩種基本形式:上電復位和上電或開關(guān)復位。
上電復位要求接通電源后,自動實現(xiàn)復位操作。常用的上電復位電路如下圖A中左圖所示。圖中電容C1和電阻R1對電源十5V來說構(gòu)成微分電路。上電后,保持RST一段高電平時間,由于單片機內(nèi)的等效電阻的作用,不用圖中電阻R1,也能達到上電復位的操作功能,如下圖(A)中右圖所示。
上電或開關(guān)復位要求電源接通后,單片機自動復位,并且在單片機運行期間,用開關(guān)操作也能使單片機復位。常用的上電或開關(guān)復位電路如上圖(B)所示。上電后,由于電容C3的充電和反相門的作用,使RST持續(xù)一段時間的高電平。當單片機已在運行當中時,按下復位鍵K后松開,也能使RST為一段時間的高電平,從而實現(xiàn)上電或開關(guān)復位的操作。
根據(jù)實際操作的經(jīng)驗,下面給出這兩種復位電路的電容、電阻參考值。
上圖(A)中:Cl=10-30uF,R1=1kO
上圖1.27(B)中:C:=1uF,Rl=lkO,R2=10kO
單片機復位后的狀態(tài):
單片機的復位操作使單片機進入初始化狀態(tài),其中包括使程序計數(shù)器PC=0000H,這表明程序從0000H地址單元開始執(zhí)行。單片機冷啟動后,片內(nèi)RAM為隨機值,運行中的復位操作不改變片內(nèi)RAM區(qū)中的內(nèi)容,21個特殊功能寄存器復位后的狀態(tài)為確定值,見下表。
值得指出的是,記住一些特殊功能寄存器復位后的主要狀態(tài),對于了解單片機的初態(tài),減少應用程序中的初始化部分是十分必要的。
說明:表中符號*為隨機狀態(tài);
A=00H,表明累加器已被清零;
特殊功能寄存器 | 初始狀態(tài) | 特殊功能寄存器 | 初始狀態(tài) |
A | 00H | TMOD | 00H |
B | 00H | TCON | 00H |
PSW | 00H | TH0 | 00H |
SP | 07H | TL0 | 00H |
DPL | 00H | TH1 | 00H |
DPH | 00H | TL1 | 00H |
P0~P3 | FFH | SBUF | 不定 |
IP | ***00000B | SCON | 00H |
IE | 0**00000B | PCON | 0*******B |
PSW=00H,表明選寄存器0組為工作寄存器組;
SP=07H,表明堆棧指針指向片內(nèi)RAM 07H字節(jié)單元,根據(jù)堆棧操作的先加后壓法則,第一個被壓入的內(nèi)容寫入到08H單元中;
Po-P3=FFH,表明已向各端口線寫入1,此時,各端口既可用于輸入又可用于輸出;
IP=×××00000B,表明各個中斷源處于低優(yōu)先級;
IE=0××00000B,表明各個中斷均被關(guān)斷;
系統(tǒng)復位是任何微機系統(tǒng)執(zhí)行的第一步,使整個控制芯片回到默認的硬件狀態(tài)下。51單片機的復位是由RESET引腳來控制的,此引腳與高電平相接超過24個振蕩周期后,51單片機即進入芯片內(nèi)部復位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉(zhuǎn)為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會執(zhí)行外部程序。
51單片機在系統(tǒng)復位時,將其內(nèi)部的一些重要寄存器設置為特定的值,至于內(nèi)部RAM內(nèi)部的數(shù)據(jù)則不變。
編輯:admin 最后修改時間:2018-05-19