婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

10課:單片機數據傳送類指令

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2017-7-7

單片機的累加器A與片外RAM之間的數據傳遞類指令

MOVX A,@Ri

MOVX @Ri,A

MOVX A,@DPTR

MOVX @DPTR,A

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

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

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

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

MOV DPTR,#0100H

MOVX A,@DPTR

MOV DPTR,#0200H

MOVX @DPTR,A

程序存儲器向累加器A傳送指令

MOVC A,@A+DPTR     本指令是將ROM中的數送入A中。本指令也被稱為單片機查表指令,常用此指令來查一個已做好在ROM中的表格      說明:

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

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

例:有一個數在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中的值則為TABLE,則最終確定的ROM單元的地址就是TABLE+2,也就是到這個單元中去取數,取到的是4,顯然它正是2的平方。其它數據也能類推。
 

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

能通過以下的例程再來看一看標號的含義:

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。這個能看懂了吧?

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

如果這樣寫程序的話,在寫程序時,我們就必須確定這張表格在ROM中的具體的位置,如果寫完程序后,又想在這段程序前插入一段程序,那么這張表格的位置就又要變了,要改ORG 100H這句話了,我們是經常需要修改程序的,那多麻煩,所以就用標號來替代,只要一編譯程序,位置就自動發生變化,我們把這個麻煩事交給計算機��指我們用的電腦去做了。

堆棧操作

PUSH direct

POP direct

第一條指令稱之為推入,就是將direct中的內容送入堆棧中,第二條指令稱之為彈出,就是將堆棧中的內容送回到direct中。推入指令的執行過程是,首先將SP中的值加1,然后把SP中的值當作地址,將direct中的值送進以SP中的值為地址的RAM單元中。例:

MOV SP,#5FH

MOV A,#100

MOV B,#20

PUSH ACC

PUSH B

則執行第一條PUSH ACC指令是這樣的:將SP中的值加1,即變為60H,然后將A中的值送到60H單元中,因此執行完本條指令后, 內存60H單元的值就是100,同樣,執行PUSH B時,是將SP+1,即變為61H,然后將B中的值送入到61H單元中,即執行完本條指令后,61H單元中的值變為20。

POP指令的在單片機中執行是這樣的,首先將SP中的值作為地址,并將此地址中的數送到POP指令后面的那個direct中,然后SP減1。

接上例:

POP B

POP ACC

則執行過程是:將SP中的值(現在是61H)作為地址,取61H單元中的數值(現在是20),送到B中,所以執行完本條指令后B中的值是20,然后將SP減1,因此本條指令執行完后,SP的值變為60H,然后執行POP ACC,將SP中的值(60H)作為地址,從該地址中取數(現在是100),并送到ACC中,所以執行完本條指令后,ACC中的值是100。

這有什么意義呢?ACC中的值本來就是100,B中的值本來就是20,是的,在本例中,的確沒有意義,但在實際工作中,則在PUSH B后一般要執行其他指令,而且這些指令會把A中的值,B中的值改掉,所以在程序的結束,如果我們要把A和B中的值恢復原值,那么這些指令就有意義了。

還有一個問題,如果我不用堆棧,比如說在PUSH ACC指令處用MOV 60H,A,在PUSH B處用指令MOV 61H,B,然后用MOV A,60H,MOV B,61H來替代兩條POP指令,不是也一樣嗎?是的,從結果上看是一樣的,但是從過程看是不一樣的,PUSH和POP指令都是單字節,單周期指令,而MOV指令則是雙字節,雙周期指令。更何況,堆棧的作用不止于此,所以一般的計算機上都設有堆棧,單片機也是一樣,而我們在編寫子程序,需要保存數據時,常常也不采用后面的辦法,而是用堆棧的辦法來實現。

例:寫出以下單片機程序的運行結果

MOV 30H,#12

MOV 31H,#23

PUSH 30H

PUSH 31H

POP 30H

POP 31H

結果是30H中的值變為23,而31H中的值則變為12。也就兩者進行了數據交換。從這個例程能看出:使用堆棧時,入棧的書寫次序和出棧的書寫次序必須相反,才能保證數據被送回原位,不然就要出錯了。

作業:在MCS51下執行上面的例程,注意觀察內存窗口和堆棧窗口的變化。
 

