微控制器direct怎麼知道我要的位址?

2025-07-08 06:30:12 字數 4073 閱讀 6756

51微控制器定址方式判別 在51定址中 mov a,rn 和mov direct,rn 還有mov rn,direct 怎麼判別啊???

1樓:網友

mov a,rn

工作暫存器的資料送到a

n的取值為 0-7

mov a,r0 ..mov a,r7

mov direct,rn ;暫存器定址。

工作暫存器的資料送到直接位址。

direct的取值為0h-0ffh ;例如 mov 90h,r7 r7的值送到p1口。

direct的取值低於127為記憶體,高於127為特殊功能暫存器例如io 中斷 串列埠等、、

mov rn,direct ;暫存器定址。

直接位址的資料送到工作暫存器。

例如mov r7,90h 讀取p1口的資料並賦值給r7暫存器。

mov r6,99h 讀取串列埠資料並賦值到r6暫存器。

rn就代表8個工作暫存器。

分別是r0到r7

direct代表微控制器內的直接位址。

一般低127位元組是普通ram,128位元組是特殊功能暫存器。

大部分51微控制器都有256位元組ram

無法使用直接位址訪問高128位元組的ram

這時就需要通過(暫存器間接定址)

mov a,@ri

mov @ri,a

這2條指令來實現了。

ri的取值為 r0 r1 2個。

例如要取200位址的ram的值。

首先。mov r0,#200 ;r0 r1都可以。

mov a,@r0

這樣就能取到200位址內的資料了。

同理給200位址賦值只是反過來而已。

mov @r0,a

2樓:網友

mov a,rn 和mov direct,rn是暫存器定址,因為運算元都是rn(暫存器)

mov rn,direct是直接定址,因為運算元是direct(位址)。

綜述,要判斷定址方式可以看它的運算元。

3樓:一萬光年

mov rn,direct , mov direct,rn 都是暫存器定址。

mov @r0,a 是暫存器間接定址,特點,多乙個@

微控制器中直接位址direct中存放的是位址還是資料啊?

4樓:潘生戎璇子

存放的當然是位址畝搭了,直接位址就是說在指令裡直接訪問該位址,而不通過其他暫存器間接訪問,例如。

mova,30h

就是直接訪問30h這個地首耐彎址,好處應該是訪者悶問速度最快的吧。

5樓:蓋濰駒問兒

你好!direct是位址,但在這個位址下可以存資料資料!

如有疑問,請追問。

51微控制器中direct具體指什麼範圍,0x00-0x7f;還是0x00-0xff.那是128b內部ram,有沒有包括高128b的ram?sfr算

6樓:網友

高128位元ram不可以用direct直接定址,高128b的direct指的 sfr的位址。

7樓:網友

要看具體什麼型號的51微控制器。。。說明文件一般都寫得很白的。。。

微控制器裡direct是什麼意思(儘量說的通俗一點好嗎)

8樓:網友

mov a,30h 這裡30h就是directmov r0,30h

mov a,@r0 同樣是將30h的值送a,但這裡則不是direct,而是間接位址了。

9樓:網友

微控制器 direct 只是乙個英文單詞,就是 直接位址,沒有其它意義。

通常 在指令 表裡 表示這裡 應該是 乙個 直接位址。

求助 微控制器外接晶元時位址怎樣確定??

10樓:網友

如果管腳夠用,完全沒有必要這麼麻煩。。

11樓:冷泉泓薇

傳統電路一般採用引腳作為外部擴充套件器件的位址,主要原因是因為引腳作為微控制器位址的高專8位,可以獲得更屬多的擴充套件位址空間,可以滿足需要較多位址空間的晶元,自然也可以滿足其它要求。

引腳與引腳上電後預設為高電平,不過引腳需要外部接上拉電阻。

接74ls138時傳統接法一般採用引腳的最高3位。

若僅僅外接一片adc0809,在不使用外部匯流排的設計中,不需要位址選擇,直接接到p0或者p1口上,用p2口的一位啟動adc809即可。

12樓:網友

同意copy樓上的 數位電路你弄不明白 不好講bai啊…du…

簡單說一下把 就是一zhi個原則。

你看什dao麼樣的電平(然後就能看出對應的位址了) 能使cs腳出現片選的電平 使晶元工作 這個就是他的位址 不管什麼138…… 這是核心。

13樓:做而論道

