在8051的片内RAM中的高128字节,有两个地址空间,一个是SFR寄存器空间,只可直接访问,而另一个空间是存储空间只可间接访问。
在C语言中,寄存器这样定义sfr ACC=0xXX;这样sfr就相当于一个数据结构,如同int float一样。可是它不可以(sfr)(0xEF)这样的数据类型转换,也不可以定义数组:
sfr PCON[2]={0xEE,0xF3};这样也是出错的。
我的问题是,我想利用数组的方式可以选择的访问寄存器,如同,给寄存器地址,0xE1,0xE2,0xE3;赋值。如同数组一样赋值,EX[3]={0xE1,0xE2,0xE3};
for(i=0;i<3;I++)
EX=0x12; //EX就代表了那三个寄存器,是给他们分别赋值。
谢谢各位,我应该怎么实现在C语言中实现这中给寄存器赋值的方法呢。 |