C51中的特殊功能寄存器型和位类型

时间:2024-02-17 09:33:04

  在C51中的int型与short型相同。除此之外,C51中还有专门针对于单片机的特殊功能寄存器型和位类型。

特殊功能寄存器型:用来访问单片机中的特殊功能寄存器数据,分为sfr和sfr16两种类型。sft字节型特殊功能寄存器类型,占一个字节,可以访问所有特殊功能寄存器;stf16双字节型特殊功能寄存器类型,占两个字节单元,可以访问所有两个字节的特殊功能寄存器。疑问(两个字节的特殊功能寄存器是什么意思?就是16位的寄存器,一个字节位8位)

位类型:用于访问单片机中的可寻址的位单元。bit和sbit都只占一个二进制位,其值可以是1或0。在编译的时候,bit在不同的时候位地址可以变化,而sbit定义的位变量必须与一个可以寻址位单元或可位寻址的字节单元中的某一位联系在一起,在编译的时候其对应的位地址是不可变化的。

/* sfr/sfr16  特殊功能寄存器=地址;     */
sfr PSW = 0xd0; //特殊寄存器的地址见表格
sfr SCON = 0x98;
sfr16 DPTR = 0x82; //DPTR是一个16位寄存器,可分为两个8位寄存器DPH和DPL
sfr16 T1 = 0x8A; //TL0->8AH TL1->8BH TH0->8CH TL1->8DH
// 这个T1指向的是TL0和TL1嘛?
/* sbit  位变量名=位地址;      */
sbit OV = 0xd2;
sbit CY = 0xd7;
sbit flag0 = flag^0;
sbit P1 = 0x90;
sbit P1_0 = P1^0;
sbit P1_1 = P1^1;
//C51单片机的常用特殊功能寄存器和特殊位进行了定义,放在“reg51.h”的头文件中。