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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
单片机C语言中标志位的经典应用
+ N4 y0 X' f/ |+ o- S
. T6 R* z& Q) N  e& v" h$ z" t//====标志位应用 定义联合体实体====  G8 C) d) }/ {+ q& a
typedef union uFLG{0 F1 Q; V+ ?/ D# R; e- d

2 N/ F9 t$ k. Z/ _3 b" k- [    uint8 Flg ;     //定义整形数据
! U! y" [. w4 Y- V) ~: @) a4 p " T, E+ I5 \" ?! ^. E$ Y5 a
    struct FLAG{        //位域定义
: Q4 W* o+ g$ [        uint8   Flg1   : 1;
$ K% ]! `- `( C+ t' S3 E& p        uint8   Flg2   : 1;
& X7 w5 D. Y6 u& V) F        uint8   Flg3   : 1;
/ {0 R6 S& m4 J" Y. P0 ?8 W  y2 e        uint8   Flg4   : 1;- _( ]- B% s( ^: Y- L
        uint8   Flg5   : 1;" `; ^+ N- J! F+ V2 m6 K# k( h/ p
        uint8   Flg6   : 1;4 i  ~7 ], A2 @' y& g
        uint8   Flg7   : 1;
! ~6 L9 U3 g' t9 J0 \  l! n4 j        uint8   Flg8   : 1;
6 v! K" P) h  w7 J: B3 m    }tFlg; % b* l& M3 @4 m
. Y; W& ?* T( v1 a* h
}uFlg;
: |/ [& p* w6 q+ U- D, y ( v- d* n- d; ]4 Q
uFlg uF1,uF2;   //定义联合体变量5 ]3 d0 u4 ]7 `: n  W( g. S, E+ r

* Q% T. b  Z1 d! I//-------uF1-------------------8 H; e. n( o: l
#define uFg1            uF1.Flg8 j# {* R. Y' C0 w

, A) P- w8 ]1 T$ W( p#define F_10MS          uF1.tFlg.Flg18 N; i' I* [0 B) q6 w
#define F_Fls1s         uF1.tFlg.Flg2
7 L$ C0 N0 T+ S% J1 l  c#define F_Fls           uF1.tFlg.Flg3# _+ P/ ?6 c& `0 F7 h
#define F_FlsQ          uF1.tFlg.Flg4$ e2 i/ ^7 |8 p4 }! G& i+ ^

5 a: X& J' _/ |; }* c6 u% W" q3 {+ V//-------uF2-------------------2 [- o7 L* Z% @8 C
#define uFg2                uF2.Flg. ?9 o- g. ]- N9 @! \9 B% V/ C
#define F_LED1          uF2.tFlg.Flg14 |- x- e0 Q( }+ L8 c* G
#define F_LED2          uF2.tFlg.Flg20 E8 ]9 K! i3 H" c, ]. u9 ]  R
#define F_LED3          uF2.tFlg.Flg3
! J# I) U$ j1 c+ H, G# O
! j3 R) Y: V% y. ]( |
! s, @% ^- J, A! d
% |4 B1 V/ g, g. N. F! D; {) K//----应用实例------
' m, |1 L) m; a( ?' h: H" B* K ! i, }7 C  `7 ?9 f! M
void main(void)
1 B8 e: e4 q' U, u$ L' V{: W+ l/ ^: }( H0 `
    while(1)
' e1 N$ \/ ?! @* ], @6 t    { 3 t5 C  ?- L% o
        //F_10MS 在中断里10MS置一次1$ h$ y% M8 g  C6 z
5 G' S, [, J, ~/ f( A
        while(!F_10MS);  //主程序10MS执行一次 3 d* I) J' H' c( \* o
        F_10MS = 0 ;
) v7 i' O5 ]" t9 j: x4 C
. C* e$ J- N5 r, c        Cmdkey() ;. k( ]3 O! f' w  `' {$ e! ~
        CmdDisplay() ;" p4 w; ]8 |3 K/ ]3 D
8 [  x. R: v! @1 G) l' K
        uFg2 = 0 ;      //直接操作整个字节, T' G7 U0 W& \) L
        F_LED1 = 1 ;    //独立操作字节中的一个位
# l6 _' g1 x+ t8 j+ f 0 k6 O4 y, v( a) Q
    }+ K: s/ i1 C2 `: D
}/ u" b! p/ y( n+ ]8 `
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-29 02:59 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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