单字节bit操作代码-单片机-

该代码定义了一个名为Coin_Machine_Start的结构体,包含8个bool类型的位。结构体被初始化为全为false。Coin_machine_start_Func函数根据结构体中每个位的状态进行位操作,将结果存储在com[0]中,最后将com[0]的内容复制到coin_start_buf[0]。
摘要由CSDN通过智能技术生成
typedef struct{
	bool bit1;
	bool bit2;
	bool bit3;
	bool bit4;
	bool bit5;
	bool bit6;
	bool bit7;
	bool bit8;
}Coin_Machine_Start;  //定义一个描述单字节8个bit的结构体

extern Coin_Machine_Start Coin_machine_Start;  
Coin_Machine_Start Coin_machine_Start = {
	false,
	false,
	false,
	false,
	false,
	false,
	false,
	false,
} ;   //初始化结构体
void Coin_machine_start_Func(void)  
{
	static uint8_t com[1];
	if(Coin_machine_Start.bit1 == true)
	{
		com[0] |= 0x01;
	}else{
		com[0] &= 0xFE;
	}
	if(Coin_machine_Start.bit2 == true)
	{
		com[0] |= 0x02;
	}else{
		com[0] &= 0xFD;
	}
	if(Coin_machine_Start.bit3 == true)
	{
		com[0] |= 0x04;
	}else{
		com[0] &= 0xFB;
	}
	if(Coin_machine_Start.bit4 == true)
	{
		com[0] |= 0x08;
	}else{
		com[0] &= 0xF7;
	}
	if(Coin_machine_Start.bit5 == true)
	{
		com[0] |= 0x10;
	}else{
		com[0] &= 0xEF;
	}
	if(Coin_machine_Start.bit6 == true)
	{
		com[0]  |= 0x20;
	}else{
		com[0] &= 0xDF;
	}
	if(Coin_machine_Start.bit7 == true)
	{
		com[0] |= 0x40;
	}else{
		com[0] &= 0xBF;
	}
	if(Coin_machine_Start.bit8 == true)
	{
		com[0] |= 0x80;
	}else{
		com[0] &= 0x7F;
	}
	memcpy(&coin_start_buf[0],com,1);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值