|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机C语言中标志位的经典应用
' ~( I& F. e- A) a+ [! O5 G4 m
- U% x6 x. |. r# \//====标志位应用 定义联合体实体====* q7 p3 h$ s I. K: g
typedef union uFLG{
0 Q' w! m3 V- b! j
, g. x% M( u6 x p uint8 Flg ; //定义整形数据, V. g: i3 o6 A) G
8 B! C4 m: @$ T2 C0 e struct FLAG{ //位域定义% p0 k9 k: o5 ^! r8 Y
uint8 Flg1 : 1;8 A) d+ ]* P# d W4 x: u0 D* D) s
uint8 Flg2 : 1;6 [' V! P u& |: ?( V/ N0 ~
uint8 Flg3 : 1;
( B1 ^* s0 {" M1 E* |/ S uint8 Flg4 : 1;
9 \& O* t3 r0 I2 n0 V uint8 Flg5 : 1;
1 @; E& Z: P/ K$ H2 X, P uint8 Flg6 : 1;5 y+ C' l+ r0 m/ r6 U4 i
uint8 Flg7 : 1;
3 ^. Q1 l9 q% y; M4 g+ q uint8 Flg8 : 1;4 Z/ L3 P& F0 k& ~9 r) _. r: b
}tFlg;
9 p: F! I7 x$ D$ p, r1 @
; i( ?$ V$ W$ N9 N+ t}uFlg;
) f2 [# ]. \7 m + n6 ^0 N" Z9 b( M- g
uFlg uF1,uF2; //定义联合体变量8 c/ Y/ w3 |# B" M3 n9 U" _
- s; ~2 c6 N# q: p//-------uF1-------------------
) |, J( c; h7 \9 W; l#define uFg1 uF1.Flg- Q: ]+ s8 T& M0 f: b* |1 ^
3 |" G7 a- |& X4 j#define F_10MS uF1.tFlg.Flg1
2 v2 l! B; @: R, n8 g. }#define F_Fls1s uF1.tFlg.Flg2
; F- i& C |7 H#define F_Fls uF1.tFlg.Flg3
4 q" F2 R3 j( ?#define F_FlsQ uF1.tFlg.Flg4/ ?! s3 I) ?2 g% k4 g' m3 M5 X# [
8 }1 q5 s" N9 j
//-------uF2-------------------2 u6 H$ J( P& P; r
#define uFg2 uF2.Flg
; Y) a$ O* ~; _/ o8 J#define F_LED1 uF2.tFlg.Flg1
( {7 ~/ }4 F7 M& a#define F_LED2 uF2.tFlg.Flg2+ H* a; x/ V; P1 g; Q- ?
#define F_LED3 uF2.tFlg.Flg3. l( v% B) d6 s* I* v" A
7 l& b$ ] W2 @+ m
, S- o) n8 t% J0 d, s0 b
+ l. ?# n8 A+ Y, \4 f
//----应用实例------ r4 ^- m( M- ?/ Q
3 ~! X) u# C. I4 m( Y; C# nvoid main(void) @, P/ o+ N2 F' p, d
{" G) e: t4 ] B6 R( X8 l
while(1)
4 \; k) [4 G1 ^2 T5 o {
) S# j) u; n( q //F_10MS 在中断里10MS置一次1
# F c' `$ @% C" C, P, K% r O' E+ r6 A7 K# p* J
while(!F_10MS); //主程序10MS执行一次
5 a' E* p \/ {' Z0 a F_10MS = 0 ; 4 A3 Z5 [, F s7 |1 c
0 R }/ _, o$ x+ B* D, B3 n
Cmdkey() ;
6 y- N* O3 m* c9 V' S CmdDisplay() ;# B, @) |9 Z% X' [+ o- G) ^
* I8 n8 Z3 d/ M- z
uFg2 = 0 ; //直接操作整个字节 ^5 ?" J; ~8 m( ?* c
F_LED1 = 1 ; //独立操作字节中的一个位$ F7 Q& i8 o+ R
8 w" e9 @ ]( _ }
( s. n' n5 F6 j' B3 Z9 e}/ ]3 D0 a9 R; ^* a: H6 H; b$ H6 H
|
|