導航:首頁 > 程序命令 > 單片機中絕對定址命令

單片機中絕對定址命令

發布時間:2022-06-05 15:04:11

單片機的幾種定址方式

51單片機有7種定址方式:
1、立即數定址
2、直接定址
3、寄存器定址
4、寄存器間接定址
5、變址定址
6、位定址
7、相對定址

㈡ 51單片機的定址方式

親,你好。MCS-51系列單片機定址方式共有七種:寄存器定址、直接定址、立即數定址、寄存器間接定址、變址定址、相對定址、位定址。 寄存器定址是指操作數存放在某一寄存器中,指令中給出寄存器名,就能得到操作數。 寄存器可以使用寄存器組R0~R7中某一個或其它寄存器 (A,B,DPTR等)。 在指令中直接給出操作數所在的存儲單元的地址,稱為直接定址方式。 在8051中,使用直接定址方式可訪問片內RAM的128個單元以及所有的特殊功能寄存器 (SFR),對於特殊功能寄存器,既可以使用他們的地址,也可以使用他們的名字。 MOV A, 90H ; 90H是P1口的地址。 指令操作碼後面緊跟的是一位元組或兩位元組操作數,用 # 號表示,以區別直接地址。 例如: 寄存器中的內容是一個地址,由該地址單元定址到所需的操作數.

㈢ 51系列單片機定址方式的定址方式

立即數定址又稱立即定址,即指令中直接給出操作數的定址方式稱為立即數定址。在51系列單片機指令系統中,立即數用前面加「#」號的8位數表示(#data,如#30H)或16位數(#data16,如#2052H)表示。舉例說明立即數定址方式,以傳送指令為例。
例:MOV A, #80H ;80H——>A
MOV DPTR, #2000H ;2000H——>DPTR 指令中直接給出操作數地址(dir)的定址方式稱為直接定址。定址對象為:1 內部數據存儲器,在指令中以直接地址表示;2特殊功能寄存器SFR,在指令中用寄存器名稱表示。
下面舉例說明。
例:MOV A, 25H ;內部RAM的(25H)——>A
MOV P0, #45H ;45H——>P0 ,P0為直接定址的SFR
MOV 30H,20H ;內部RAM的(20H)——>(30H) 以通用寄存器的內容為操作數的定址方式稱為寄存器定址。通用寄存器包括:A、B、DPTR、R0~R7。其中B寄存器僅在乘法、除法指令中為寄存器定址,在其它指令中為直接定址。A寄存器可以寄存器定址,又可以直接定址(此時寫作ACC)。直接定址和寄存器定址的差別在於,直接定址是操作數所在的位元組地址(佔一個位元組),寄存器定址是寄存器編碼出現在指令碼中。寄存器定址速度比直接定址要快。除上面所指的幾個寄存器外,其它特殊功能寄存器一律為直接定址。
例:MOV A, R0 ;R0——>A,R0為寄存器定址
MUL AB ;A×B——>BA,A,B為寄存器定址
MOV B, R0 ;R0——>B,R0為寄存器定址,B為直接定址
PUSH ACC ;A的內容入棧,A為直接定址
ADD A, ACC ;A為寄存器定址,ACC為直接定址 以寄存器中的內容為地址,該地址的內容為操作數的定址方式稱為寄存器間接定址。能夠進行寄存器間接定址的寄存器有:R0、R1、DPTR,用前面加@表示,如@R0、@R1、@DPTR。寄存器間接定址的存儲空間包括內部數據存儲器和外部數據存儲器。由於內部數據存儲器共有128位元組,因此用一位元組的R0和R1可間接定址整個空間。而外部數據存儲器最大可達64K,僅R0或R1無法定址整個空間,為此需要由P2埠提供外部RAM高8位地址,由R0或R1提供低8位地址,由此共同定址64K位元組范圍。也可用16位的DPTR寄存器間接定址64K位元組存儲空間。
在指令中,是對內部RAM還是對外部RAM定址,區別在於對外部RAM的操作僅有數據傳送指令,並且用MOVX作為操作助記符。
例:MOV @R0, A ;A——>以R0內容為地址的內部RAM中
MOVX @DPTR, A ;A——>以DPTR內容為地址的外部RAM中 由寄存器DPTR或PC中的內容加上A累加器內容之和而形成操作數地址的定址方式稱為變址定址。變址定址只能對程序存儲器中的數據進行定址操作。由於程序存儲器是只讀存貯器,因此變址定址只有讀操作而無寫操作。在指令符號上採用MOVC的形式。
例:MOVC A, @A+DPTR ;(A+DPTR)——>A
MOVC A, @A+PC ; (PC)+1——PC ((A)+(PC))——>A
圖4 MOVC A, @A+DPTR
圖5 MOVC A, @A+PC 對位地址中的內容進行位操作的定址方式稱為位定址。由於單片機中只有內部RAM和特殊功能寄存器的部分單元有位地址,因此位定址只能對有位地址的這兩個空間進行定址操作。位定址是一種直接定址方式,由指令給出直接位地址。與直接定址不同的是,位定址只給出位地址,而不是位元組地址。
例:SETB 20H ;1——>20H位
MOV 32H, C ;進位Cy(即指令中的C)——>32H位 以當前程序計數器PC的內容為基址,加上指令給出的一位元組補碼數(偏移量)形成新的PC值的定址方式稱為相對定址。相對定址方式只修改PC值,故主要用於實現程序的分支轉移。
例:SJMP 08H ;PC+2+08H——>PC (該指令為兩位元組,所以有PC+2)

