/*实验内容:
将单片机片内RAM存储区首地址设置为60H、片外存储器存储区首地址设置为4000H,存入片内存储区内容为04H-14H共17个字节 ,读取片内首地址为60H单元内容,将该内容传送到片外数据存储器存储区中保存(首地址4000H),将保存在片外数据区数据依次取出送P1。*/
#include <reg52.h>
#include <absacc.h> //便于绝对地址访问
#define uint unsigned int
#define uchar unsigned char
sbit LED=P2^7;
void delay( )
{
uchar i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
void main()
{
uchar temp;
int i;
uint d_addr=0x4000,s_addr=0x60; //定义绝对首地址,循环赋值和读取
LED=1;
for(i=0;i<17;i++)
{
DBYTE[0x60+i]=0x04+i; //向片内RAM 0x60地址开始写入数据04H-14H
}
for(i=0;i<17;i++)
{
XBYTE[0x4000+i]=DBYTE[0x60+i]; //将片内RAM的04H-14H正向复制到片外RAM 0x4000开始处
temp=XBYTE[0x4000+i]; //正向读取片外数据
P1=~temp; //向P1口送显示的数据,控制外部LED的亮灭
delay();
}
LED=0; //点亮发光二极管D1,表示数据传递成功
while(1);
}