標(biāo)題: 9課:單片機(jī)數(shù)據(jù)傳遞類指令 [打印本頁(yè)]

作者: admin    時(shí)間: 2013-5-21 03:05
標(biāo)題: 9課:單片機(jī)數(shù)據(jù)傳遞類指令
3)以直接地址為目的操作數(shù)的指令
MOV direct,A 例: MOV 20H,A
MOV direct,Rn MOV 20H,R1
MOV direct1,direct2 MOV 20H,30H
MOV direct,@Ri MOV 20H,@R1
MOV direct,#data MOV 20H,#34H
4)以間接地址為目的操作數(shù)的指令
MOV @Ri,A 例:MOV @R0,A
MOV @Ri,direct MOV @R1,20H
MOV @Ri,#data MOV @R0,#34H
5)十六位數(shù)的傳遞指令
MOV DPTR,#data16
8051是一種8位機(jī),這是唯一的一條16位立即數(shù)傳遞指令,其功能是將一個(gè)16位的立即數(shù)送入DPTR中去。其中高8位送入DPH,低8位送入DPL。例:MOV DPTR#1234H,則執(zhí)行完了之后DPH中的值為12HDPL中的值為34H。反之,如果我們分別向DPH,DPL送數(shù),則結(jié)果也一樣。如有下面兩條指令:MOV DPH#35H,MOV DPL,#12H。則就相當(dāng)于執(zhí)行了MOV DPTR,#3512H。
數(shù)據(jù)傳遞類指令綜合練習(xí):
此次大家就用用熟這個(gè)軟件吧,說(shuō)實(shí)話,我并不很喜歡它,操作起來(lái)不方便,但給我的機(jī)器只能上這個(gè),沒辦法,下次再給網(wǎng)友單獨(dú)介紹一個(gè)好一點(diǎn)的吧,F(xiàn)在最好的是keil 這個(gè)軟件本站有詳細(xì)的教程請(qǐng)看:    keil教程  單片機(jī)c語(yǔ)言教程


作者: 阿格拉瑞    時(shí)間: 2013-5-25 22:03
這是什么軟件截的圖
作者: 莫問紛飛    時(shí)間: 2013-5-26 11:19
功力太淺,界面都沒看懂
作者: danpianji889    時(shí)間: 2013-8-13 15:24
看不懂得,軟件在什么地方
作者: 隆威    時(shí)間: 2014-2-7 20:35
很難哦  老師
作者: jiajun678    時(shí)間: 2014-4-4 22:21
沒太懂
作者: 雪中梅花    時(shí)間: 2014-5-20 08:55
謝謝樓主我還用努力學(xué)習(xí)。
作者: 93mxt    時(shí)間: 2014-7-16 20:42
界面都沒看懂
作者: 淺墨畫青梅    時(shí)間: 2014-8-29 16:13
這個(gè)是什么意思?
作者: yongxiang6091    時(shí)間: 2014-9-10 20:26
謝謝樓主分享!。!
作者: yingtn    時(shí)間: 2014-9-17 10:23
MOV R1,12H 是否是寫錯(cuò)了,應(yīng)該是MOV R1,#12H
作者: 忘川    時(shí)間: 2014-12-17 21:15
界面是什么
作者: 山一樣的男人    時(shí)間: 2015-1-5 17:17
為什么我在這個(gè)網(wǎng)站上下載的東西下來(lái)都是一些亂碼啊
作者: dimozun    時(shí)間: 2015-3-31 15:47
功力太淺,界面都沒看懂
作者: b4082    時(shí)間: 2015-4-6 14:13
感謝分享!
作者: yit1268    時(shí)間: 2015-9-1 09:43
有點(diǎn)難,看不懂啊
作者: 黑牛奶    時(shí)間: 2016-1-6 10:48
16位數(shù)輸入輸出介紹那里:如有下面兩條指令:MOV DPH,#35H,MOV DPL,#12H。中的35H打錯(cuò)了吧
作者: haquanquan    時(shí)間: 2016-3-24 22:18
學(xué)到了很多,超級(jí)感謝樓樓
作者: 阿小哥    時(shí)間: 2016-4-14 14:29
請(qǐng)問一下:經(jīng)MOV12H,#34H后12H單元的值為34H,那接著,MOVR1,12H后,R1的值不是等于12H的值
作者: 阿小哥    時(shí)間: 2016-4-14 14:34
請(qǐng)問一下:經(jīng)MOV12H,#34H后,12H的值等于34H,那接著,MOVR1,12H后,R1的值不是等于12H的值#34嗎?為什么等于12H?
作者: 阿小哥    時(shí)間: 2016-4-14 14:54
以間接地址為目的操作數(shù)的指令看不懂,望老師耐心講解,辛苦!謝謝!
作者: 阿小哥    時(shí)間: 2016-4-24 00:26
快看懂啦!
作者: 凱撒320    時(shí)間: 2016-12-27 12:51
給力,學(xué)到了!
作者: comC    時(shí)間: 2017-3-13 15:00
9課:單片機(jī)數(shù)據(jù)傳遞類指令
作者: Jhonas    時(shí)間: 2017-7-20 09:08
上機(jī)練習(xí)中R1應(yīng)該等于34H。
作者: guysxpf    時(shí)間: 2017-8-15 12:30
我感覺MOVE R1,12H那句是直接尋址,不是立即尋址,結(jié)果應(yīng)該是34H
作者: 繁華笙歌    時(shí)間: 2017-10-24 11:15
新手,不太明白
作者: tiance    時(shí)間: 2017-10-27 11:07
MOV 20H,A
MOV 20H,R1
MOV 20H,30H
MOV 20H,@R1
MOV 20H,#34H


