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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机C语言中标志位的经典应用& q0 D% i8 A) S" X1 J

, M, j6 w# `& M- b. @) k5 `//====标志位应用 定义联合体实体====
% ^, O$ l6 O& V( t8 |% Qtypedef union uFLG{
( h, r, f7 E% n$ P
) T% c6 t, ], G0 W9 Q) D# C    uint8 Flg ;     //定义整形数据' m/ W! s6 D# L; p  B
- e7 t4 ?# o7 |7 B. \5 `
    struct FLAG{        //位域定义
  R. X7 W3 Q/ P9 p- o2 Q& G        uint8   Flg1   : 1;
, E, W5 r2 G  E; \  |        uint8   Flg2   : 1;
  b3 c3 [0 K0 r, v& h0 O        uint8   Flg3   : 1;7 F6 P: {3 c. t0 b3 t
        uint8   Flg4   : 1;% ^  l" H0 o& g. n' ?) J2 V
        uint8   Flg5   : 1;5 Z/ R8 w# H$ f2 z
        uint8   Flg6   : 1;6 n) y) o; M3 D0 J6 `1 Q9 y( a% g3 ?& R
        uint8   Flg7   : 1;
9 c7 O9 B+ e) m  ]  b        uint8   Flg8   : 1;
3 Y' @" q+ p& }  ^9 Q9 x    }tFlg;
' @1 n" S; z& e6 ~* R6 ~/ z/ N
% _; m  n* {- I" ^" a5 a' X. F. i9 r}uFlg;5 @( f. m+ u  A* t, y7 y

+ ?  n' p! P2 n9 _; duFlg uF1,uF2;   //定义联合体变量# ?+ f/ q4 M' ^) k0 a
9 w  t5 c9 h4 K, a+ T, S, y7 r4 j
//-------uF1-------------------
3 s6 g% J: Y( o6 n1 p. w#define uFg1            uF1.Flg( u, {5 D) k# z' Q; ^, m
- i5 ~3 {5 z: f% g/ m8 `6 _" M0 S0 W
#define F_10MS          uF1.tFlg.Flg1. N- Q  B8 e( H: W$ M7 k( W/ m
#define F_Fls1s         uF1.tFlg.Flg2
5 G0 Z* J) p7 Y7 _% ?, B#define F_Fls           uF1.tFlg.Flg32 m- `% D/ K8 B
#define F_FlsQ          uF1.tFlg.Flg4; p: E$ i- @& R0 C: p

0 m* e/ _7 }+ ^//-------uF2-------------------$ K& o( [' M' T; k5 J+ y% M$ e# v
#define uFg2                uF2.Flg
; _3 P5 A2 v5 ]3 b" i#define F_LED1          uF2.tFlg.Flg1
1 _! K$ D" U: Q" f  ?+ X" j#define F_LED2          uF2.tFlg.Flg2; G+ N8 w- a% j: H% u
#define F_LED3          uF2.tFlg.Flg3: p+ F( }# Q5 u$ J' y+ A! b

# F2 I, L. {! z" t' i- D / C8 V1 X- v4 m' {! e3 j1 i

  D# y6 ~1 p) i4 c, z8 F4 r! _) u1 {0 R//----应用实例------
' K8 ]3 F- P6 o' @, n  y
8 X, j5 p6 E( D0 vvoid main(void)
% W8 \1 i8 _: L' U{! A6 D( E5 N9 a* t$ g; L
    while(1)
$ N. \9 m6 C3 V5 X3 ]    { ( _8 Y0 w" _  d2 B( j8 u1 D
        //F_10MS 在中断里10MS置一次1- M8 p( {/ U; n$ [# A: h- G& U
5 K- K* i0 u0 S6 K- Y
        while(!F_10MS);  //主程序10MS执行一次 ) j8 d2 [  o- ~7 w
        F_10MS = 0 ; ; Q& U, j- P2 N0 N) H9 \0 X( D

7 k: l; L2 s8 R3 C        Cmdkey() ;
1 D; O! U  G" V, I0 ?        CmdDisplay() ;- g$ y0 M' w; \) F/ q: C4 P

% H8 k6 ?* {, R% C) C. ^        uFg2 = 0 ;      //直接操作整个字节
4 f( f2 x4 e5 |7 }) d0 k! x) L        F_LED1 = 1 ;    //独立操作字节中的一个位
1 w# e/ C" j! A  b / P" F; [$ b  @
    }2 I9 U. s3 |- Y1 R3 ^0 s
}
- h7 _& l- O( ?; f/ V
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 14:08 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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