⑴ mcs-51單片機有幾種定址方式 適用於什麼地址空間
直接定址方式:操作數的地址由指令直接給出,適用於片內RAM的所有地址空間;如MOV A, 68HMOV A,PSW
寄存器定址方式:指令給出的是寄存器的編碼,操作數在編碼指定的寄存器中,適用於片內00H至1FH的32個位元組,用RO,-,R7表示,通過PSW的RS1和RSO選擇組號確定對應32個位元組中的其中8個,還有累加器A,以及乘除法指令中的A和B寄存器,位定址方式中的布爾累加器C;
MOV A, R1
MUL AB
INC DPTR
寄存器間接定址方式:指令給出的是寄存器的編碼,操作數地址在編碼指定的寄存器中,適用於片內RAM的全部空間,其中52系列中的80H至FFH只能用寄存器間接定址;如MOV A, @RO
MOV A,@R1
MOVX A, @DPTR
立即定址方式:操作數本身在指令中直接,給出適用於用8位立即數對片內RAM所有地址單元賦值,也可用16位立即數對DPTR賦值; 如
MOV A,#0E2H
MOV DPTR, #2000H
變址定址方式:以DPTR或PC作為基地址寄存器,以累加器A作為變址寄存器,將基址寄存器與變址寄存器的內容相加形成操作數的實際地址的一種定址方式,變址定址方式適用於程序存儲器ROM,僅有三條指令如下:
MOVC A, @A+DPTR
MOVC A, @A+PC
JMP @A+DPTR
位定址方式:指令中直接給出操作數所在單元的位地址,適用於片內RAM中地址20H至2FH中的16個位元組中的128個位地址空間和80H至FFH中地址中可以被8整除的所有SFR中的每個位地址空間;如
MOV C,7FH
MOV F0, C
MOV C,ACC. 7
相對定址方式:為相對轉移指令而設,指令中直接給出轉移的相對偏移量,其轉移目標在當前指令-128至+127位元組范圍內的地址空間。如
SJMP START
HERE: SJMP HERE ;等效於: SJMP $
⑵ 請問,那位知道51單片機常用哪幾種定址方式分別在什麼情況下使用最好能舉一個例子。謝謝。
MCS-51 的定址方式:
1 、立即定址 如: MOV A , #40H
2 、直接定址 如: MOV A , 3AH
3 、寄存器定址 如: MOV A , Rn
4 、寄存器間接定址 如: MOV A , @Rn
5 、基址加變址定址 如: MOVC A , @A+DPTR
6 、相對定址 如: SJMP 08H
7 、位定址 MOV 20H , C
以下是詳細介紹:
一、立即定址:操作數就寫在指令中,和操作碼一起放在程序存貯器中。把「#」號放在立即數前面,以表示該定址方式為立即定址,如#20H。
二、寄存器定址:操作數放在寄存器中,在指令中直接以寄存器的名字來表示操作數的地址。例如MOV A,R0就屬於寄存器定址,即將R0寄存器的內容送到累加器A中。
三、直接定址:操作數放在單片機的內部RAM某單元中,在指令中直接寫出該單元的地址。如前例的ADD A,70H中的70H。
四、寄存器間接定址:操作數放在RAM某個單元中,該單元的地址又放在寄存器R0或R1中。
如果RAM的地址大於256,則該地址存放在16位寄存器DPTR(數據指針)中,此時在寄存器名前加@符號來表示這種間接定址。如MOV A,@R0。其它還有變址定址、相對定址、位定址等,待以後再詳細介紹。可能有人會問,在指令中直接給出實際操作數,不是簡單、明了嗎?為什麼還要用其它幾種定址方式呢?這是因為在編製程序時很難一下子就給出操作數。如用單片機控制溫度時,時時需要將給定的控制溫度(如20℃)減去環境溫度,而環境溫度時時有變化,顯然無法在程序指令中給出,只有通過一定方式,將其送入某個輸入/輸出口,再存放在某個寄存器中,這就必須用到寄存器定址。又如要進行算術運算,要計算每班學員各科成績的平均值,如果把每個學員的各科都編一個程序,在程序中直接給出該學員各科成績,再求平均值,顯然太麻煩。這里可以編一個求平均成績的通用程序,把每位學員的成績送入存貯器的各個單元中,這時可採取直接定址,一個程序可供每個學員用,不是更方便嗎?所以,定址方式越多,編製程序就越方便、靈活,適用范圍就越廣。定址有如找人,如被找的人有手機、BP機、座機電話等多種聯系方式則就容易找到他,單片機也是如此,定址方式越多,找操作數越方便,單片機的功能就越強。前面介紹51系列單片機的定址方式時,常遇到單片機內部的一些寄存器、累加器A、通用寄存器R0~R7、數據指針DPTR和存貯器等。在以後介紹指令時,數據就要在這些寄存器、存貯器之間傳送,或者進行運算。因此,編製程序就需熟悉單片機的內部結構。
8051單片機的內部總體結構其基本特性如下:
8位CPU、片內振盪器
4k位元組ROM、128位元組RAM
21個特殊功能寄存器
32根I/O線
可定址的64k位元組外部數據、程序存貯空間
2個16位定時器、計數器
中斷結構:具有二個優先順序、五個中斷源
一個全雙口串列口
位定址(即可尋找某位的內容)功能,適於按位進行邏輯運算的位處理器。除128位元組RAM、4k位元組ROM和中斷、串列口及定時器模塊外,還有4組I/O口P0~P3,餘下的就是CPU的全部組成。把4kROM換為EPROM就是8751的結構,如去掉ROM/EPROM部分即為8031的框圖,如果將ROM置換為Flash存貯器或EEPROM,或再省去某些I/O,即可得到51系列的派生品種,如89C51、AT89C2051等單片機的框圖。
⑶ MCS-51單片機的指令系統有幾種定址方式。
MCS-51單片機的指令系統有七種定址方式,分別是:
一、立即定址
立即定址就是將操作數緊跟在操作碼後面,與操作碼一起放在指令代碼段中,在程序運行時,程序直接調用該操作數,而不需要到其他地址單元中去取相應的操作數,上述的寫在指令中的操作數也稱作立即數。
二、直接定址
直接定址在指令格式的地址的欄位中直接指出操作數在內存的地址。由於操作數的地址直接給出而不需要經過某種變換,所以稱這種定址方式為直接定址方式。在指令中直接給出參與運算的操作數及運算結果所存放的主存地址,即在指令中直接給出有效地址。
三、寄存器定址
寄存器定址是指操作數在寄存器中,由指令操作碼中的rrr三位的值和PSW中RS1及RS0的狀態,選中某個工作寄存器區的某個寄存器,然後進行相應的指令操作。
四、寄存器間接定址
寄存器間接定址是將指定的寄存器內容為地址,由該地址所指定的單元內容作為操作數。MCS-51規定R0或R1為間接定址寄存器,它可定址內部RAM低位地址的128個位元組單元內容。還可採用數據指針(DPTR)作為間接定址寄存器,定址外部數據存儲器的64K位元組空間,但不能用本定址方法定址特殊功能寄存器。
五、相對定址
相對定址以程序計數器PC的當前值(R15中的值)為基地址,指令中的地址標號作為偏移量,將兩者相加後得到操作數的有效地址。
六、變址定址
把變址寄存器的內容(通常是位移量)與指令地址碼部分給出的地址(通常是首地址)之和作為操作數的地址來獲得所需要的操作數就稱為變址定址。
七、位定址
對位地址中的內容進行位操作的定址方式稱為位定址。由於單片機中只有內部RAM和 特殊功能寄存器的部分單元有位地址,因此位定址只能對有位地址的這兩個空間進行定址操作。
(3)mcs51單片機定址方式擴展閱讀:
MCS-51單片機是一種集成的電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能(脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的計算機系統。
⑷ 51單片機的定址方式
親,你好。MCS-51系列單片機定址方式共有七種:寄存器定址、直接定址、立即數定址、寄存器間接定址、變址定址、相對定址、位定址。 寄存器定址是指操作數存放在某一寄存器中,指令中給出寄存器名,就能得到操作數。 寄存器可以使用寄存器組R0~R7中某一個或其它寄存器 (A,B,DPTR等)。 在指令中直接給出操作數所在的存儲單元的地址,稱為直接定址方式。 在8051中,使用直接定址方式可訪問片內RAM的128個單元以及所有的特殊功能寄存器 (SFR),對於特殊功能寄存器,既可以使用他們的地址,也可以使用他們的名字。 MOV A, 90H ; 90H是P1口的地址。 指令操作碼後面緊跟的是一位元組或兩位元組操作數,用 # 號表示,以區別直接地址。 例如: 寄存器中的內容是一個地址,由該地址單元定址到所需的操作數.
⑸ MCS-51系列單片機有哪7種定址方式各有什麼特點
MCS-51系列閉改單片機有哪7種定址方式?各有什麼特點?
正確答案:立即定址、直接定址、寄存器定址、寄存器間接定址、變址定址、相對定址、位定址。立即定址數據包含指轎塵判令信息中、直接定址數據在存儲空間、寄存器兄好定址數據在工作寄存器、寄存器間接定址中數據在意寄存器內容為地址的數據存儲空間,變址定址數據在累加器數值與基址數值之和作為地址所對應的存儲器中,相對定址是目標指令與當前指令的距離,位定址是對應片內RAM的位定址區。
⑹ 請問,那位知道51單片機常用哪幾種定址方式分別在什麼情況下使用最好能舉一個例子.謝謝.
立即定址;
直接定址;
寄存器定址;
寄存器間接定址;
......
看看我的網路空間吧.
實例很多的.
⑺ mc-51單片機4種定址方式
立即、直接、寄存器、寄存器間接。
⑻ 51單片機的定址方式及各自對應的定址空間有哪些CPU響應中斷時,中斷入口地址各是多少
立即定址:對應著程序存儲器ROM
直接定址:對應片內數據存儲器低128B
寄存器定址:對應片數據存儲器中的特殊功能寄存器,主要是R0-R7,A,B,^
寄存器間接定址:對應數據存儲器(片內,片外)
相對定址:ROM
變址定址:ROM
位定址:片內可以位定址的寄存器及位定址區(片內RAM20-2FH)
中斷入口地址:
外部中斷0:0003H
定時計數器0:000BH
外部中斷1:0013H
定時計數器1:001BH
串口:0023H