51單片機實驗課2 數據區傳送程序

任務
將單片機片內存儲器存儲區首地址設置爲60H、片外存儲器存儲區首地址設置爲4000H,存入片內存儲區內容爲04H-14H共17個字節 ,讀取片內首地址爲60H單元內容,將該內容傳送到片外數據存儲器存儲區中保存(首地址4000H),將保存在片外數據區數據依次取出送P1。
代碼:

#include <reg51.h>
#include <absacc.h>        //便於絕對地址訪問
#define uint unsigned int 
#define uchar unsigned char 
#define lenth 17
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開始,存入17個字節
	}
XBYTE[0X4000]=DBYTE[0X60];//把內部存儲器的60H單元數據送至外部存儲器
	P1=XBYTE[4000];//外部存儲器數據傳入P1口
}

在這裏插入圖片描述

圖3.1.4 執行單步調試查看內部儲存器RAM內容

在這裏插入圖片描述

圖3.1.5 執行完整程序查看0x4000外部儲存器內容

在這裏插入圖片描述

圖1.2.1 proteus仿真結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章