whmjack
驱动小牛
驱动小牛
  • 注册日期2003-09-17
  • 最后登录2007-04-26
  • 粉丝0
  • 关注0
  • 积分290分
  • 威望29点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
阅读:1418回复:2

几个51的问题!

楼主#
更多 发布于:2004-08-17 17:09
请教各位大侠:
1 51系列的单片机只有128byte的内部RAM,在52系列中又增加了128个字节的ram,假如要声明一个变量在前者的区域,在KEIL c中,是不是应该用DATA 关键字表明,如果声明的标量在后者的区域,是不是应该用IDATA表明??如果声明的变量超出了128个字节后,还声明变量,但是没有用IDATA表明,请问是不是编译器会自动把它们定义到IDATA区?
2 对于片外扩展的RAM,地址空间为2000-4000,如果想定义一个char【100】的数组在这个区域,请问应该怎么办?
haotz
驱动牛犊
驱动牛犊
  • 注册日期2002-04-11
  • 最后登录2010-09-27
  • 粉丝0
  • 关注0
  • 积分87分
  • 威望10点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-19 22:18
 :P :mad: ;) :( :)多看看书吧?
lb_business
驱动牛犊
驱动牛犊
  • 注册日期2004-08-19
  • 最后登录2004-08-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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]
游客

返回顶部