關於這個問題,數位電路是基礎。

樓主八成不是學電的,在這裡怎麼講,也未必能。

51微控制器???

14樓:網友

不會,51微控制器是通過指令來定址的,不同的指令定址方式有所不同,就像這樣的指令mov 00h,#data 只能對位元組資料定址,而不能對位定址,只能執行位操作時才是對位進行定址的,如 mov c,00h 、mov 00h,c 等。

mov 00h,c 等同於 mov ,c

15樓:網友

mov direct,a ;比如:mov 20h,a還有很多指令可以直接訪問資料儲存器。

可位定址區本來就是ram(資料儲存器)中的內容。

51微控制器中的direct暫存器應該怎麼去理解它?我想更清楚地去了解它的使用領域,使用方法,使用方式

16樓:網友

我忘了。。。四年不去碰微控制器了,都差不多忘完了!兆宴!好像是它存放的是實體地址鉛察,族激銀需不是虛擬指向(間接)位址!

微控制器是如何根據位址資訊找到儲存單元的?越詳細越好,高手解答。

17樓:網友

indf 和 fsr兩個暫存器構成了乙個間接定址的作用。

fsr有點像c語言中的指標,indf是乙個虛擬的暫存器,對它操作其實是對fsr鎖指向的記憶體單元操作。

簡單的說,當20h這個數賦給了fsr,那麼就是fsr作為指標指向了記憶體中位址為20h的這個單元(以下就用<20h>來表示這個單元,以區別十六進位的20h這個數值),此時indf就被對映到<20h>。

從頭說起:1:w被賦值20h這個數;2:

fsr被賦值和w暫存器相同的數20h,此時fsr指向了<20h>;3:此時w暫存器因為沒被改變過,所以其數值依然是十六進位的20h那麼movwf 20h其實就是把w裡的資料賦值給<20h>這個記憶體單元 也就是 <20h> =20h ;

4:重點來了 incf indf,讓indf自加1。前面說了對indf操作其實就是對fsr所指向的單元操作,也就等同於 incf <20h>(真正程式裡不能這麼寫的,因為<20h>這楊寫法是錯誤的) 類似c與語言中的<20h>++

5:fsr自加1,fsr內部的值等於21h所以fsr指向了<21h>這個記憶體單元。

6:<20h>單元的數值高4位和低4位轉換一下資料。所以 <20h> =02h

7:把<20h>的內容賦值給w暫存器,所以w = 02h

8:fsr此時 等於21h ,把21h和w的02h做與運算,結構 0 賦值給fsr。

18樓:網友

每個儲存單元排列在晶元上,都有且僅有乙個位址與它本身對應。

當你告訴微控制器:給我找到ffff位址的資料,那它就先把這個ffff作為乙個指標,存在乙個暫存器裡,然後移動到ffff,取出來,就給你了。

就像有人告訴你,去**路**號找**人一樣。

19樓:徐龍成

微控制器有個pc指標。它會儲存下一步運算的位址。當要讀ffff的位址資料時,微控制器它會把ffff位址放入pc指標中,然後微控制器就會讀到ffff位址資料。

微控制器和電腦怎麼連,微控制器與電腦相連需要怎麼連線

微控制器與電腦連線一般有以下幾種 1 rs232串列埠連線,這是最普遍的連線方式。2 rs232 usb,這種方式越來越受歡迎。3 jtag jlink usb rs232 主要用於 jtag連線微控制器,通過 器再連線到電腦。對!買一條,要貴點的。有些不能用於微控制器和電腦的。自己做也很簡單。我就...

關於微控制器裡的SJMP知道的請進

sjmp 是在原地迴圈,一般都用在等待中斷到來,然後進入中斷處理程式。處理完了,再繼續在原地迴圈。比如你的手機現在不用了,估計也在這裡迴圈,你按下鍵,它就當是有中斷來了,就去處理,處理完了,它又開始迴圈等待你的操作了。end是每個程式必須寫的指令,如果你的程式走到了這條指令就停下來了。一般的程式是不...

51微控制器計數程式怎麼寫

1全部clr p0.1 初態,p0.1 低mov 30h,00h 計數器 0start jb p0.0,等待p0.0變低 setb p0.1 變高 inc 30h 計數器加一acall disp 呼叫顯示程式,顯示30h單元數字jb p0.2,等p0.2變低電平clr p0.1dec 30h aca...