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; 回复