❶ 51系列單片機的堆棧與通用微機中的堆棧有何
stackpointer:堆棧指針在51系列單片機里,堆棧指針sp在片內RAM128B中開辟棧區,並隨時跟蹤棧頂地址。它是按"先進後出"的原則存取數據。開機復位後,單片機棧底地址為07H。主要用來保存臨時數據,局部變數和中斷/調用子程序程序的返回地址。堆棧指針總是指向棧頂元素。在51系列單片機中,堆棧是向上生長的,所以數據入棧的時候,堆棧指針先加1,再壓棧。出棧的時候先彈出數據,堆棧指針再減1。但在AVR單片機中,堆棧是向下生長的,數據入棧時指針將減1,數據出棧時指針將加1。參見網路:/view/2081454.htm
❷ MCS51系列單片機是怎麼堆棧的
51單片機的可用內存只有00H~7FH,堆棧指針設置在60H,則堆棧的大小就是60H~7FH。這算是有規定大小的。
51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8031單片機,後來隨著Flash rom技術的發展,8031單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是52系列的單片機一般不具備自編程能力。
❸ 什麼是堆棧MCS-51單片機的堆棧怎樣設置的
堆棧其實就是一塊存儲器區域,51單片機中可以用寄存器SP來設置棧頂地址,壓棧操作,地址是往上加的,出棧則地址往下減。遵循後進先出原則。
❹ 8051單片機堆棧
51單片機的堆棧是向上生長的,就是堆棧不為空時,棧底地址小於棧頂地址,當將數據入棧時,棧頂地址增加。還有一個技巧是,堆棧是數據存儲器的一部分,也就是說堆棧除了利用push和pop訪問,也可以通過普通的選址方法訪問,例如mov。有時我們想訪問堆棧數據,但不想改動變動棧頂,這時可以通過mov來訪問數據。還有一個書上很少提到的知識點是出棧之後,原來那個棧頂的內容並不會清零,所以我們依然可以像對待普通數據存儲器一樣訪問。
❺ 單片機的堆棧是怎樣工作的
單片機中的堆棧是1個連續的存儲區,採取後入先出的方式存取數據。1般PUSH操作是向堆棧中存入數據,POP操作從堆棧取得數據。PUSH的操作順序和POP的操作順序正好相反,例如有A.B.C.D4個變數的值,依照PUSH
A,PUSH
B,PUSH
C和PUSH
D存入堆棧,則需要用POP
D,
POP
C,
POP
B,POP
A的順序提取。如果ABCD的類型字長1致,則堆棧還可用來交換變數的值,例如PUSH
A,PUSH
B,然後用POP
A,
POP
B來實現A和B兩個變數值的互換。但這樣的操作不是所有單片機都支持。
❻ 什麼是堆棧,51單片機堆棧指針SP的使用舉例
MCS-51單片機匯編語言中,沒有SP這條指令,只有針對SP操作的指令。51單片機中SP是堆棧指針寄存器,存放著當前堆棧地址。堆棧用於存儲子程序調用、中斷程序調用時程序返回的地址,或者用來臨時保存某一寄存器的值。
除了初始化堆棧時直接給SP賦值,SP顯式存在,其它的對SP有影響的指令,對SP的操作都是隱式的,就是說SP並不出現在指令操作數當中。
例如:
MOV SP,#80H ;初始堆棧指針,(SP)=80H
LCALL XXXX;調用XXXX處的子程序,下一條指令PC值壓棧,(SP)=(SP)+2
NOP;子程序返回時,RET指令從堆棧中彈出PC值,所以會返回到這里,(SP)=(SP)-2
PUSH ACC;累加器A的內容壓棧保存,(SP)=(SP)+1
POP B;堆棧內保存的累加器A的內容彈出到B寄存器中,(SP)=(SP)-1
使用PUSH、POP指令使用堆棧,要注意進出棧的匹配,否則將引起不可預期的後果。
另外
如果把30H賦給了SP,稱為設置棧底。以後:
PUSH ACC ,就把ACC的內容存放到31H單元;
PUSH PSW ,就把PSW的內容存放到32H單元;
PUSH B ,就把B的內容存放到33H單元。
……
彈出時,要用POP指令。
利用堆棧,就不用管具體的內容存放在什麼單元了,SP會自動管理。
❼ 8051單片機堆棧設置在什麼地方,如何實現
8051單片機在復位後,堆棧的底部就在07H,壓棧時,將向08H方向增長。
如果需要改變默認值,可以在初始化階段使用如下指令:
MOV SP, #6FH即可將堆棧的底部設置在6FH。
(7)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),所以單片機具有比微處理器更強大的控制功能,單片機是專為進行控制設計的,而常見的微處理器是用於運算功能的。