① 51單片機問題: SP=60 A=90 push A 執行這條語句後,(SP)= (
(SP)=61因51單片機堆堆是向上生長的
(60H)=90答案可能是這樣的,但應該錯誤的,實際上是(61H)=90因51單片機壓棧是先上移指針,後壓入數據60H單元並沒有被佔用
A=90這是沒說的,入棧並沒有改變A的值
並且不知是你寫錯了還是出題人寫錯了SP=60 不是16進制 (60H)又變成
16進制
② MCS-51系列單片機系統中,當(SP)=60H時,執行「PUSH 50H」指令後,SP的值為多
MCS-51系列單片機系統中,當(SP)=60H時,執行「PUSH 50H」指令後,SP的值為61H
③ 51單片機中堆棧操作PUSH和POP的操作數不是不只能用直接定址方式
PUSH
A
錯,如果是PUSH
ACC就對了
PUSH
B
對
PUSH
PSW
對
PUSH
R0
錯
51單片機中,所有SFR寄存器可以用名稱入棧,通用寄存器只能用直接定址
④ 簡述51單片機堆棧進棧和出棧操作規則
1.堆棧用於響應中斷或調用子程序時保護斷點地址,也可通過棧操作指令(push
和pop保護和恢復現場)其中入棧時先SP+1再將內容壓入當前SP所指示的堆棧單元
中,出棧則先將SP所指示的內部ram單元中內容送入直接地址定址的單元中,再將
SP減1.
2.中斷允許寄存器的功能是控制CPU對中斷的開放和屏蔽以及每個中斷源是否允許
中斷結構包括EA(CPU中斷總允許位),ES(串列口中斷允許位)ET1(定時器1中
斷允許位)EX1(外部中斷1中斷允許位)ET0(定時器0中斷允許位)EX0(外部中
斷0中斷允許位)
3.T機=12/fosc=12/(6*E6)=2us
X=2*E13-T/T機=8192-200/2=8092=1F9CH=1111
1100
1110
0B
因為TL1的高3位未用,
修正後X=1111
1100
0001
1100B=FC1CH
4.LJMP為長轉移指令,可轉向64KB程序存儲器的任一單元;SJMP為相對轉移指令
,偏移范圍-128~+127共259位元組;AJMP為絕對轉移指令,轉移目的在指令後一個
存儲單位所在2K區間內。
5.按鍵抖動:在觸點抖動期間檢測按鍵的通與斷狀態,可能導致判斷出錯,即按
鍵一次按下或釋放被錯誤認為是多次操作。
6.汽車的溫控系統,測控系統,防盜報警等多項系統中應用單片機。汽車電子中
涉及A/D和D/A轉換的模塊基本都會有單片機的存在。以下以汽車倒車雷達為例,
雷達控制部分由89C51單片機構成,前端數據採集由超聲波測距,系統由發射和接
收裝置來獲取數據,根據所測得的距離來判斷是否調用聲音報警程序,距離小於
預置點時,調用報警模塊。
⑤ 單片機中PUSH 2 PUSH 1 是什麼意思
表示兩條壓棧指令,為:
PUSH 02H 及PUSH 01H的簡寫形式。
其中的02H、01H,都是片內RAM的地址號碼,工作寄存器區0的R2、R1的地址。
這兩條指令是將R1和R2的內容壓棧,進行保護
⑥ 51單片機匯編中PUSH POP中我要壓入R3中的內容 咋辦
要看你使用哪個工作組寄存器,上電默認0組,假如你使用下面的
00H—07H 0組 PUSH 03H pop 03H 將R3中的內容壓棧 再還原
08H—0fH 1組 PUSH 0bH pop 0bH
10H—07H 2組 PUSH 13H pop 13H
18H—1fH 3組 PUSH 1bH pop 1bH
push pop 只能使用直接定址的方式
⑦ 51單片機中斷是否自動PUSH拜託各位大神
不會,它只會自動把SP保存,PUSH進去,但DPTR A B等是不會的,因為中斷不知道會在什麼時候來臨,所以這三個寄存器也要PUSH
滿意請採納
⑧ 51單片機中堆棧操作PUSH和POP的操作數不是不只能用直接定址方式
PUSH A 錯,如果是PUSH ACC就對了
PUSH B 對
PUSH PSW 對
PUSH R0 錯
51單片機中,所有SFR寄存器可以用名稱入棧,通用寄存器只能用直接定址
⑨ 簡述51單片機堆棧進棧和出棧操作規則
1.堆棧用於響應中斷或調用子程序時保護斷點地址,也可通過棧操作指令(push
和pop保護和恢復現場)其中入棧時先SP+1再將內容壓入當前SP所指示的堆棧單元
中,出棧則先將SP所指示的內部ram單元中內容送入直接地址定址的單元中,再將
SP減1.
2.中斷允許寄存器的功能是控制CPU對中斷的開放和屏蔽以及每個中斷源是否允許
中斷結構包括EA(CPU中斷總允許位),ES(串列口中斷允許位)ET1(定時器1中
斷允許位)EX1(外部中斷1中斷允許位)ET0(定時器0中斷允許位)EX0(外部中
斷0中斷允許位)
3.T機=12/fosc=12/(6*E6)=2us
X=2*E13-T/T機=8192-200/2=8092=1F9CH=1111 1100 1110 0B
因為TL1的高3位未用, 修正後X=1111 1100 0001 1100B=FC1CH
4.LJMP為長轉移指令,可轉向64KB程序存儲器的任一單元;SJMP為相對轉移指令
,偏移范圍-128~+127共259位元組;AJMP為絕對轉移指令,轉移目的在指令後一個
⑩ MCS-51單片機中的PUSH POP指令。
經過壓棧PUSH的操作:
MCS-51單片機中堆棧的地址是越來越大;
80x86的堆棧的地址是越來越小。
指向棧底,還是棧底地址減一?
--按照51、或者86的不同規律,推算即可。