<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機數據傳送類(lèi)指令

51單片機數據傳送類(lèi)指令

作者: 時(shí)間:2013-01-30 來(lái)源:網(wǎng)絡(luò ) 收藏

單片機的A與片外RAM之間的數據傳遞類(lèi)指令

MOVX A,@Ri

MOVX @Ri,A

MOVX A,@DPTR

MOVX @DPTR,A

說(shuō)明:

1)在51系列單片機中,與外部存儲器RAM打交道的只能是A。所有需要傳送入外部RAM的數據必需要通過(guò)A送去,而所有要讀入的外部RAM中的數據也必需通過(guò)A讀入。在此我們能看出內外部RAM的區別了,內部RAM間能直接進(jìn)行數據的傳遞,而外部則不行,比如,要將外部RAM中某一單元(設為0100H單元的數據)送入另一個(gè)單元(設為0200H單元),也必須先將0100H單元中的內容讀入A,然后再傳送到0200H單元中去。

要讀或寫(xiě)外部的RAM,當然也必須要知道RAM的地址,在后兩條單片機指令中,地址是被直接放在DPTR中的。而前兩條指令,由于Ri(即R0或R1)只是一個(gè)8位的寄存器,所以只供給低8位地址。因為有時(shí)擴展的外部RAM的數量比較少,少于或等于256個(gè),就只需要供給8位地址就夠了。

使用時(shí)應當首先將要讀或寫(xiě)的地址送入DPTR或Ri中,然后再用讀寫(xiě)命令。

例:將單片機外部RAM中100H單元中的內容送入外部RAM中200H單元中。

MOV DPTR,#0100H

MOVX A,@DPTR

MOV DPTR,#0200H

MOVX @DPTR,A

程序存儲器向A傳送指令

MOVC A,@A+DPTR 本指令是將ROM中的數送入A中。本指令也被稱(chēng)為單片機查表指令,常用此指令來(lái)查一個(gè)已做好在ROM中的表格 說(shuō)明:

此條指令引出一個(gè)新的尋址辦法:變址尋址。本指令是要在ROM的一個(gè)地址單元中找出數據,顯然必須知道這個(gè)單元的地址,這個(gè)單元的地址是這樣確定的:在執行本指令立腳點(diǎn)DPTR中有一個(gè)數,A中有一個(gè)數,執行指令時(shí),將A和DPTR中的數加起為,就成為要查找的單元的地址。

查找到的結果被放在A(yíng)中,因此,本條指令執行前后,A中的值不一定相同。

例:有一個(gè)數在R0中,要求用查表的辦法確定它的平方值(此數的取值范圍是0-5)

MOV DPTR,#TABLE

MOV A,R0

MOVC A,@A+DPTR

TABLE: DB 0,1,4,9,16,25

設R0中的值為2,送入A中,而DPTR中的值則為T(mén)ABLE,則最終確定的ROM單元的地址就是TABLE+2,也就是到這個(gè)單元中去取數,取到的是4,顯然它正是2的平方。其它數據也能類(lèi)推。

標號的真實(shí)含義:從這個(gè)地方也能看到另一個(gè)問(wèn)題,我們使用了標號來(lái)替代具體的單元地址。事實(shí)上,標號的真實(shí)含義就是地址數值。在這里它代表了,0,1,4,9,16,25這幾個(gè)數據在ROM中存放的起點(diǎn)位置。而在以前我們學(xué)過(guò)的如LCALL DELAY單片機指令中,DELAY 則代表了以DELAY為標號的那段程序在ROM中存放的起始地址。事實(shí)上,CPU正是通過(guò)這個(gè)地址才找到這段程序的。

能通過(guò)以下的例程再來(lái)看一看標號的含義:

MOV DPTR,#100H

MOV A,R0

MOVC A,@A+DPTR

ORG 0100H.

DB 0,1,4,9,16,25

如果R0中的值為2,則最終地址為100H+2為102H,到102H單元中找到的是4。這個(gè)能看懂了吧?

那為什么不這樣寫(xiě)程序,要用標號呢?不是增加疑惑嗎?


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 51單片機 數據傳送 累加器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>