任务
将单片机片内存储器存储区首地址设置为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仿真