日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

當(dāng)前位置:電子發(fā)燒友網(wǎng) > 圖書頻道 > 電子 > 《單片機(jī)原理與應(yīng)用》 > 第3章 MCS-51單片機(jī)指令系統(tǒng)

第2節(jié) 數(shù)據(jù)傳遞指令

  單片機(jī)內(nèi)部的端口寄存器與片外引腳是直接相連的,數(shù)據(jù)通過單片機(jī)內(nèi)部數(shù)據(jù)總線傳送到端口寄存器(用數(shù)據(jù)傳送指令完成數(shù)據(jù)的傳送),結(jié)合發(fā)光二極管硬件電路,二極管便發(fā)亮了。

  MCS-51單片機(jī)有哪些數(shù)據(jù)傳遞指令?

  在剛才的任務(wù)中,我們提到了數(shù)據(jù)傳送指令以及數(shù)據(jù)傳送操作,那么到底什么是單片機(jī)的數(shù)據(jù)傳送操作?什么樣的指令又叫數(shù)據(jù)傳送指令呢?

  在計(jì)算機(jī)中將數(shù)據(jù)信息從源存儲(chǔ)地址傳送到目標(biāo)存儲(chǔ)地址的操作叫數(shù)據(jù)傳送操作,完成數(shù)據(jù)傳送的指令叫數(shù)據(jù)傳送指令。

  MCS-51單片機(jī)的數(shù)據(jù)傳送指令共有29條,數(shù)據(jù)傳送指令的操作是把源操作數(shù)傳送到目的操作數(shù),指令執(zhí)行完成后,源操作數(shù)不變,目的操作數(shù)等于源操作數(shù)。如果要求在進(jìn)行數(shù)據(jù)傳送時(shí),目的操作數(shù)不丟失,則不能用直接傳送指令,而采用交換型的數(shù)據(jù)傳送指令,數(shù)據(jù)傳送指令不影響標(biāo)志C,AC和OV,但可能會(huì)對(duì)奇偶標(biāo)志P有影響。

  (1) 以累加器A為目的操作數(shù)類指令(4條)

  這4條指令的作用是把源操作數(shù)指向的內(nèi)容送到累加器A。有直接、立即數(shù)、寄存器和寄存器間接尋址方式:

  MOV A,data ;(data)→(A) 直接單元地址中的內(nèi)容送到累加器A

  MOV A,#data ;#data→(A) 立即數(shù)送到累加器A中

  MOV A,Rn ;(Rn)→(A) Rn中的內(nèi)容送到累加器A中

  MOV A,@Ri ;((Ri))→(A) Ri內(nèi)容指向的地址單元中的內(nèi)容送到累加器A。

  例如:任務(wù)中“累加器A控制P1口的程序”里有一條MOV A,#0AAH指令就屬于此類。

  (2) 以寄存器Rn為目的操作數(shù)的指令(3條)

  這3條指令的功能是把源操作數(shù)指定的內(nèi)容送到所選定的工作寄存器Rn中。有直接、立即和寄存器尋址方式:

  MOV Rn,data ;(data)→(Rn) 直接尋址單元中的內(nèi)容送到寄存器Rn中

  MOV Rn,#data ;#data→(Rn)立即數(shù)直接送到寄存器Rn中。

  MOV Rn,A ;(A)→(Rn) 累加器A中的內(nèi)容送到寄存器Rn中。

  例如:任務(wù)中“開幕式和閉幕式彩燈程序”里的 MOV R6,#200

  MOV R7,#200

  ……

  指令屬于此類。

  (3) 以直接地址為目的操作數(shù)的指令(5條)

  這組指令的功能是把源操作數(shù)指定的內(nèi)容送到由直接地址data所選定的片內(nèi)RAM中。有直接、立即、寄存器和寄存器間接4種尋址方式:

  MOV data,data ;(data)→(data) 直接地址單元中的內(nèi)容送到直接地址單元。

  MOV data,#data ;#data→(data) 立即數(shù)送到直接地址單元。

  MOV data,A ;(A)→(data) 累加器A中的內(nèi)容送到直接地址單元。

  MOV data,Rn ;(Rn)→(data) 寄存器Rn中的內(nèi)容送到直接地址單元。

  MOV data,@Ri ;((Ri))→(data) 寄存器Ri中的內(nèi)容指定的地址單元中數(shù)據(jù)送到直接地址單元。

  例如:任務(wù)中“流水式彩燈程序”里的 MOV P1,#0AAH。任務(wù)中“開幕式和閉幕式彩燈程序”里MOV P1,A指令屬于此類。應(yīng)該注意,這里DATA是用寄存器的名字表示的。

  (4) 以間接地址為目的操作數(shù)的指令(3條)。

  這組指令的功能是把源操作數(shù)指定的內(nèi)容送到以Ri中的內(nèi)容為地址的片內(nèi)RAM中。有直接、立即和寄存器3種尋址方式:

  MOV @Ri,data ;(data)→((Ri)) 直接地址單元中的內(nèi)容送到以Ri中的內(nèi)容為地址的RAM單元。

  MOV @Ri,#data ;#data→((Ri)) 立即數(shù)送到以Ri中的內(nèi)容為地址的RAM單元。

  MOV @Ri,A ;(A)→((Ri)) 累加器A中的內(nèi)容送到以Ri中的內(nèi)容為地址的RAM單元。

  (5) 查表指令(2條)

  這組指令的功能是對(duì)存放于程序存儲(chǔ)器中的數(shù)據(jù)表格進(jìn)行查找傳送,使用變址尋址方式:

  MOVC A,@A+DPTR ;((A))+(DPTR)→(A) 表格地址單元中的內(nèi)容送到累加器A中。

  MOVC A,@A+PC ;((PC))+1→(A),((A))+(PC)→(A) 表格地址單元中的內(nèi)容送到累加器A中。

  在任務(wù)中“開幕式閉幕式彩燈程序”里就有 MOVC A,@ A + DPTR 指令講預(yù)先制好的表格數(shù)據(jù)取出來(lái)。

  (6) 累加器A與片外數(shù)據(jù)存儲(chǔ)器RAM傳送指令(4條)

  這4條指令的作用是累加器A與片外RAM間的數(shù)據(jù)傳送。使用寄存器尋址方式:

  MOVX @DPTR,A ;(A)→((DPTR)) 累加器中的內(nèi)容送到數(shù)據(jù)指針指向片外RAM地址中。

  MOVX A, @DPTR ;((DPTR))→(A) 數(shù)據(jù)指針指向片外RAM地址中的內(nèi)容送到累加器A中。

  MOVX A, @Ri ;((Ri))→(A) 寄存器Ri指向片外RAM地址中的內(nèi)容送到累加器A中。

  MOVX @Ri,A ;(A)→((Ri)) 累加器中的內(nèi)容送到寄存器Ri指向片外RAM地址中。

  (7) 堆棧操作類指令(2條)

  這4類指令的作用是把直接尋址單元的內(nèi)容傳送到堆棧指針SP所指的單元中,以及把SP所指單元的內(nèi)容送到直接尋址單元中。這類指令只有兩條,下述的第一條常稱為入棧操作指令,第二條稱為出棧操作指令。需要指出的是,單片機(jī)開機(jī)復(fù)位后,(SP)默認(rèn)為07H,但一般都需要重新賦值,設(shè)置新的SP首址。入棧的第一個(gè)數(shù)據(jù)必須存放于SP+1所指存儲(chǔ)單元,故實(shí)際的堆棧底為SP+1所指的存儲(chǔ)單元。

  PUSH data ;(SP)+1→(SP),(data)→(SP) 堆棧指針首先加1,直接尋址單元中的數(shù)據(jù)送到堆棧指針SP所指的單元中。

  POP data ;(SP)→(data)(SP)-1→(SP), 堆棧指針SP所指的單元數(shù)據(jù)送到直接尋址單元中,堆棧指針SP再進(jìn)行減1操作。

  (8) 交換指令(5條)

  這5條指令的功能是把累加器A中的內(nèi)容與源操作數(shù)所指的數(shù)據(jù)相互交換。

  XCH A,Rn ;(A)←→(Rn)累加器與工作寄存器Rn中的內(nèi)容互換。

  XCH A,@Ri ;(A)←→((Ri))累加器與工作寄存器Ri所指的存儲(chǔ)單元中的內(nèi)容互換。

  XCH A,data ;(A)←→(data)累加器與直接地址單元中的內(nèi)容互換。

  XCHD A,@Ri ;(A3-0)←→((Ri)3-0)累加器與工作寄存器Ri所指的存儲(chǔ)單元中的內(nèi)容低半字節(jié)互換。

  SWAP A ;(A3-0)←→(A7-4)累加器中的內(nèi)容高低半字節(jié)互換。

  (9) 16位數(shù)據(jù)傳送指令(1條)

  這條指令的功能是把16位常數(shù)送入數(shù)據(jù)指針寄存器。

  MOV DPTR,#data16 ;(data16)H→(DPH);(data16)L→(DPL)。16位常數(shù)的高8位送到DPH,低8位送到DPL。

?
正镶白旗| 榆树市| 南宫市| 湘乡市| 柘城县| 庆云县| 清苑县| 莆田市| 卢湾区| 沁阳市| 敦化市| 青海省| 英超| 策勒县| 万源市| 通城县| 泰来县| 兴宁市| 文成县| 安康市| 原平市| 商水县| 霞浦县| 任丘市| 乐昌市| 阿勒泰市| 平南县| 敦化市| 宜兴市| 新巴尔虎左旗| 金阳县| 思南县| 大同市| 鸡泽县| 平遥县| 白朗县| 抚顺市| 红桥区| 萍乡市| 从江县| 清丰县|