阅读:1418回复:2
几个51的问题!
请教各位大侠:
1 51系列的单片机只有128byte的内部RAM,在52系列中又增加了128个字节的ram,假如要声明一个变量在前者的区域,在KEIL c中,是不是应该用DATA 关键字表明,如果声明的标量在后者的区域,是不是应该用IDATA表明??如果声明的变量超出了128个字节后,还声明变量,但是没有用IDATA表明,请问是不是编译器会自动把它们定义到IDATA区? 2 对于片外扩展的RAM,地址空间为2000-4000,如果想定义一个char【100】的数组在这个区域,请问应该怎么办? |
|
沙发#
发布于:2004-08-19 22:18
:P :mad: ;) :( :)多看看书吧?
|
|
板凳#
发布于:2004-08-21 20:55
值得注意的一点:
51系列中,只有低128字节的RAM,它和SFR的地址是连续的,而52系列中,高128字节的RAM和SFR的地址是重合的,究竟要访问哪一块,可以通过不同的寻址方式来区分,访问高128字节RAM采用寄存器间接寻址,访问SFR则只能采用直接寻址,访问低128字节RAM时,两种寻址方式都可以 现在回答第一个问题: (1)根据以上可知 用idata定义 (2)好像会出错 第二个问题 xdata char[100]; 或者 pdata char[100] |
|