如题,用51做一个拨码开关检测, IC有8个分散引脚,定义sbit位变量, 我需要把这8个引脚状态装入一个char型变量的某一位,组成的字节供其它函数调用,如何操作,请教!
sbit K1 = P1^0;
sbit K2 = P2^0;
sbit K3 = P3^2;
sbit K4 = P4^3;
sbit K5 = P1^1;
sbit K6 = P2^2;
sbit K7 = P3^4;
sbit K8 = P4^5;
extern unsigned char U1;
void key (void)
{
U1=~( K1 & 0x01 );
.....?
}
1,直接位运算,把几个bit塞进一个字节,
char tmp = 0;
tmp |= K8; tmp <<= 1;
tmp |= K7; tmp << = 1; .......
2,定义个联合体,联合体的一个成员是一个字节,另一个是一个带位域的结构体,给结构体的每个成员分别赋值,然后取字节值。