/*本例程是C語言的位域操作示例這里為什么位域結(jié)構(gòu)體與聯(lián)合體一起使用?-->因為這樣定義后,即可以單獨使用標(biāo)志位 也可同時使用整個字節(jié)數(shù)據(jù)主要應(yīng)用:單片機C語言好處:用標(biāo)志位可以節(jié)省RAM空間 操作靈活 執(zhí)行速度快*///====標(biāo)志位應(yīng)用 定義聯(lián)合體實體====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)用實例void main(void){while(1){ //F_10MS 在中斷里10MS置一次1while(!F_10MS); //主程序10MS執(zhí)行一次 F_10MS = 0 ; Cmdkey() ;CmdDisplay() ;uFg2 = 0 ; //直接操作整個字節(jié)F_LED1 = 1 ; //獨立操作字節(jié)中的一個位}}
評論