51单片机C语言里面,定义bit的方法,有哪些,请举例,谢谢!
比如:1,bit flag1;
还有结构体,联合体来定义的,具体怎么样能不能举例,因为我刚从汇编转C,比较菜鸟;谢谢帮忙!
一楼的朋友的是对SFR的定义,我是想知道RAM里面数据寄存器的 先定义一个byte ,然后在这个定义的byte里面定义8个bit,能不能做到这样的定义,怎么定义呢?先谢谢一楼的朋友。 一楼的给出的ARM的方法好高深,谢谢; Gin_HK朋友是我要的答案,但后面的联合体定义的如果是定义8个位,再定义一个byte这样也行吧?我要等效第一种方法;
union bit_def
{
unchar b8;
struct bit8_def
{
char b0:1;
char b1:1;
char b2:1;
char b3:1;
char b4:1;
char b5:1;
char b6:1;
char b7:1;
}bit;
};
union bit_def rk;
#define fkey_in rk.bit.b0 //
#define fkey1 rk.bit.b1 //key1
#define fkey2 rk.bit.b2 //key2
这个方法,不知道C51行不行;我在另外一个单片机上试过,但我不是很明白为什么结构体里面的定义是那样的语法,因为我没见过有说明可以那样;