㈣ 單片機中的定址是什麼意思

單片機中的定址就是單片機指令中提供的操作數的形式。也就是尋找操作數或操作數所在地址的方式。

在51系列單片機中,存放數據的存儲器空間有4種:內部RAM、特殊功能寄存器SFR、外部RAM和程序存儲器ROM。其中,內部RAM和SFR統一編址,外部RAM和程序存儲器是分開編址的。為了區別指令中操作數所處的地址空間,對於不同存存儲器的數據操作,採用不同的定址方式。

(4)單片機中絕對定址命令擴展閱讀

定址方式

1、立即數定址

立即數定址又稱立即定址,即指令中直接給出操作數的定址方式稱為立即數定址。在51系列單片機指令系統中,立即數用前面加「#」號的8位數表示(#data,如#30H)或16位數(#data16,如#2052H)表示。舉例說明立即數定址方式,以傳送指令為例。

2、直接定址

指令中直接給出操作數地址(dir)的定址方式稱為直接定址。定址對象為:1 內部數據存儲器,在指令中以直接地址表示;2特殊功能寄存器SFR,在指令中用寄存器名稱表示。

3、寄存器定址

以通用寄存器的內容為操作數的定址方式稱為寄存器定址。通用寄存器包括:A、B、DPTR、R0~R7。其中B寄存器僅在乘法、除法指令中為寄存器定址,在其它指令中為直接定址。A寄存器可以寄存器定址,又可以直接定址(此時寫作ACC)。

直接定址和寄存器定址的差別在於,直接定址是操作數所在的位元組地址(佔一個位元組),寄存器定址是寄存器編碼出現在指令碼中。寄存器定址速度比直接定址要快。除上面所指的幾個寄存器外,其它特殊功能寄存器一律為直接定址。

參考資料來源:網路-51系列單片機定址方式

㈤ mcs-51單片機有哪幾種定址方式

51單片機有7種定址方式:

1、立即定址方式

採用立即定址的指令一般是雙位元組的。第一個位元組是指令的操作碼,第二個位元組是立即數。因此,操作數就是放在程序存儲器中的常數。立即數前面應加前綴「#」號。

2、直接定址方式

採用直接定址的指令一般是雙位元組或三位元組指令,第一位元組為操作碼,第二,三位元組為操作數的地址碼。單片機中,直接地址只能用來表示片內低128位元組單元、專用寄存器和片內RAM的位地址空間。其中專用寄存器和位地址空間只能用直接定址方式來訪問。

3、寄存器定址方式

寄存器定址方式用於訪問選定的工作寄存器R0~R7、A、B、DPTR和進位CY中的數。其中R0~R7由操作碼低三位的8種組合表示,A、B、DPTR、C則隱含在操作碼之中。

4、寄存器間接定址方式

