① MCS―51單片機的堆棧區只可設置在__,堆棧寄存器5P是__位寄存器
樓上所說:「...低128位元組」,是錯誤的說法,高128位元組也是可以當做堆棧使用的。
正確答案是:
MCS―51單片機的堆棧區只可設置在__片內RAM__,堆棧寄存器SP是__8__位寄存器。
② AT89S51單片機的堆棧區應建立在哪
AT89S51單片機的堆棧區應建立在內部RAM的較高的地址區域內。
而AT89S51內部RAM區,用戶可用的最大地址是7FH。在一般情況下,堆棧區留出16個單元就足夠用了。 所以,設置SP的初始值為6FH即可,就從70H開始使用了。
不過,通常是用匯編寫程序可以設置SP初始值,而用C語言寫程序一般是不用考慮的。
對於AT89S51,內部RAM的80H以上的地址是SFR的地址,是不能作堆棧區的。
要是AT89S52,內部RAM最大地址是FFH,那80H的地址區是可以用間址定址的,才可以作椎棧區的。
③ 51單片機的堆棧區在那裡低128還是高128位元組單元
定址區
30H~7FH:一般數據區,堆棧區
寄存器組就是R0-R7,一共是8*4是32位元組
位定址就是對每一位定址,一個位元組可以有8位,位地址可以從0-7F,一共是16個位元組
30-7FH有80個位元組單元,可以採用位元組位元組定址的方法訪問
堆棧區及堆棧指示區 堆棧是在片內RAM中數據先進後出的一個存儲區域。堆棧指針SP是存放當前堆棧棧頂所對應的存儲單元地址的一個8位寄存器。系統復位後SP為07H,而07H一般是寄存器區,所以,一般可以通過對SP賦值,可以使堆棧區設定在RAM中的某一區域,但堆棧的深度以不超過片內RAM區空間為限
④ 51單片機的堆棧區只可設置在什麼地方
51的棧只可設置在片內RAM的間接定址區,即 idata 區域中。
另外,棧是棧,堆是堆,不要混為一談。
⑤ 8051單片機堆棧設置在什麼地方,如何實現
8051單片機在復位後,堆棧的底部就在07H,壓棧時,將向08H方向增長。
如果需要改變默認值,可以在初始化階段使用如下指令:
MOV SP, #6FH即可將堆棧的底部設置在6FH。
(5)51單片機的堆棧區設置在擴展閱讀:
基本結構:
51 單片機最初是由Intel 公司開發設計的,但後來Intel 公司把51 核的設計方案賣給了幾家大的電子設計生產商,譬如 SST、Philip、Atmel 等大公司。
如是市面上出現了各式各樣的但均以51 為內核的單片機,倒是Intel 公司自己的單片機卻顯得遜色了。這些各大電子生產商推出的單片機都兼容51 指令、並在51 的基礎上擴展一些功能而內部結構是與51 一致的。
一個完整的計算機應該由運算器、控制器、存儲器(ROM 及RAM)、數據匯流排和I/O 介面組成。一般微處理器(如8086)就只包括運算器和控制器兩部分。
和一般微處理器相比,8051 增加了四個8 位I/O 口、一個串列口、4KB ROM、128BRAM、很多工作寄存器及特殊功能寄存器(SFR),所以單片機具有比微處理器更強大的控制功能,單片機是專為進行控制設計的,而常見的微處理器是用於運算功能的。