新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)C語(yǔ)言中標(biāo)志位的經(jīng)典應(yīng)用

單片機(jī)C語(yǔ)言中標(biāo)志位的經(jīng)典應(yīng)用

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


評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