單片機(jī)C語(yǔ)言中標(biāo)志位的經(jīng)典應(yīng)用
//====標(biāo)志位應(yīng)用 定義聯(lián)合體實(shí)體====
typedef union uFLG{
uint8 Flg ; //定義整形數(shù)據(jù)
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; //定義聯(lián)合體變量
//-------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
//----應(yīng)用實(shí)例------
void main(void)
{
while(1)
{
//F_10MS 在中斷里10MS置一次1
while(!F_10MS); //主程序10MS執(zhí)行一次
F_10MS = 0 ;
Cmdkey() ;
CmdDisplay() ;
uFg2 = 0 ; //直接操作整個(gè)字節(jié)
F_LED1 = 1 ; //獨(dú)立操作字節(jié)中的一個(gè)位
}
}
編輯:admin 最后修改時(shí)間:2018-05-18