找回密码
 注册
关于网站域名变更的通知
查看: 649|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-26 10:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-3 20:21 , Processed in 0.093750 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表