<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系列單片機W77E58的存儲器訪(fǎng)問(wèn)

增強型51系列單片機W77E58的存儲器訪(fǎng)問(wèn)

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

程序2:數據的方法
#define mem ((unsigned char xdata)0x0) /*定義數據指針,片內或片外*/
PMR 1 =1; /*選擇片內SRAM*/
Mem[12]=0x34; /*數據0x34存入片內SRAM地址為12的單元中*/
Mem[1200]=0x56; /*由于地址超出1FFH,數據0x56存入片外SRAM*/
PMR =0xfe; /*選擇片外SRAM*/
Mem[12]=0x78; /*數據0x78存入片外SRAM地址為12的單元中*/

3 雙數據指針的應用

與標準的8052相同,也使用MOVX指令外部數據。MOVX指令有兩種:MOVX@Ri和MOVX@DPTR。用MOVX@Ri 指令對數據進(jìn)行時(shí),16位的尋址地址由兩部分組成,其中地址的低8位存在Ri中,而地址的高8位由P2口提供。用MOVX@DPTR指令對數據存儲器進(jìn)行訪(fǎng)問(wèn)時(shí),16位地址全部由數據指針DPTR提供。

有兩個(gè)數據指針,一個(gè)是所有51CPU所共有的DPTR,另一個(gè)是W77E58增加的DPTR1。用MOVX@DPTR對數據存儲器訪(fǎng)問(wèn)時(shí),究間是DPTR起作用,還是DPTR1起作用,應由數據指針選擇位DPS來(lái)決定。當DPS=0時(shí),DPTR有效;DPS=1,DPTR1有效。改變 DPS的最快捷的方法是使用INC指令。

下面的程序段是使用兩個(gè)數據指針進(jìn)行數據塊移動(dòng)的例子,我們可以發(fā)現兩個(gè)數據指針的使用為程序編寫(xiě)帶來(lái)了極大方便。

程序3:兩個(gè)數據指針的應用
MOV R2,#CNT ;R2是循環(huán)變量,裝入需要移動(dòng)的字節數
MOV DPS,#00H ;清除DPS,使DPTR有效
MOV DPTR,#DHDL ;DPTR中裝入塊移動(dòng)的目的地址
INC DPS ;設置DPS,使DPTR1有效
MOV DPTR,#SHSL ;DPTR中裝入塊移動(dòng)的源地址
LOOP:
MOVC A,@DPTR ;從源地址中取數據
INC DPTR ;源地址+1
DEC DPS ;清除DPS,使DPTR有效
MOVX @DPTR,A ;數據存入目的地址
INC DPTR ;目的地址+1
INC DPS ;設置DPS,使DPTR1有效
DJNZ R2,LOOP ;循環(huán)直到所有移動(dòng)操作完成

在進(jìn)行塊長(cháng)度為50的數據移動(dòng)時(shí),如果用標準的8052,需要15720個(gè)機器周期;如果用W77E58和一個(gè)數據指針,則需要5240個(gè)機器周期;而上例中W77E58使用兩個(gè)數據批針,因而只需要3048個(gè)機器周期就可以了。很明顯,隨著(zhù)數據塊的增大,節省時(shí)間的效果將更加明顯。



評論


相關(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>