導航:首頁 > 操作系統 > 單片機復位後堆棧指針值不變

單片機復位後堆棧指針值不變

發布時間:2023-01-26 20:42:20

㈠ 51系列單片機上電復位後堆棧指針sp的初始值為多少最大容量是多少

答:51系列單片機上電復位後堆棧指針SP的初始值為07H,即SP=07H。堆棧區最大容量是120位元組,即08H~7FH全為堆棧區。可事實上沒有這么用的,也不可能用這么多,內部RAM主要用於存放程序運行中的變數。

㈡ 單片機復位 堆棧區

單片機復位後進入初始化狀態。初始化後,程序計數器PC=0000H,。單片機啟動後,片內RAM為隨機值,運行中的復位操作不改變RAM的內容。但特殊功能寄存器復位後的狀態時確定的,也就是說與運行中的可能不同,但由於程序的運行,其內容最終還是要恢復到程序運行時的狀態。

㈢ 單片機復位後各特殊功能寄存器的初始化狀態是什麼

首先單片機復位也分別幾種:掉電再通電,按復位按鈕,程序復位,通過外部介面復位。
各晶元的復位電路大同小異,這里以51系列單片機為例,上電後,保持RST一段高電平時間,就能達到上電復位的操作目的。
常見的復位電路如下:
1.掉電再通電,這里就視為冷啟動吧
這種情況下單片機的復位操作使單片機進入初始化狀態,其中包括使程序計數器PC=0000H,這表明程序從0000H地址單元開始執行。單片機冷啟動後,片內RAM為隨機值,特殊功能寄存器復位後的狀態為確定值,具體可參考相應單片機的說明書。
2.按復位按鈕
這種情況下單片機的復位操作也會使程序計數器PC=0000H,程序重新從
0000H
地址執行,但是與第1種情況不同的是,片內RAM為復位前的狀態值,也就是說,運行中的復位操作不改變片內RAM區中的內容。而特殊功能寄存器復位後的狀態為確定值,具體可參考相應單片機的說明書。
51單片機復位後特殊功能寄存器的初始值
特殊功能寄存器
初始值
特殊功能寄存器
初始值
ACC
00H
TCON
00H
B
00H
TMOD
00H
PSW
00H
TL0
00H
SP
07H
TH0
00H
DPTR
0000H
TL1
00H
P0~P3
FFH
TH1
00H
PCON
0XXX
0000B
T2CON
00H
AUXR
XXX0
0XX0B
T2MOD
XXXX
XX00B
AUXR1
XXXX
XXX0B
RCAP2L
00H
IE
0X00
0000B
RCAP2H
00H
IP
XX00
0000B
TL2
00H
SCON
00H
TH2
00H
SBUF
XXXX
XXXXXB
WDTRST
XXXX
XXXXB
表中部分符號的含義如下:
PSW=00H:表明復位後自動選擇第0組工作寄存器組為當前工作寄存器組
SP=07H:表明堆棧指針指向片內RAM07H單元,堆棧的壓入操作為先加後壓,所以第一個被壓入的數據存放在08H單元中
P0~P3=FFH:表明各埠寫入1,此時各埠既可作輸入口,也可以作輸出口
AUXR=XXX0
0XX0:表明ALE引腳在CPU不訪問外部存儲器期間有脈沖信號輸出
AUXR1=XXXX
XXX0:表明選擇DPTR0作數據指針
IE=00H:表明各中斷均關閉
TCON=00H:表明T0,T1
均被停止
SCON=00H:表明串口處於方式0,允許發送,不允許接收
PCON=00H:表明SMOD=0,波特率不加倍。PD=0,IDL=0,單片機處於正常工作方式。
3.程序復位
這種情況下單片機的復位操作由程序內部控制,功能要視乎程序的編寫。例如我們可以操作使程序計數器PC=0000H,同時
添加RAM初始化程序,清0或置1,同時設置某些特殊寄存器的值,或者其他操作,總之這是一種軟體操控的復位,功能可靈活控制。
4.外部介面復位待研究。
P.S.
1.什麼是冷啟動?熱啟動呢?
冷啟動就是在不加電的情況下啟動系統,熱啟動就是在加電的情況下重啟系統!
例子:
冷啟動是之直接按下電源開關啟動計算機。
熱啟動是之在已開機的狀態下在開始菜單中選擇重新啟動計算機,這叫做熱啟動。

