任務
將單片機片內存儲器存儲區首地址設置爲60H、片外存儲器存儲區首地址設置爲4000H,存入片內存儲區內容爲04H-14H共17個字節 ,讀取片內首地址爲60H單元內容,將該內容傳送到片外數據存儲器存儲區中保存(首地址4000H),將保存在片外數據區數據依次取出送P1。
代碼
#include <reg52.h>
#include <absacc.h> //便於絕對地址訪問
#define uint unsigned int
#define uchar unsigned char
#define lenth 16
void delay( )
{
uchar i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
void main()
{
int i;
uint d_addr=0x4000,s_addr=0x60; //定義絕對首地址,循環賦值和讀取
for(i=1;i<=17;++i){
DBYTE[0x60+i-1]=0x04+i-1; //從內部存儲器的0x60開始,存入片內存儲區內容爲04H-14H共17個字節
}
XBYTE[0x4000]=DBYTE [0x60]; //把內部存儲器60H單元數據送至外部存儲器
P1=XBYTE[0x4000]; //外部存儲器4000H單元數據送至P1口
}
結果
記錄程序運行結果截圖(內部存儲器RAM(D:0x40 ~ D:0x14)、外部RAM(x: 0x4000 ~ x: 0x400F)以及P1口的內容。
運行一次for循環D:0x60H~D:0x70H裏的內容:
運行完所有for循環D:0x60H~D:0x70H裏的內容
運行完程序x: 0x4000~ x: 0x400F裏的內容。
運行到最後一條語句前p1口的內容:
protues仿真