復(fù)位是使cpu和系統(tǒng)中其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。
1、復(fù)位結(jié)構(gòu)
/180c51復(fù)位結(jié)構(gòu)
80c51復(fù)位結(jié)構(gòu)如圖1所示,此處的復(fù)位引腳只是單純地稱為rst而不是rst/vpd,因?yàn)閏hmos型單片機(jī)的備用電源也是由vcc引腳提供的。
無論是hmos型還是chmos型的單片機(jī),在振蕩器正在運(yùn)行的情況下,復(fù)位是靠在rst/vpd引腳加持續(xù)2個(gè)機(jī)器周期(即24個(gè)振蕩周期)的高電平來實(shí)現(xiàn)的。在rst引腳出現(xiàn)高電平后的第二個(gè)周期執(zhí)行內(nèi)部復(fù)位,以后每個(gè)周期重復(fù)一次,直至rst端變低電平。 2 復(fù)位電路及復(fù)位操作
單片機(jī)的復(fù)位有上電復(fù)位和按鈕手動(dòng)復(fù)位兩種。如圖2(a)所示為上電復(fù)位電路,圖(b)所示為上電按鍵復(fù)位電路。
圖2 80c51復(fù)位電路
上電復(fù)位是利用電容充電來實(shí)現(xiàn)的,即上電瞬間rst端的電位與vcc相同,隨著充電電流的減少,rst的電位逐漸下降。圖2 (a)中的r是施密特觸發(fā)器輸入端的一
個(gè)10kΩ下拉電阻,時(shí)間常數(shù)為10×10-6×10×103=100ms。只要vcc的上升時(shí)間不超過1ms,振蕩器建立時(shí)間不超過10ms,這個(gè)時(shí)間常數(shù)足以保證完成復(fù)位操作。上電復(fù)位所需
的最短時(shí)間是振蕩周期建立時(shí)間加上2個(gè)機(jī)器周期時(shí)間,在這個(gè)時(shí)間內(nèi)rst的電平應(yīng)維持高于施密特觸發(fā)器的下閾值。
上電按鍵復(fù)位2(b)所示。當(dāng)按下復(fù)位按鍵時(shí),rst端產(chǎn)生高電平,使單片機(jī)復(fù)位。 復(fù)位后,其片內(nèi)各寄存器狀態(tài)見表,片內(nèi)ram內(nèi)容不變。
表 復(fù)位后內(nèi)部寄存器狀態(tài)
寄存器
內(nèi)容
寄存器
內(nèi)容
pc
0000h
tcon
00h
acc
ooh
tl0
00h
psw
00h
th0
00h
sp
07h
tl1
00h
dptr
0000h
th1
00h
p0~p3
0ffh
scon
00h
ip
××000000b
sbuf
不定
ie
0×000000b
pcon
0×××0000b
tmod
00h
由于單片機(jī)內(nèi)部的各個(gè)功能部件均受特殊功能寄存器控制,程序運(yùn)行直接受程序計(jì)數(shù)器pc指揮。表中各寄存器復(fù)位時(shí)的狀態(tài)決定了單片機(jī)內(nèi)有關(guān)功能部件的初始狀態(tài)。
另外,在復(fù)位有效期間(即高電平),80c51單片機(jī)的ale引腳和 引腳均為高電平,且內(nèi)部ram不受復(fù)位的影響。