Tags:單片機教程,數據傳送類指令  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av
<button id="4i884"></button>
  • <abbr id="4i884"><source id="4i884"></source></abbr>
  • <code id="4i884"><tr id="4i884"></tr></code>
  • <rt id="4i884"></rt>
    <li id="4i884"></li>
  • <rt id="4i884"><tr id="4i884"></tr></rt>
  • 日本精品一区在线观看| 国产主播中文字幕| 999在线精品视频| 宅男噜噜噜66国产免费观看| 日韩中文字幕在线视频观看| 男人c女人视频| 日韩精品一区二区免费| 99精品一区二区三区的区别| 日本黄色a视频| 色男人天堂av| 日韩欧美中文视频| 红桃一区二区三区| 成年人网站国产| 黄页免费在线观看视频| 美女日批免费视频| 无码精品国产一区二区三区免费| 亚洲成熟丰满熟妇高潮xxxxx| 欧美视频在线播放一区| 免费观看日韩毛片| 天天影视综合色| 91精品无人成人www| 日本一二三区在线| 奇米777四色影视在线看| 国产午夜精品视频一区二区三区| 2022中文字幕| 国产日产欧美视频| www.色就是色.com| a级黄色片免费| 韩国一区二区av| av在线网站免费观看| 大伊香蕉精品视频在线| 日韩欧美xxxx| 真人做人试看60分钟免费| 自慰无码一区二区三区| 五月天开心婷婷| 久久精品国产sm调教网站演员| 国产a级片免费观看| 日本特黄在线观看| 日本精品久久久久中文字幕| 成人在线观看www| 欧美日韩怡红院| 国产精品又粗又长| 欧美在线a视频| 一本久道综合色婷婷五月| 91xxx视频| 婷婷丁香激情网| 波多野结衣家庭教师在线| www.桃色.com| 超碰超碰在线观看| 欧美成人三级在线视频| 欧美 日韩 国产 在线观看| 99草草国产熟女视频在线| www.xxx麻豆| 国产精品中文久久久久久| 国产精品亚洲二区在线观看| 男人天堂新网址| av不卡在线免费观看| 国产精品一区二区羞羞答答| 亚洲熟妇无码一区二区三区| 波多野结衣激情| 污视频在线观看免费网站| 校园春色 亚洲色图| www.国产区| 久久9精品区-无套内射无码| 国产一区二区视频播放| 国产精品国三级国产av| 精产国品一二三区| 黄色一级片网址| 天天干天天曰天天操| 五月天国产视频| 超碰在线免费av| 国产日韩视频在线播放| www.色.com| 国产精品日韩三级| 国产911在线观看| 热久久最新网址| 成人免费性视频| 91好吊色国产欧美日韩在线| 国产午夜福利在线播放| www黄色av| 污污视频网站在线| 法国空姐在线观看免费| 欧美a级免费视频| 中文字幕日本最新乱码视频| 午夜精品久久久内射近拍高清| 三级a在线观看| 国内av免费观看| 美女日批免费视频| 亚洲黄色a v| 亚洲色图都市激情| 久久久久狠狠高潮亚洲精品| 天天爽人人爽夜夜爽| 国产精品亚洲天堂| 欧美国产亚洲一区| 中文字幕 欧美日韩| 久久久天堂国产精品| 国产h视频在线播放| 天堂网在线免费观看| 国产精品igao激情视频| av网站在线观看不卡| 99久久99精品| 北条麻妃在线一区| 国内精品国产三级国产99| 国产精品亚洲a| 久久久天堂国产精品| www.超碰com| www.av毛片| 中文字幕第22页| www.超碰com| 免费特级黄色片| 深夜做爰性大片蜜桃| 黄色a级片免费| 国产freexxxx性播放麻豆| 天天操,天天操| 免费在线激情视频| 黄色激情在线视频| 秋霞在线一区二区| 亚洲少妇久久久| 无码人妻丰满熟妇区毛片18| 欧美 亚洲 视频| 亚洲视频在线不卡| 亚洲精品国产一区二区三区| 国产综合av在线| 久久久亚洲精品无码| 中文字幕の友人北条麻妃| 九九久久久久久| 男人添女人下面免费视频| 国产日韩成人内射视频| 国产精品丝袜久久久久久消防器材| 黄色片免费在线观看视频| 四虎永久免费网站| 国产又粗又长又爽又黄的视频| 亚欧在线免费观看| 污视频免费在线观看网站| 日本999视频| 欧美三级午夜理伦三级富婆| 日本男人操女人| 手机在线免费观看毛片| 国产熟女高潮视频| 国产又大又黄又粗又爽| 精品一卡二卡三卡| 午夜国产一区二区三区| 国产精品区在线| 亚洲图片 自拍偷拍| 三级黄色片免费看| 欧美精品在欧美一区二区| www.日本三级| 免费毛片小视频| 天天干天天综合| 国产精品久久成人免费观看| 成人在线视频一区二区三区| 欧美午夜性视频| 国产一级特黄a大片免费| 久久久久久久久久久久久久久国产| 在线观看日本www| 国产 日韩 欧美在线| 北条麻妃在线视频| 999久久久精品视频| 成人免费在线视频播放| 激情综合在线观看| 青青草原国产在线视频| 欧美一区二区激情| 日本www.色| 久久综合久久网| 中文字幕在线视频精品| 久久亚洲国产成人精品无码区| 国产又黄又猛视频| 最新av网址在线观看| 韩国一区二区av| 狠狠精品干练久久久无码中文字幕| 日韩少妇内射免费播放18禁裸乳| www.日本一区| 国自产拍偷拍精品啪啪一区二区| 亚洲一区日韩精品| 日本www在线视频| 日韩不卡视频一区二区| 中文字幕国产免费| 午夜肉伦伦影院| 国产一线二线三线女| 911福利视频| 国产第一页视频| 久久久久久免费看| 性欧美18一19内谢| 欧美精品久久久久久久久25p| 国产va亚洲va在线va| 国产资源中文字幕| 亚洲精品www.| 天天操天天爽天天射| 亚洲爆乳无码专区| 国产精品国产亚洲精品看不卡| 99re99热| 中文字幕乱码免费| 男同互操gay射视频在线看| 岛国毛片在线播放| 中文字幕网av| 日日摸天天爽天天爽视频| 国产视频九色蝌蚪| 国产免费毛卡片| 国产精品视频一区二区三区四区五区 | 国产精品波多野结衣|