一、数据类型
sbit、sfr、sfr16归于C51的扩展数据类型;
1、sbit:界说可位寻址类型的变量,用于位寻址,从位寻址字节中界说位变量;sbit界说的变量归于特别功用寄存器类型的位变量,寄存在特别功用寄存器区;
sbit的三种方式:
sbit 位变量名 = 位地址;
sbit 位变量名 = 特别功用寄存器名 ^ 位方位;
sbit 位变量名 = 字节地址 ^ 位方位;
如:
sbit P1_0 = P1 ^ 0;
sbit P1_1 = P1 ^ 1;
sbit P1_2 = P2 ^ 2;
2、sfr/sfr16:别离界说8位和16位的特别功用寄存器类型的变量,这种类型的变量寄存的是硬件的物理地址码;
sfr/sfr16的方式:
sfr 特别功用寄存器名 = 特别功用寄存器地址常数(地址常数);
sfr16 特别功用寄存器名 = 特别功用寄存器地址常数(地址常数);
如:
sfr P1 = 0x90; //界说P0口的物理地址码;
sfr P2 = 0xA0; //界说P1口的物理地址码;
sfr16 T2 = 0xCC; //界说T2的物理地址码;
留意:sbit/sfr/sfr16界说的变量都寄存在地址[80H,FFH]这16字节的地址范围内;
二、新添加的关键字
interrupt:界说一个中止服务函数;
reentrant:界说一个可再重入函数;
using:设定中止服务函数所运用的作业寄存器组;
三、存储类型
单片机的存储空间在物理上分为4个部分:
A、片内数据存储区;
B、片外数据存储区;
C、片内程序存储区;
D、片外程序存储区;
所以,存储类型就分为以下6种:
1、code:程序代码存储区ROM,共64K,由MOVC @DPTR拜访;
2、data:可直接寻址的片内数据存储区,共128字节,拜访速度比较快;
3、bdata:可位寻址的片内数据存储区,共16字节(128位),答应位与字节混合拜访;sbit/sfr/sfr16;
4、idata:可直接寻址的片内数据存储区,共256字节,答应拜访片内悉数的RAM空间;
5、pdata:可分页寻址的片外数据存储区,共256字节,由MOVX @Ri拜访;
6、xdata:可寻址的片外数据存储区,共64KB,由MOVX @DPTR拜访;
运用code来界说变量的存储类型时,编译器会将其界说寄存在程序代码存储区ROM中,这样的话,这种类型的变量的值就不能再被修改了;