㈣ 為什麼mcs51單片機復位後,sp的初值是07H而不是81H

sp這個寄存器裡面存的是07H。
RAM初始化前七個被用作為R1-R7
堆棧指針只能在07H上。
07H也是地址。

你說的81H是特殊寄存器sp的地址。
也就是說地址81H裡面的值是07H。

特別要注意的是片內RAM高128位元組區和特殊寄存器SFR的
地址是相同的。間接定址存取片內ram數據。直接定址存取SFR。

概括就是,這兩塊地址獨立的,你說的兩個數都是不同塊的地址。

㈤ 單片機復位後,堆棧指針sp的值如果不對其修改會有什麼情況

對於51單片機復位後,堆棧指針sp的值為07H,如果不對其修改,會有情況,這要寫程序時是怎樣使用工作寄存器的。當程序中有調用子程序的指令,或有中斷服務程序時,要有堆棧操作,就會從08H單元開始使用堆棧區。而從08H單元開始正是1區工作寄存器區,如果程序中用到了1區的寄存器R0~R7,那麼堆棧操後將會破壞了R0~R7的數據。

㈥ 單片機復位後堆棧指針SP的狀態值_____

復位後:SP = 07H

㈦ AT89S52單片機復位後的堆棧指針SP的值是多少此時的棧低和棧頂又是多少

AT89S52單片機復位後的堆棧指針SP的值是07H,此時的棧底是08H,棧頂是FFH,因為AT89S52的內部RAM是256位元組,最大地址是FFH。

㈧ 單片機上電復位之後,片內的RAM中的值發生改變么

冷啟動上電復位片內程序指針,數據存儲器指針,堆棧指針指向默認值,其他RAM 內數據為隨機數。熱復位只有片內程序指針,數據存儲器指針,堆棧指針指向默認值,其他RAM 內數據為復位前數據不會改變。

㈨ 是單片機復位有幾種方法 復位後機器初始狀態

使程序計數器PC=0000H,這表明程序從0000H地址單元開始執行。單片機冷啟動後,片內RAM為隨機值,運行中的復位操作不改變片內RAM區中的內容,21個特殊功能寄存器復位後的狀態為確定值

說明:表中符號*為隨機狀態;
A=00H,表明累加器已被清零;
特殊功能寄存器
初始狀態
特殊功能寄存器
初始狀態
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,表明堆棧指針指向片內RAM 07H位元組單元,根據堆棧操作的先加後壓法則,第一個被壓入的內容寫入到08H單元中;
Po-P3=FFH,表明已向各埠線寫入1,此時,各埠既可用於輸入又可用於輸出;
IP=×××00000B,表明各個中斷源處於低優先順序;
IE=0××00000B,表明各個中斷均被關斷;
系統復位是任何微機系統執行的第一步,使整個控制晶元回到默認的硬體狀態下。51單片機的復位是由RESET引腳來控制的,此引腳與高電平相接超過24個振盪周期後,51單片機即進入晶元內部復位狀態,而且一直在此狀態下等待,直到RESET引腳轉為低電平後,才檢查EA引腳是高電平或低電平,若為高電平則執行晶元內部的程序代碼,若為低電平便會執行外部程序。
51單片機在系統復位時,將其內部的一些重要寄存器設置為特定的值,至於內部RAM內部的數據則不變

閱讀全文

與單片機復位後堆棧指針值不變相關的資料

熱點內容
手機文檔解壓之後解壓包去哪兒了 瀏覽:921
java中網路編程重要嗎 瀏覽:683
如何登錄別人的伺服器 瀏覽:626
調度系統軟體python 瀏覽:205
微信大轉盤抽獎源碼 瀏覽:497
壓縮機損壞的表現 瀏覽:862
同步數據伺服器怎麼用 瀏覽:634
163郵箱伺服器的ip地址 瀏覽:50
伺服器跟域是什麼 瀏覽:128
rails啟動命令 瀏覽:465
logistic命令怎麼用 瀏覽:738
c語言點滴pdf 瀏覽:747
linuxrtc編程 瀏覽:258
linux打包並壓縮命令 瀏覽:644
aes加密的證書格式 瀏覽:99
oracledbcalinux 瀏覽:844
酬勤任務app怎麼被特邀 瀏覽:199
android應用文件夾 瀏覽:1002
平面設計法則pdf 瀏覽:339
3d圓角命令怎麼用 瀏覽:569