MOV @R0,A
MOV @R1,20H
請(qǐng)問老師這些各是什么意思  是地址還是數(shù)據(jù)?哪些是地址?詳細(xì)說(shuō)一下,還有用keil 可以直接把這些語(yǔ)句寫上去編譯么?
作者: tiance    時(shí)間: 2017-10-27 11:15
老師,怎么將單片機(jī)內(nèi)部RAM  30H~40H單元的數(shù)據(jù)一次儲(chǔ)存到內(nèi)部RAM的 60H~70H單元中? 在keil中該怎樣寫代碼?你講的數(shù)據(jù)傳遞課 我不知道那里面是數(shù)據(jù)還是地址?還有30H~40H可以用循環(huán)吧  怎樣寫?
作者: hsyxyz123    時(shí)間: 2017-11-23 15:39
數(shù)據(jù)傳送指令和微機(jī)原理中的基本上都一樣呀。
作者: liuzclzc    時(shí)間: 2018-1-16 20:31
這節(jié)了解了單片機(jī)的十六進(jìn)制
作者: heron    時(shí)間: 2018-2-26 20:47
有一點(diǎn)匯編基礎(chǔ)看起來(lái)很輕松,也就沒詳細(xì)看。如果沒有基礎(chǔ)的話,看這些會(huì)很頭疼吧
作者: 1261867136qq    時(shí)間: 2018-6-12 16:27
MOV R7,#22H
MOV R1,12H  

加不加#有啥區(qū)別 啊
作者: keneng    時(shí)間: 2018-6-25 16:29
今天學(xué)習(xí)到這了,明天繼續(xù),,,
作者: xxd3w    時(shí)間: 2018-6-29 07:17
謝謝樓主的分享。
作者: slj0716    時(shí)間: 2018-7-29 13:45
謝謝樓主,新手一枚
作者: 648682350    時(shí)間: 2018-10-14 11:13
樓主把自己的學(xué)習(xí)所得整理的真好
作者: 時(shí)光倒影    時(shí)間: 2018-12-12 19:44
謝謝分享
作者: cedtek    時(shí)間: 2020-12-29 16:39
看了一下王爽師傅的《匯編語(yǔ)言》再看這篇文章理解起來(lái)非常輕松,建議有時(shí)間的朋友也可以參考下《匯編語(yǔ)言》
作者: 13311658100    時(shí)間: 2021-3-27 13:26
mov R1,12H應(yīng)該改為 mov R1 #12H
作者: 13311658100    時(shí)間: 2021-3-27 14:30
阿格拉瑞 發(fā)表于 2013-5-25 22:03
這是什么軟件截的圖

WAVE,你可以用WAVE6000
作者: cedtek    時(shí)間: 2024-1-7 18:12
使用 Keil 可以練習(xí)嗎?
作者: cedtek    時(shí)間: 2024-1-19 08:44
還沒有執(zhí)行任何一條指令前,數(shù)據(jù)存儲(chǔ)器 RAM 內(nèi)容、工作寄存器的值、ACC 累加器的值、DPTR 數(shù)據(jù)指針的高 8 位 DPH 以及低 8 位 DPL 的值如下圖所示:

執(zhí)行完下面這條指令
  1. MAIN:MOV 23H,#30H
復(fù)制代碼

RAM 數(shù)據(jù)存儲(chǔ)器的 0x23 地址處單元的內(nèi)容就被賦值為 0x30,如下圖所示:

接著往下執(zhí)行,0x12 地址 RAM 單元內(nèi)容被賦值為 0x12,如下圖所示:

接著單步執(zhí)行,R0 工作寄存器中的內(nèi)容被賦值為 0x23,如下圖所示:

繼續(xù)單步運(yùn)行,R7 工作寄存器中的內(nèi)容被賦值為 0x22,如下圖所示:

接著往下執(zhí)行一步,R1 工作寄存器中的內(nèi)容被賦值為 0x34,也就是 RAM 的 0x12 地址單元內(nèi)容,如下圖所示:

繼續(xù)走一步,ACC 累加器中的內(nèi)容被改寫為 0x30,就是以 R0 工作寄存器中的內(nèi)容 0x23 為地址的 RAM 單元內(nèi)容 0x30,如下圖所示:

再單步運(yùn)行一步,因?yàn)樵谇懊鎴?zhí)行過(guò)的步驟中 R1 工作寄存器中的內(nèi)容被賦值為了 0x34,所以下面這條指令就是將 RAM 單元 0x34 地址單元內(nèi)容取出又賦值回 0x34 地址單元
  1. MOV 34H,@R1
復(fù)制代碼

得到的結(jié)果如下圖所示(0x34 單元內(nèi)容依然為 0x00):

接著就是直接尋址:
  1. MOV 45H,34H
復(fù)制代碼

得到的結(jié)果如下圖:

DPTR 被賦值,如下圖所示:

緊接著,高 8 位賦值給 0x12 地址單元,如下圖:

低 8 位賦值給 R0 工作寄存器,如下圖:

最后捏~,執(zhí)行寄存器間接尋址,ACC 改變,如下圖:





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1