這種定址方式中,指令指定寄存器中的內容為操作數的地址。寄存器間接定址是用於訪問片內數據存儲器或片外數據存儲器。當訪問片內RAM

或片外的低256位元組空間時,可用R0或R1做為間址寄存器;當訪問片外整個64KB的地址RAM空間時,用16位寄存器DPTR做間址寄存器。這類指令都為單位元組的指令,操作碼的最低位表示是採用R0還是R1做間址器。

(5)單片機中絕對定址命令擴展閱讀:

51單片機功能特性

1,可以模擬63K程序空間,接近64K的16位地址空間;

2,可以模擬64Kxdata空間,全部64K的16位地址空間;

3,可以真實模擬全部32條IO腳;

4,完全兼容keilC51UV2調試環境,可以通過UV2環境進行單步,斷點,全速等操作;

5,可以使用C51語言或者ASM匯編語言進行調試;

6,可以非常方便地進行所有變數觀察,包括滑鼠取值觀察,即滑鼠放在某變數上就會立即顯示出它此的值;

7,可選使用用戶晶振,支持0-40MHZ晶振頻率;

8,片上帶有768位元組的xdata,您可以在模擬時選使用他們,進行xdata的模擬;

9,可以模擬雙DPTR指針;

10,可以模擬去除ALE信號輸出.;

11,自適應300-38400bps的所有波特率通訊。

㈥ 什麼是單片機定址方式

單片機的定址方式就是MCU根據指令中給出的地址信息來尋找物理地址的方式,是確定本條指令的數據地址以及下一條要執行的指令地址的方法。

㈦ 單片機系統指令的指令系統的定址方式

訪問指令
一、操作數在寄存器中;
如MOV A,Rn ;(Rn)→A,n=0~7
1、4組工作寄存區,共32個工作寄存器。
2、部分特殊功能寄存器,例如A、B 及DPTR等。
二、訪問片外數據存儲器
(1)用R0或R1作為間址寄存器,定址范圍為片外低256個位元組;
(2)用DPTR作為間址寄存器,定址范圍為片外64K。
a) MOVX A,@Ri ;i=0或1
若(Ri)=70H,把外部RAM中70H單元的內容送到A
b) MOVX A,@DPTR
若(DPTR)=2000H,把外部RAM中2000H單元的內容送到A
3、堆棧操作指令訪問堆棧區
堆棧專用操作指令PUSH(壓棧)和POP(出棧)使用堆棧
指針(SP)作間址寄存器
指令PUSH(壓棧)和POP(出棧),無前綴標志「@」
四、立即(數)定址方式
操作數在指令中直接給出,需在操作數前面加前綴標志「#」。
如MOV A,#40H,此時立即數在程序存儲單元中。
五、基址寄存器加變址寄存器間址定址方式
1、以DPTR或PC作基址寄存器,以累加器A作為變址寄存器;
2、基址寄存器+變址寄存器形成操作數地址;
3、本定址方式專門針對程序存儲器,定址范圍可達到64KB。
4、本定址方式的指令只有3條:
MOVC A,@A+DPTR
MOVC A,@A+PC
JMP @A+DPTR
前2條又稱查表指令,將程序存儲器單元內容給ACC;
後1條為散轉指令,屬於轉移類指令。
(注)
(1)本定址方式是專門針對程序存儲器的定址方式,定址范圍可達到64KB。
(2)本定址方式的指令只有3條:
MOVC A,@A+DPTR
MOVC A,@A+PC
JMP @A+DPTR
六、位定址方式
89C51有位處理功能,可以對數據位進行操作,
如MOV C,40H是把位40H的值送到進位位C。
定址范圍:
1、內部RAM中的位定址區(20H—2FH),有2種表示方法。
(1) 直接給出位地址,如MOV C,40H;
(2) 單元地址加位數,如MOV C,(28H).0,指的是28H單元中的最低位。
2、SFR中的可定址位(70H—FFH,共83位),有4種表示方法。
(1) 直接給出位地址,如MOV C,0D5H(PSW.5的位地址);
(2) 直接寫位名稱,如MOV C,F0;
(3) 單元地址加位數,如MOV C, (0D0H).5;
(4) SFR符號加位數,如MOV C, PSW.5。
七、相對定址方式
在相對定址的轉移指令中,給出了地址偏移量「rel」,即
把PC的當前值+ rel 就構成了程序轉移的目的地址。即
目的地址=轉移指令所在的地址+ 轉移指令的位元組數+ rel
偏移量rel是帶符號的8位二進制補碼數,范圍是:–128 ~ +127 ;
注意:PC的當前值是緊接在轉移指令後的下一條指令的PC值。

