❶ 8051單片機堆棧
51單片機的堆棧是向上生長的,就是堆棧不為空時,棧底地址小於棧頂地址,當將數據入棧時,棧頂地址增加。還有一個技巧是,堆棧是數據存儲器的一部分,也就是說堆棧除了利用push和pop訪問,也可以通過普通的選址方法訪問,例如mov。有時我們想訪問堆棧數據,但不想改動變動棧頂,這時可以通過mov來訪問數據。還有一個書上很少提到的知識點是出棧之後,原來那個棧頂的內容並不會清零,所以我們依然可以像對待普通數據存儲器一樣訪問。
❷ 8051單片機堆棧設置在什麼地方,如何實現
8051單片機在復位後,堆棧的底部就在07H,壓棧時,將向08H方向增長。
如果需要改變默認值,可以在初始化階段使用如下指令:
MOV SP, #6FH即可將堆棧的底部設置在6FH。
(2)單片機的棧底怎麼定義的擴展閱讀:
基本結構:
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),所以單片機具有比微處理器更強大的控制功能,單片機是專為進行控制設計的,而常見的微處理器是用於運算功能的。
❸ 什麼叫堆棧8051堆棧指示器SP有多少位,作用是什麼單片機初始化話後SP中的內容是什麼
堆棧是連續的內存單元,存取方式遵循「先進後出」的原則。
其作用一般是保存寄存器或標志寄存器的內容。
堆棧就是這樣一種數據結構。它是在內存中開辟一個存儲區域,數據一個一個順序地存入(也就是「壓入——push」)這個區域之中。有一個地址指針總指向最後一個壓入堆棧的數據所在的數據單元,存放這個地址指針的寄存器就叫做堆棧指示器。開始放入數據的單元叫做「棧底」。數據一個一個地存入,這個過程叫做「壓棧」。在壓棧的過程中,每有一個數據壓入堆棧,就放在和前一個單元相連的後面一個單元中,堆棧指示器中的地址自動加1。讀取這些數據時,按照堆棧指示器中的地址讀取數據,堆棧指示器中的地址數自動減
1。這個過程叫做「彈出pop」。如此就實現了後進先出的原則。
sp是一個8位專用寄存器,它批示出堆棧頂部在內部ram塊中的位置。系統復位後,sp初始化為07h,實際上堆棧是由08h單元開始的。考慮08h~1fh單元分別屬於工作寄存器區1~3,若在程序設計中用到這些區,則最好把sp值改值為1fh或更大的值。
sp是一個8位專用寄存器,它批示出堆棧頂部在內部ram塊中的位置。系統復位後,sp初始化為07h,實際上堆棧是由08h單元開始的。考慮08h~1fh單元分別屬於工作寄存器區1~3,若在程序設計中用到這些區,則最好把sp值改值為1fh或更大的值。
mcs-51的堆棧是向上生成的,若sp=60h,cpu執行一和調用指令或者響應中斷後,pc進棧,pcl保護到61h,pch保護到62h,sp=62h。