单片机C语言中标志位的经典应用

/*
本例程是C语言的位域操作示例
这里为什么位域结构体与联合体一起使用?
-->因为这样定义后,即可以单独使用标志位 也可同时使用整个字节数据

主要应用:单片机C语言

好处:用标志位可以节省RAM空间 操作灵活 执行速度快

 */


//====标志位应用 定义联合体实体====
typedef union uFLG{

	uint8 Flg ;		//定义整形数据

    struct FLAG{		//位域定义
        uint8	Flg1   : 1;
        uint8	Flg2   : 1;
        uint8	Flg3   : 1;
        uint8	Flg4   : 1;
        uint8	Flg5   : 1;
        uint8	Flg6   : 1;
        uint8	Flg7   : 1;
        uint8	Flg8   : 1;
    }tFlg;	

}uFlg;

uFlg uF1,uF2;	//定义联合体变量

//-------uF1-------------------
#define	uFg1			uF1.Flg

#define	F_10MS			uF1.tFlg.Flg1
#define	F_Fls1s			uF1.tFlg.Flg2
#define	F_Fls			uF1.tFlg.Flg3
#define	F_FlsQ			uF1.tFlg.Flg4

//-------uF2-------------------
#define	uFg2				uF2.Flg
#define	F_LED1			uF2.tFlg.Flg1
#define	F_LED2			uF2.tFlg.Flg2
#define	F_LED3			uF2.tFlg.Flg3



//----应用实例------

void main(void)
{
	while(1)
	{ 
		//F_10MS 在中断里10MS置一次1

		while(!F_10MS);  //主程序10MS执行一次 
		F_10MS = 0 ; 

		Cmdkey() ;
		CmdDisplay() ;

		uFg2 = 0 ;		//直接操作整个字节
		F_LED1 = 1 ;	//独立操作字节中的一个位

	}
}


 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值