㈧ MCS-51單片機的指令系統有幾種定址方式。

MCS-51單片機的指令系統有七種定址方式,分別是:

一、立即定址

立即定址就是將操作數緊跟在操作碼後面,與操作碼一起放在指令代碼段中,在程序運行時,程序直接調用該操作數,而不需要到其他地址單元中去取相應的操作數,上述的寫在指令中的操作數也稱作立即數。

二、直接定址

直接定址在指令格式的地址的欄位中直接指出操作數在內存的地址。由於操作數的地址直接給出而不需要經過某種變換,所以稱這種定址方式為直接定址方式。在指令中直接給出參與運算的操作數及運算結果所存放的主存地址,即在指令中直接給出有效地址。

三、寄存器定址

寄存器定址是指操作數在寄存器中,由指令操作碼中的rrr三位的值和PSW中RS1及RS0的狀態,選中某個工作寄存器區的某個寄存器,然後進行相應的指令操作。

四、寄存器間接定址

寄存器間接定址是將指定的寄存器內容為地址,由該地址所指定的單元內容作為操作數。MCS-51規定R0或R1為間接定址寄存器,它可定址內部RAM低位地址的128個位元組單元內容。還可採用數據指針(DPTR)作為間接定址寄存器,定址外部數據存儲器的64K位元組空間,但不能用本定址方法定址特殊功能寄存器。

五、相對定址

相對定址以程序計數器PC的當前值(R15中的值)為基地址,指令中的地址標號作為偏移量,將兩者相加後得到操作數的有效地址。

六、變址定址

把變址寄存器的內容(通常是位移量)與指令地址碼部分給出的地址(通常是首地址)之和作為操作數的地址來獲得所需要的操作數就稱為變址定址。

七、位定址

對位地址中的內容進行位操作的定址方式稱為位定址。由於單片機中只有內部RAM和 特殊功能寄存器的部分單元有位地址,因此位定址只能對有位地址的這兩個空間進行定址操作。


(8)單片機中絕對定址命令擴展閱讀:

MCS-51單片機是一種集成的電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能(脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的計算機系統。

㈨ 單片機I/O定址的問題

這是單片機的絕對定址方式。這樣可以把
DAC0832
當做是一個外部存取器進行操作。當單片機訪問
外部存儲器
時,單片機的一些引腳會產生一定是時序,例如ALE腳、RD腳和WD腳,而這個時序正好讓DAC0832進行D/A轉換。當要DAC0832進行D/A轉換時只需執行
DAC0832
=
Temp;這條語句就可以了,而不要去用普通引腳模擬DAC0832的時序了。

閱讀全文

與單片機中絕對定址命令相關的資料

熱點內容
centos7vim命令 瀏覽:908
安卓系統如何切換賓客用戶 瀏覽:440
php教材書 瀏覽:840
未見app怎麼刪除空間 瀏覽:567
安卓手機u盤加密 瀏覽:241
專業雲伺服器便宜 瀏覽:945
cad手機看圖怎麼弄新建文件夾 瀏覽:942
單片機數控繞線機 瀏覽:607
pdf表格能轉excel 瀏覽:412
伺服器之間的負載均衡如何實現 瀏覽:204
多媒體伺服器執行什麼定額子目 瀏覽:216
php獲取手機標識 瀏覽:906
點擊錄制按鈕是什麼app 瀏覽:890
證據提取命令視頻 瀏覽:354
java的學習心得 瀏覽:96
prof命令 瀏覽:279
手機加密文件密碼怎麼解開 瀏覽:283
賈躍亭程序員完整視頻 瀏覽:959
怎樣把兩個文件夾打包發送 瀏覽:378
單片機教程資料 瀏覽:982