C51 中data, idata, xdata, pdata, code的作用
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器。片内程序存储器还分为直接寻址区和间接寻址区。
data:将数据存储在0x00 - 0x7f的128B的RAM空间,可以用acc直接读写,速度最快,生成的代码也最少。
idata:将数据存储在0x00 - 0xff的256B的RAM空间,与data的区别在于访问方式不同,idata数据需要通过间接方式访问。
xdata:将数据存储在外部0x0000 - 0xffff RAM空间,用DPTR访问。
pdata:将数据存储在外部扩展RAM的低256字节空间。
code:将数据存储在ROM区域。
bdata:C51自定义语句,非标准C关键字。主要用于定义8位或以上的位访问。
例如:
1 char bdata MODE; 2 3 sbit MODE_7 = MODE^7; 4 sbit MODE_6 = MODE^6; 5 sbit MODE_5 = MODE^5; 6 sbit MODE_4 = MODE^4; 7 sbit MODE_3 = MODE^3; 8 sbit MODE_2 = MODE^2; 9 sbit MODE_1 = MODE^1; 10 sbit MODE_0 = MODE^0;