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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机C语言中标志位的经典应用% {: K% @* ^6 f/ \; d

1 t# _, t5 l1 V$ p, J//====标志位应用 定义联合体实体====
0 b7 F; w- e) j0 V$ I0 _) L" Etypedef union uFLG{2 c" s8 H9 W6 d  X5 T/ C( A

- A; k5 d" v7 J9 k. Q  }- d, p    uint8 Flg ;     //定义整形数据9 B& t) `- i' j0 h+ \8 h' P5 ^

' P3 R+ ?* b4 I+ b7 D. L: M    struct FLAG{        //位域定义7 K: g& [+ I: A3 }  }% S
        uint8   Flg1   : 1;
2 S/ q. u. r* F+ Q1 P3 g6 F& i0 K6 S        uint8   Flg2   : 1;
& H) q) A9 s2 b2 b+ q        uint8   Flg3   : 1;& r4 v2 n, X- ~  ^" d5 f) [
        uint8   Flg4   : 1;
8 Z6 x: Z5 ^7 ^  [        uint8   Flg5   : 1;
1 U: H8 s$ F& c* x8 {! v        uint8   Flg6   : 1;" r8 Q" u! e( ]9 f
        uint8   Flg7   : 1;$ }% C6 s6 i/ Y7 J* j: }# m
        uint8   Flg8   : 1;
3 |. J  p5 k: ]; E& Z8 O! R$ J    }tFlg;
* y2 K$ Z2 L5 L$ c$ ~( |
6 J: D# E2 N* l( s8 c}uFlg;+ y; y( P. c5 \8 [* `. [

; ^2 [  c* }& `uFlg uF1,uF2;   //定义联合体变量
; G# V, J, `! m6 h7 E5 j+ k/ a  \
1 C" h! c6 q* [//-------uF1-------------------
8 F+ d9 Y' c4 d5 o7 c: F, x#define uFg1            uF1.Flg
, b" Y0 n$ G+ Z" L - j* {- h7 J- ^; C8 A0 W1 ^, V
#define F_10MS          uF1.tFlg.Flg1
; d- t% ?" ^, T! ]. e#define F_Fls1s         uF1.tFlg.Flg2
& Q1 o& F% z8 _1 L$ A#define F_Fls           uF1.tFlg.Flg3! c6 S& A5 A$ O. `) y6 h$ }
#define F_FlsQ          uF1.tFlg.Flg4, z% g1 G; f' z* a

) T! z; V  }8 v  z4 [- W//-------uF2-------------------
" U; S( a# H4 m4 `3 K#define uFg2                uF2.Flg: b8 r* S& q5 M
#define F_LED1          uF2.tFlg.Flg1
" ]$ B: ]! S+ \! s, q#define F_LED2          uF2.tFlg.Flg25 ~( |# y7 F' g7 D- i! l
#define F_LED3          uF2.tFlg.Flg3& p" Z2 |' a' K7 @' G: n
- s/ u3 c2 \7 L; \, F

, S! ^- p" T- M) N! S2 f 2 l. w! ^/ R" ]! B/ k+ E! e6 {" K* v
//----应用实例------5 F, M) A) N# i$ a7 \  [
* J+ s- Z5 ]# n. z5 G2 `
void main(void)$ n$ a3 c+ b) a* [* m* R
{5 O/ ~( P4 N0 K$ g& O* n7 v
    while(1); G4 D* }% j- G! S
    {
! _! R% T* H: ~5 m$ u' E        //F_10MS 在中断里10MS置一次1' e! n  A* H$ u; ~$ G1 Q& X
4 U" _! j8 ?7 }& p7 p) _  ~/ Y, F6 n
        while(!F_10MS);  //主程序10MS执行一次   j6 C5 B) k8 `1 B0 p
        F_10MS = 0 ;
5 e2 r) h9 F# K. G) p & ^. H7 H* `8 H* C7 s! j4 N
        Cmdkey() ;! A5 J' I; a1 l: r0 n
        CmdDisplay() ;
' Y$ k! j3 u6 d& [9 H4 w0 S
6 Y8 W' ~" ]" u; \/ L        uFg2 = 0 ;      //直接操作整个字节; c6 o$ s/ n; ]& Y6 b
        F_LED1 = 1 ;    //独立操作字节中的一个位
( z& ]* b, Q) r) F- S
) D4 ^/ }6 S3 D+ d    }" ?  j3 u8 l# H9 B
}! @8 U4 ]' k3 Z/ R. q9 z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-12 17:27 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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