STC单片机xdata的使用疑惑

STC单片机xdata的使用疑惑 

[复制链接]
  

 jxrjamu 发表于 2018-10-30 11:56 | 显示全部楼层

按照STC8的数据手册 #define uchar unsigned char  uchar xdata a;
这样定义可以编译都是程序异常不知道怎么回事。
那我大神可以科普一下STC xdata 的使用方法吗?



 
 
 回复

举报

  

 mengzhixinheng 发表于 2018-10-31 21:05 | 显示全部楼层

这个不是XDATA的问题吧,你的宏定义有问题。而且XDATA的申明只是把变量放到内部扩展RAM中,没有其他意义。你就这样“XDATA uchar a”就可以了
 
 回复

举报

  

 cjm82 发表于 2018-11-1 10:32 | 显示全部楼层

XDATA区为内部扩展RAM,基本上现在的51片子的RAM分内部RAM和内部扩展RAM,内部RAM一般为256字节,而内部扩展RAM区则根据不同的型号有所差别,一般同品牌,价钱越贵,基本内部扩展RAM容量也越大.内部RAM KEIL里对应的关键字为idata,其低128字节可以简单理解为生成代码最少读写速度最快,KEIL里对应的关键字为data.内部扩展RAM,KEIL对应的关键字为XDATA,通常内部RAM不够用的时候,会在定义变量时加上xdata关键字.详见相关参考手册.
详细了解这些需要比较好的汇编和微机原理基础,一般只需大概了解即可.
此外常用的还有bdata,其好处就是可以用sbit类型指向其具体一位.这在扩展IO口的时候经常用.

bdata unsigned char P9;
sbit Led1 = P9^0;
 
 

回复

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值