1楼:匿名用户
bit在ram中的可位寻址空间中,一般用作程序判断的标志位。
2楼:神
用c写程序时定义位变量,如定义位变量led,则可写成: bit led;
单片机中bit和sbit有什么区别?
3楼:
sbit映射到io口(p1^1这种io口的“位”)
bit在ram中的可位寻址空间中,一般用作程序判断的标志位。
你可以认为它们一个对外(sbit),一个对内(bit)。
4楼:
bit和sbit都是c51扩展的变量类型。
sbit 要在最外面定义,就是说必须定义成外部变量.sbit定义的是sfr(特殊功能寄存器)的bit
sbit更像是类型定义,不像是变量定义。
sbit: 只是说明性说明
bit 可以在外部或内部定义。
bit和int char之类的差不多,只不过char=8位, bit="1位而已"。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。
这个地址是整个可寻址空间,ram+flash+扩展空间。bit只有0和1两种值,意义有点像windows下vc中的bool。
bit是编译器在的可寻址区分配的一个位变量,是不定的,不是绝对地址目标。
所有可位寻址的位都可由sbit指定,这包括可位寻址区和sfr中的位。
sbit是对应可位寻址空间的一个位,可位寻址区:20h~2fh。一旦用了sbit *** = rege^6这样的定义,这个sbit量就确定地址了。
sbit大部分是用在寄存器中的,方便对寄存器的某位进行操作的。
sbit位寄存器是可位寻址的绝对地址目标,定义后编译器是不会改变位置的。
5楼:匿名用户
sbit跟int一样是一种数据类型
即位用sbit可以定义一个位变量
而bit则是用来强制转换比如(bit)a
6楼:匿名用户
sbit 就是置1的意思。。。跟clr相反。。。
单片机bit是什么意思
7楼:匿名用户
这是用c语言写程序时,用于定义一个标志位的关键字。
如:bit flag;
这样,bit在程序是就是一个位。
8楼:匿名用户
bit再c语言里是位定义符号,由它定义的变量数据仅为1位,只有0或1两种状态
9楼:曹广连
比特是二进制一位有0、1两种状态
请问单片机中bit5是什么意思啊啊
10楼:
第5位的意思,你可以看一下你的程序里对bit5的定义,应该是程序源作者写的宏定义吧.
一般来说,为了便于程序的开发,程序的作者会事先进行宏定义:
#define bit0 0x01
#define bit1 0x02
#define bit2 0x04
#define bit3 0x08
#define bit4 0x10
#define bit5 0x20
#define bit6 0x40
#define bit7 0x80
这样以后用的方便,也有这么定义的:
#define bit0 (1<<0)#define bit1 (1<<1)#define bit2 (1<<2)#define bit3 (1<<3)#define bit4 (1<<4)#define bit5 (1<<5)#define bit6 (1<<6)#define bit7 (1<<7)意思都一样,即bitn就是第n位为1,其他位为0
11楼:小毛豆
广义上指的是二进制中的"位",有两种状态“1”与“0”。bit5可能是单片机中某一数据或者寄存器的第五位,具有特殊意义。而具体的像这种“特殊位”(也有可能是普通位)在单片机中出现的频率太高了,比如通信中某一字节数据中的第五位,或者某一寄存器的控制位,具体是哪个得看这个“bit5”出现在哪了
12楼:生活如歌
应该是指第五个位单元。
单片机c语言程序设计中,用关键字bit定义单片机的端口.对吗
13楼:匿名用户
bit 是声明一个位变量的,定义单片机端口的是sbit.
如:sbit led=p2^1; //定义引脚p2.1为led
bit flag; //声明一个位变量
14楼:匿名用户
不对,用sbit
bit申明位变量。
15楼:心声代
sbit,不是bit
而且只有51类型的单片机合适
sbit led1 = p1^1;
51单片机c语言里面,定义bit的方法,有哪些,请举例,谢谢!
16楼:匿名用户
二楼正解,只要将变量定义在51单片机的可位寻址区域20h-2fh即可 ,bdata类型
uchar bdata b8 ;
b8^0 = 0 ;
b8^1 = 1 ;等等
联合体+结构体+位段 对这种做法 编绎器也会自动将其优化在可位寻址区域,纯粹故弄悬虚,冗长,增加程序维护度,c51讲求的是在有限资源内着重精简、执行效率
17楼:
^一共可以定义16个字节的位寻址变量
static uchar bdata canbusflag=0; //can标志
sbit canrcv_good=canbusflag^0; //成功接收标志
sbit cansend_good=canbusflag^1; //成功发送标志
sbit canerrflag=canbusflag^2; //can总线错误标志
sbit candtoverflag=canbusflag^3; //can总线超载标志
sbit canwuiflag=canbusflag^4; //can总线唤醒中断
//你改变canbusflag,下面的一堆变量也变了,反之既然
定义:union unitemp // 温度采样值
idata utemp; //idata是定义变量存储空间,这里用的8952单片机,有idata空间
。。。。
程序里面使用:
utemp.temp=***;//其实temp_ad[2]数组里面的内容也变了,union 结构嘛
如果你只定义8个位,就用第一种方式。
union 结构是为了方便大数据的操作才使用的。如果你要用union 定义一个8位变量的每一位,想应该可以吧。不过不知道符不符合c语法,编一个试试吧~哈哈
18楼:匿名用户
^你可以定义一个bdata类型的,然后分别定义这8位如:unsigned char bdata temp;
sbit temp0 = temp ^ 0;
sbit temp1 = temp ^ 1;
sbit temp2 = temp ^ 2;
sbit te*** = temp ^ 3;
sbit temp4 = temp ^ 4;
sbit temp5 = temp ^ 5;
sbit temp6 = temp ^ 6;
sbit temp7 = temp ^ 7;
这样就能使用temp这个字节里面的8位了。
例如:te*** = 1;
temp5 = 1;
则temp字节的第3位和第5位被置为1了,其他位的值不变。
19楼:匿名用户
比如led灯的控制
sbit d1=p1^0;
sbit d2=p1^1;
sbit d3=p1^2;
sbit d4=p1^3;
sbit d5=p1^4;
sbit d6=p1^5;
sbit d7=p1^6;
sbit d8=p1^7;
这样在操作的时候就不用对整个p1口操作,直接操作位即可得到指定地址上的一个字节或字的方法如下:
#define mem_b(x) (*((byte *)(x)))#define mem_w(x) (*((word *)(x)))不过这个有点复杂,一般用于arm
单片机中的DEC是什么意思,单片机DEC怎么意思
1楼 匿名用户 dec是减一指令,和inc相反 2楼 匿名用户 减一操作 a 00h dec a之后,a ffh 单片机dec怎么意思 3楼 德昂当 减一指令 与之相对的有个 inc 加一指令 就像c语言的 i 单片机中的ip是什么意思? 4楼 珠山龙少 在 51 单片机中,ip是指interrup...
单片机中的TR是什么意思,单片机中TR什么意思?
1楼 糖糖寳寳 意思如下 tf1 其值位1时,表示定时器t1计满溢出。 tf0 其值位1时,表示定时器t0计满溢出。 tr1 为1是定时器t1开始计数 0时不计数。 tr0 为1是定时器t0开始计数 0时不计数。 ie1 当发生外部中断1时其值为1。 ie0 当发生外部中断0时其值为1。 单片机中t...
单片机片选有什么用,51单片机片选的意义是什么?
1楼 无畏无知者 比如,有几块一样的芯片同时接到单片机总线上,靠什么去区分这些芯片并访问他们呢? 对,就是那个片选信号了,哪一个芯片的片选信号使能,总线就与哪一个芯片进行数据交换了。 这个就是片选的作用。 其实归根结底就是寻址而已。 2楼 匿名用户 片选信号相对于地址一样,当芯片的片选和地址信号同时...