找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5108|回复: 2
收起左侧

STC单片机xdata的使用疑惑

[复制链接]
ID:33998 发表于 2018-10-30 11:56 | 显示全部楼层 |阅读模式
按照STC8的数据手册 #define uchar unsigned char  uchar xdata a;
这样定义可以编译都是程序异常不知道怎么回事。
那我大神可以科普一下STC xdata 的使用方法吗?




回复

使用道具 举报

ID:89515 发表于 2018-10-31 21:05 | 显示全部楼层
这个不是XDATA的问题吧,你的宏定义有问题。而且XDATA的申明只是把变量放到内部扩展RAM中,没有其他意义。你就这样“XDATA uchar a”就可以了
回复

使用道具 举报

ID:388197 发表于 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;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表