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

大神大神,求救,单片机编译流水灯蓝牙控制,为什么不可以循环,停在LED8就不动,

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-5-8 09:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
#include <reg52.h>  //头文件
5 d. W; Q" F" x* q6 ?#define uint unsigned int   //宏定义" ?  N* _. V+ d$ g
#define uchar unsigned char5 h9 a9 V" D8 c) y# H$ q, Q
code tabup[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
/ `0 C7 P1 T2 o$ n2 J3 `code tabdowm[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};- Y- ]" e9 ~/ g& a4 v7 c
void delay(uint z);
# _' g" ], p1 P4 X- {' _9 Uint i;6 `4 B7 E3 R0 `7 _2 x+ R9 `9 A
sbit beep=P2^3;# J% ^+ Q: ^2 `1 l+ s; b9 W- l
void blue_Init()   //蓝牙串口初始化
7 A4 x- I) T$ F2 V9 R{$ E( D* b" }) T
    TMOD = 0x20;# r+ Y" a' X9 i4 ?' b" V; ]9 a
    TH1  = 0xfd;     //96006 q1 |, k# q4 `0 g/ L( [1 ~0 ~
    TL1  = 0xfd;
4 u  o; R! a4 K' d. i' J    SM0  = 0;
- s" ]8 k( d. v4 I$ h2 b    SM1  = 1;               
3 n' g$ s9 Y& {- ?! u  N    REN  = 1;4 \1 \( f+ k9 E! c
    TR1  = 1;
1 Q1 p% }1 a. r; B" ^- w+ D& i9 I}+ l1 v9 H( ~6 N  N
/**主函数**/
9 g' u$ T) M5 d5 Wvoid main()& c) `* F; g. V
{
6 o4 t- R3 f6 l  O6 j3 A; ^7 R# F8 P4 v    int a;) }' U- z" i4 ~) n% W
    blue_Init();
) s$ k" w, H8 @, Y" p6 b    P1=0xff;! y3 o& b: E* ^7 p) M. ^$ A
    while(1), p2 m; |" U" Q: J& d$ k3 _- H
    {
8 U3 y& d2 @% _/ Y  p' Q" P2 u/ o* B        if(RI==1)                 ) w1 I* r6 i" X0 g
        {  
9 S/ j7 A0 y9 w: I7 q- V" g            a=SBUF;
- I) ^' f: @7 F            RI=0;) D9 \' I9 s, B5 K8 \! L3 T
            if(a=='1')         //熄灭LED' G4 m5 I1 P. c% F
            {" R2 u; _7 l' T: Y& T
                P1=0xff;* `+ {5 e+ j3 ?2 k/ E; ]
                                                          beep=0;
$ U2 v% N/ ^; ^4 ?/ i4 P  \                                  delay(100);3 b, T1 }( a$ t+ R+ P( v( j
                                  beep=1;- ^1 ]' h+ v& p3 `% `( {4 s
            }   ' q9 ]2 ~+ ?# v  `$ ~
            else if(a=='2')    //点亮LED; t. z  R9 y4 N, }" _
            {
, |. r6 g6 x2 v                P1=0x00;
$ L/ h& \5 u8 }4 |4 F6 s) \                                                          beep=0;
% v7 w& \( }8 d+ q0 }+ c& J                                  delay(100);
0 |4 w: D( I! q                                  beep=1;: K8 p: ?* b; K3 J+ Q; [: t1 }
            }1 d  l$ o- Q  B( m5 L
            else if(a=='3')    //顺时针流水灯
5 \* ]! k" L7 f! h  ?            {
* Z" h9 K9 S( l" A/ d                                                        for(i=0;i<8;i++)  j9 K6 _; T0 x
                                                        {: R4 M, O+ M( a$ u/ D8 J
                                                                P1=tabup;' I! Q) \; A+ c. K
                                                                delay(2000);
. Z2 x1 c6 q) u- B  }. E0 L* _; E4 i, e                                                        }
; T! C% B% Z# x4 n' v                                                }
1 l. `$ p) E  h/ s1 h3 V6 X0 E                                                else if(a=='4')    //逆时针流水灯
& W. I  p  |, M- u7 e/ @: v0 w                                                {
- _, _& L0 J% U9 K$ b& Y                                                        for(i=0;i<8;i++)& @. [" J/ N# v6 t
                                                        {
1 W# I/ v: k$ s                                                                P1=tabdowm;2 a$ e* ~# k  n
                                                                delay(2000);
$ f: M( x/ g) i* I- ]                                                        }
+ O* |" Z0 T( t                                                }: d5 ?0 l) w6 ~6 W3 o. [7 k
                       * C; X# P5 P, R4 F2 ~$ O
        }  ( u( Q) U4 l& c. s: Y9 b) i
    }( F# _) \' q3 {
}# W3 R5 x. m  q8 `% P; X' ?$ m6 |
void delay(uint z)  //延时函数$ M/ w4 M$ O" |' q) O, B
{: z5 D3 y5 B, J- Z; X0 [
  uchar x,y;    D9 _, e+ G1 L3 A# j+ B
  for(x=z;x>0;x--)
/ T3 R4 v% ^4 `1 i5 `  for(y=210;y>0;y--);! j( h- B; L* u: O/ E' z0 `
}
& Z, r1 l6 h5 e  `5 t1 h& C6 d# L

该用户从未签到

2#
发表于 2021-5-8 09:24 | 只看该作者
/ @4 q, r' z) g% z$ A. D
你这个程序不循环就对了;要串口发一次,循环一次

该用户从未签到

3#
发表于 2021-5-8 13:34 | 只看该作者
如果要实现循环怎么修改才可以

点评

如果要实现循环该怎么修改?求教学或者写一个完整的代码参考一下,十分感谢  详情 回复 发表于 2021-5-8 14:02

该用户从未签到

4#
 楼主| 发表于 2021-5-8 14:02 | 只看该作者
行者~ABC 发表于 2021-5-8 13:34
, k, M# x  G1 v. u% K6 Y, A如果要实现循环怎么修改才可以

$ q0 \: F" ]4 c% q5 U5 q如果要实现循环该怎么修改?求教学或者写一个完整的代码参考一下,十分感谢
$ M* M$ l5 J/ N; n+ v1 K  d# v

该用户从未签到

5#
发表于 2021-5-8 18:06 | 只看该作者
你接收部分逻辑不好,用case语句

“来自电巢APP”

  • TA的每日心情

    2021-6-16 15:10
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    6#
    发表于 2021-5-12 19:47 | 只看该作者
    新来的,看到你的程序,本身是无法实现相关功能,求详解。在你的基础上修改了一下数据,请尝试一下:* T/ G7 C) c7 P2 w4 |+ [5 o& S
    #include <reg52.h> 7 [: [8 w/ b1 q+ h) R! e
    #define uint unsigned int   . J: Z/ R  U$ Q& B
    #define uchar unsigned char
    ' U% }) G5 l- C9 \3 ^code tabup[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};7 x$ D( b6 l9 B' B! ^1 l( ]7 l
    code tabdowm[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
    8 q7 m7 g+ [) \  o- A! \2 Psbit beep=P2^3; $ x( p, w3 ]7 t$ Q. l
    void delay(uint z)0 k2 y+ t  x# s1 x# B7 K- S* q
    {# j8 t! g0 ?3 n( m  q2 O
      uchar x,y;  
    6 \3 A. r* g# Q2 p0 e; s* ~8 t, T2 h  for(x=z;x>0;x--)
    ( U+ a& y8 }; ~2 m* [          for(y=210;y>0;y--);
    & y- ~' C( |! g1 l3 Q}- X% j8 x; n! ?/ h% L% g
    void blue_Init()   //蓝牙串口初始化
    + o# R4 I; Z: x9 k2 ]) H& `9 f: Z{8 F: K0 u, G7 h, y; Y* }( G
        TMOD = 0x20;1 k8 d6 t5 ~" [0 X4 q
        TH1  = 0xfd;     //9600
    / [# c$ V% \5 g7 A& C( n; T' y. B    TL1  = 0xfd;
    * n  A) S" @1 e. I    SM0  = 0;
    + }2 d+ V! I. G" i0 T6 g    SM1  = 1;              
    + O5 B* d. p; J; Q( A9 V    REN  = 1;5 ]$ n/ l# [1 h' `3 T
        TR1  = 1;
    $ ^8 ?$ l$ v4 B}5 R, n" C8 ~8 J$ [& Z
    /**主函数**/
    4 e$ l5 @/ r% o# q; Xvoid main(); i4 y8 u) V7 V
    {
    8 K3 ]6 v7 \% L    int a,i;
    * \7 X( l0 ]- ~5 i& D5 P    blue_Init();
    6 M; L3 I4 [$ E5 O* M0 k8 \) P' `# q    P1=0xff;
    * ~0 A* \% R4 D/ T3 ]) B0 f    while(1)
    % v& r+ p/ h7 u$ k$ e. D    {% w; S5 W7 D* r0 M& }# Y
            if(RI==1)) C5 u: {( Y! Y
            {" e+ Z6 H8 E: i( m
                    switch(a)2 a* F7 R. _  W, t) q6 L
                    {& N6 B4 \8 J" K* u7 J9 `, @: r2 c3 [' W
                      case '1':
    ) {4 Q: q# Y* H$ R: Q1 n                         P1=0xff;
    7 j; w; e7 G$ M# F                         delay(100);
    4 s- @& o, t/ Q% E                         beep=1;
    3 V% [2 ?; ?9 ~# ]. l" f% B                        break;
    9 ^& Q+ {+ j) G2 x6 u2 @                  case '2':0 z+ A' k2 ^  Z0 M4 x- s* R- O
                             P1=0x00;/ Z  N- i! `9 h7 S, d
                             delay(100);
    8 J- H1 G) F4 s9 _* U8 [                         beep=1;
    / |( z  v$ Y4 v                        break;
      W  m; |' d: @9 O8 ^                  case '3':4 ^6 t7 X8 m+ E& I* M6 W
                             for(i=0;i<8;i++)
      q5 f9 H0 q0 b( v* R  i) d$ @                         {" |! C( @  I! r# d) x9 f/ q+ I
                                 P1=tabup[i];
    1 c' }) C- |8 s$ u- g& v! Z0 h                             delay(2000);: d( ^) O7 z8 t. ?
                              }% N) `& x/ X1 q* e7 X+ ]4 g  h6 B" ~
                            break;1 E0 ?2 l) h* @/ K! n/ k
                      case '4':# h' H! m. X* @( E8 G/ B
                              for(i=0;i<8;i++)
    8 K9 q5 ]: i+ Z9 t0 ?7 r9 w% w6 V, J                          {" ~, Q9 ~7 i& U/ D$ q8 N7 h
                                  P1=tabdowm[i];' c, W; v& d2 u5 G$ U5 N
                                  delay(2000);3 L, V2 |: D. u
                               }
    / m; y3 d4 E" k1 {# K, d3 Y/ @$ l                        break;2 A2 r6 V5 I1 b5 y5 T
                    }) {" @, [/ a+ a/ P1 m
            }
    7 i- J" g" T3 ]- h    }% F* t) x) ]% G- t
    }
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-17 11:28 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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