#include <STC15F2K60S2.H>
#include <absacc.h>
char idata x1 _at_ 0x9C;
char data x2 _at_ 0x30;
char xdata x3 _at_ 0x1130;
void RAM_low128Bdata();//*******访问低128字节RAM数据区
void RAM_hi128Bdata();//*******访问高128字节RAM数据区
void XRAM_fun();//*******访问XRAM

void main(){

	RAM_low128Bdata();//*******访问低128字节RAM数据区：向data物理地址0x30写数据0x11
	
  RAM_hi128Bdata();//*******访问高128字节RAM数据区：向idata物理地址0x9C写数据0xBB
	
	XRAM_fun();//**********访问片外RAM数据区：向xdata物理地址0x1130写数据0xAC
}



//*******访问低128字节RAM数据区：向data物理地址0x30写数据0x11
void RAM_low128Bdata(){
	
		//方式1：指针
	char data *p;
	p = 0x30;
	*p = 0x11;
	
	
	//方式2：用绝对宏
	DBYTE[0x30] = 0x11;
	
	//方式3：用_at_关键字指定变量在存储空间的绝对地址
	x2 = 0x11;

}


//*******访问高128字节RAM数据区：向idata物理地址0x9C写数据0xBB
void RAM_hi128Bdata(){
	
	//方式1：指针
	
	char idata *p;
	p = 0x9c;
	*p = 0xAA;
	
  //方式2：指针
//	char  *p2;
//	p2 = (char idata *)0x9C;
//	*p2 = 0xAA;
	
	//方式3：用绝对宏
//	DBYTE[0x9C] = 0xAA;
	
	//方式4：用_at_关键字指定变量在存储空间的绝对地址
	x1 = 0xAA;
	

}


//**********访问片外RAM数据区：向xdata物理地址0x1130写数据0xAC
void XRAM_fun(){
	
	//方式1：指针
	
	char xdata *p;
	p = 0x1130;
	*p = 0xAC;
	
	//方式2：指针
	
//	char xdata *pp;
//	pp= (char xdata *)0x1130;
//	*pp = 0xAC;

	//方式3：用绝对宏

	XBYTE[0x1130] = 0xAC;
	
	//方式4：用_at_关键字指定变量在存储空间的绝对地址
	x3 = 0xAC;
}
