51微控制器關於片內片外儲存器的操作方法總結

2021-06-09 04:03:49 字數 867 閱讀 5286

一、

char addr,i;

addr=0x30; //起始位址

for(i=0;i<16;i++)

addr=0x30;

具體意思是:

首先addr自加一,因為++在變數後面,所以該表示式使用自加之前的值,比如第一次迴圈,表示式使用的addr是0x30.

第二步,將0x30強制轉換為char idata型別指標。

第三步,解引用該指標,將i的值賦給該指標指向的位址

二、 char addr1,i;

addr = 0x2000;

addr1 = 0x30;  //片內,片外儲存區首位址分別為30h、2000h

for(i=0;i<16;i++)  

addr=0x2000;

for(i=0;i<16;i++)   //從片外儲存區讀取資料

三、 char addr,i,j,t;

addr=0x30;         //資料塊的首位址

for(i=0;i<16;i++)

for(i=0;i<15;i++)        //採用冒泡法排序

for(j=i+1;j<16;j++)}

四、 char aa,i;

p1=0xff;

while(1)

}break;

case 0xfe:       //第乙個開關按下時,則給目標位址一賦1

}break;

case 0xfd:       //第二個開關按下時,則給目標位址一賦2

}break;

case 0xfb:       //第三個開關按下時,則給目標位址一賦3

}break;

default: break;}}

51微控制器資源擴充套件 從片內ROM跳轉到片外ROM

源於一年前想自己動手給51寫個os,編譯選large模式,除錯時整個流程都跑的好好的,可是燒寫到片上後得不到預期的效果,後來查書才知道51微控制器片上只有4krom,如果沒有擴充套件片外rom,當訪問4k以外的程式空間,程式指標又會回到最開始執行。參考手冊擴充套件片外rom後,能訪問達64k的程式空...

51微控制器資料傳送 片內到片外(組合語言實現)

把儲存在片內ram 40h開始的16個單元 位址為40h到4fh 內容依次搬移到片外ram 3000h開始的16個單元 位址為3000h到300fh 內部ram 40h 4fh 單元位址內資料搬移到片外ram 3000h 300fh mov r0,40h 內部ram開始位址 mov dptr,300...

51微控制器的內部結構 51微控制器儲存器記憶體詳解

51微控制器當中的儲存器從功能性上來劃分可以分為程式儲存器與資料儲存器。一般來說微控制器儲存器的儲存空間是能夠進行儲存空間拓展的,但是如何進行拓展則需要根據不同的儲存器型別進行選擇。訪問儲存空間時,需要用到兩個指標變數,為dptr和pc。其中pc為程式計數器,指向下一條需要執行的指令的位址,dptr...