51系列微控制器定址方式的定址方式

2021-09-06 09:13:52 字數 2229 閱讀 1428

1樓:浪子菜刀47鑑

立即數定址又稱立即定址,即指令中直接給出運算元的定址方式稱為立即數定址。在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)

2樓:

立即定址:mov a, #10h ;直接把10h給a直接定址:mov a,10h ;把地址10h裡的內容給a暫存器定址:

mov a, r1 ;把暫存器r1中的內容給a暫存器相對定址: mov a ;@r1 ,把r1中的內容作為地址,再把地址中的內容給a

相對定址: djnz a , rel ;a=0時,轉向pc+2+rel為相對定址

變址定址: movc a, @a+dptr ;只能用movc位定址: jb acc.

0, rel ; acc.0 = 1時轉向pc+3+rel,判斷一位如acc.0屬於位定址

51系列微控制器的控制線有幾根,51系列微控制器的引腳中有多少根IO線地址線和資料線什麼關係

51微控制器的最小系統需要電源線,地線,兩個線接晶振,一個線接復位電路,還有32個io口 可以看看吳鑑鷹微控制器開發板 51系列微控制器的引腳中有多少根io線?地址線和資料線什麼關係 80c51微控制器有4個i o埠,每個埠都是8位雙向口,共佔32根引腳。每個端 口都包括一回個鎖存器 即專 用暫存器...

80C51微控制器中,通訊中的方式0方式1方式2方式

方式0 時串列埠相當於bai 併入串出 du或 串出併入 的zhi移位暫存器 dao,rxd引腳接收內 或輸出8位序列資料,txd引腳容輸出移位脈衝。該方式下串列埠不能實現非同步序列通訊,而比較類似於spi。該方式通常用於擴充套件io口 需要外接cd4094等串轉並晶片 或者控制序列介面的adc d...

51微控制器的51是什麼意思,51微控制器什麼意思啊

51微控制器是指8051系列的微控制器,最初由英特爾設計,因為效能較優被廣泛使用,後多家改型。功能雖說千差萬別但核心一樣。51微控制器什麼意思啊 6秒定時,12m晶振時一次定時溢位是實現不了的,需要多次溢位累積才行,所以初值是不確定的,比如可以是 tmod 0x01 th0 65536 50000 ...