sbit led1 = P1^0是什么意思
sbit led1 = P1^0 含义:是将发光二极管 led1 接 P1口 0 位端,用以控制 led1 的亮灭。
sbit是定义特殊功能寄存器的位变量。bit和sbit都是C51扩展的变量类型。典型应用是:sbit P0_0=P0^0;//即定义P0_0为P0口的第1位,以便进行位操作。bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址。
扩展资料
在C语言里,如果直接写P1.0,C编译器并不能识别,而且P1.0也不是一个合法的C语言变量名,所以得给它另起一个名字,这里起的名为P1_0,sbit的用法有三种:
第一种方法:sbit 位变量名=地址值
第二种方法:sbit 位变量名=SFR名称^变量位地址值
第三种方法:sbit 位变量名=SFR地址值^变量位地址值
如定义PSW中的OV可以用以下三种方法:
sbit OV=0xd2 (1)说明:0xd2是OV的位地址值
sbit OV=PSW^2 (2)说明:其中PSW必须先用sfr定义好
sbit OV=0xD0^2 (3)说明:0xD0就是PSW的地址值
因此这里用sbit P1_0=P1^0;就是定义用符号P1_0来表示P1.0引脚,如果你愿意也可以起P10一类的名字,只要下面程序中也随之更改就行了。
参考资料:
单片机中 sbit DOUT=0xA3是什么意思
不是。sbit是“定义位变量”的说明性语句,并不产生指令代码,而在汇编中setb是一条真正的“指令”(也就输set bit),所以sbit不是setbit。sbit是定义特殊功能寄存器的位变量。bit和sbit都是C51扩展的变量类型。bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址。
这是定义外部引脚的位地址,但很少有这么写的,这么写意义不明确,对应这个位地址的是引脚P2.3,一般要这么写:sbit DOUT=P2^3; 这么写意义就明确了,就是定义外部引脚P2.3为输出,在写程序时就可以用位变量名DOUT来表示了。
但可不是定义位变量的,定义位变量的语句是:bit DOUT;而且定义位变量时,是不用定义物理地址的。
sbit 和 bit 的用法是有区别的,sbit是专门外部引脚的,而bit 定义的位变量是内部的。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!