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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include <reg52.h>  //头文件
8 C8 {+ p. T2 Z5 O: h#define uint unsigned int   //宏定义
) y* m: Q+ S+ j! a; r- q8 g" W8 ~#define uchar unsigned char
' H/ J: Y$ j- t% v7 tcode tabup[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
( e0 z# T3 {! J. C% ]code tabdowm[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};) _- w5 L3 W& K1 C% J9 U6 a
void delay(uint z);
% n; J0 Q) o6 {' T$ s2 Mint i;
( I" Y; i) h; ?8 m: B# M5 L* Dsbit beep=P2^3;
7 S: K9 ?6 q; q: Yvoid blue_Init()   //蓝牙串口初始化
% l$ ~3 ]9 S+ _$ `( L{
9 X7 q$ w7 H7 h( w/ f4 [    TMOD = 0x20;5 j8 W' f  k7 T3 j" ?5 W2 |! M0 ~
    TH1  = 0xfd;     //9600
( s& ^  L. K1 m- e/ h: z  k8 R    TL1  = 0xfd;, A0 h8 A7 I. R0 u
    SM0  = 0;
0 i9 I  s4 Y+ Y- g    SM1  = 1;               
: m: Q3 m7 e/ _* Z& I    REN  = 1;
7 ?7 Q. [% F; L) k8 b' Y    TR1  = 1;
  z8 T3 Z3 h5 @3 R+ l) p  h: R}
# D/ B6 k* \' i1 h. g0 x# v( {/**主函数**/+ H; w# q" O/ \
void main()
5 ?- ]) L; r5 H: U. M* k{) X1 `2 G% o) D/ s
    int a;. a8 c! k  k" p
    blue_Init();$ v  \7 B1 J+ S
    P1=0xff;
( b& U3 a" `1 a* E6 E    while(1)! o0 ?+ N2 r- }; O, b  j" H. k; C: B
    {, c# d: ?6 S& _. X
        if(RI==1)                 2 ?' J6 e7 n. @; z1 {- H) G$ I
        {  4 S1 B8 p: T( |* ^
            a=SBUF;
# z# c# @7 M5 Q5 l# `' p            RI=0;
5 b, k& b9 ^4 g/ Q1 Q( _8 B            if(a=='1')         //熄灭LED4 \- t. i- w+ U) T7 q. u) v" X& e
            {. o& D. M' C5 Y) C' z4 O
                P1=0xff;
( @* s* e$ H# K9 I1 k! v7 x                                                          beep=0;
+ _+ ^4 C9 w4 [& T/ ~: z                                  delay(100);% ?& U, D! U: r3 f
                                  beep=1;; S) x: S, L8 [* O/ h# l. I8 w8 ^& s
            }   8 {2 n( F5 W, t) n9 F$ \
            else if(a=='2')    //点亮LED9 _  t6 F3 G* x1 P" M4 B
            {  X/ z  x! s& [6 _) }$ ^- j5 r
                P1=0x00;
: a2 N- C# P1 J                                                          beep=0;! v  a7 U) E# Y; v
                                  delay(100);
: i8 q% s# y- d- _9 D                                  beep=1;
0 g) t  u3 W' z            }, _6 N0 }" _* U: r# {) X9 i& t
            else if(a=='3')    //顺时针流水灯
, b1 f4 ]' g  n% A. K7 m, T) g            {
+ v% D; [2 _* k                                                        for(i=0;i<8;i++)! t* {( k: o. c7 y) x
                                                        {# e- I7 R4 n8 B. r. O
                                                                P1=tabup;
& j1 R' F3 M6 `# q' N9 B6 r. P! s+ B/ A                                                                delay(2000);
( k' \1 p; T. J, M& ?6 ]/ `                                                        }  |4 r' O& _# ?8 D4 y0 @
                                                }- X; X/ B8 I# h* r5 v" K8 v
                                                else if(a=='4')    //逆时针流水灯
0 g+ x* S5 K$ S% h" Q                                                {
4 g/ L2 Y/ o, a8 r- o. _5 |                                                        for(i=0;i<8;i++)
6 J: h( X+ _3 v7 w+ ]/ A                                                        {
! \- I& b4 u4 l; Q8 e% \                                                                P1=tabdowm;! i; e$ J9 Y7 M- I! i6 M7 g
                                                                delay(2000);+ j3 U. V) [0 Z! L3 Z
                                                        }
; ^# W+ j$ O$ t+ H                                                }, @/ y2 s4 Z( l7 G2 q
                       / L7 a- H1 R$ ?2 n" N
        }    f6 I$ {% o) i$ ^) g
    }
8 x% C4 H0 b7 d. k5 q$ e' q}
/ o$ @# q2 L! u8 @2 \1 @$ D: Avoid delay(uint z)  //延时函数
: d. n3 }: ^. Z; P: p5 w, c; m{7 _# ?. i- P+ a/ ]# C  Z
  uchar x,y;  
: K& r0 p& R- C( N8 ^2 j  for(x=z;x>0;x--)
  s! p: M0 y8 Y* ?9 c. q  for(y=210;y>0;y--);
6 i0 f/ U- n! N$ N}8 R( b+ ~: W3 R8 Q3 {

该用户从未签到

2#
发表于 2021-5-8 09:24 | 只看该作者

) r( {2 ^7 o4 z你这个程序不循环就对了;要串口发一次,循环一次

该用户从未签到

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

点评

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

该用户从未签到

4#
 楼主| 发表于 2021-5-8 14:02 | 只看该作者
行者~ABC 发表于 2021-5-8 13:34
0 ^9 J  ]+ l% S! t5 \, Z如果要实现循环怎么修改才可以

0 ?" A$ @6 T- g, Q3 O& B5 |如果要实现循环该怎么修改?求教学或者写一个完整的代码参考一下,十分感谢
! P) N4 s) L7 y1 k* y% P

该用户从未签到

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

“来自电巢APP”

  • TA的每日心情

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

    [LV.3]偶尔看看II

    6#
    发表于 2021-5-12 19:47 | 只看该作者
    新来的,看到你的程序,本身是无法实现相关功能,求详解。在你的基础上修改了一下数据,请尝试一下:
    ' E2 w7 L- Z* x9 R9 Y#include <reg52.h> 8 ]7 Y) ~9 V& j8 K
    #define uint unsigned int   
    . i9 X9 E. P8 X+ `#define uchar unsigned char
    $ z3 ~2 S( s8 l  j' V9 Icode tabup[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
    1 O2 O  j2 X; w; o7 ?" Ycode tabdowm[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
    ( j( h/ ^% X, b7 G/ @sbit beep=P2^3; ' i! K5 O. }9 N6 f6 M
    void delay(uint z)* W* L. U3 }8 J: I# c2 ?
    {
    ( s1 X3 C4 O/ H7 X( A  uchar x,y;  + i# d" R! Y1 j, H" I4 v
      for(x=z;x>0;x--)
    * B# }+ X& U5 ]2 L( |* S. y5 V          for(y=210;y>0;y--);
    1 t7 L# v  w# J' p* a7 d  U}
    # Y. i6 Q. \, X% p8 A9 X! p5 J% M$ Mvoid blue_Init()   //蓝牙串口初始化6 W# |% s$ o( U8 t& S0 {3 r% r
    {8 J0 i* Q; U* L
        TMOD = 0x20;
    7 a7 m' k6 e" _    TH1  = 0xfd;     //9600
    0 W$ _6 [7 ?+ r* B7 R8 s    TL1  = 0xfd;
    5 |: M2 f  B  [0 S( j    SM0  = 0;  }/ K0 Y2 u7 }: ^# K$ f
        SM1  = 1;              / D: g' ^+ A1 {
        REN  = 1;8 B1 v+ c1 V. I( ]* k  |2 i. H
        TR1  = 1;
    ( d- j8 T! v. t7 a( \6 O}+ l7 f( _# @9 x6 U" c' i2 g
    /**主函数**/' X; B. D* `; w* T" J# E5 `
    void main()
    + o9 T3 j, U% C9 p{& W$ \* r/ @5 f. `& r
        int a,i;7 t) d1 e2 I+ x1 P$ `
        blue_Init();  |* {3 G% |4 i/ I: e
        P1=0xff;7 U+ b; B0 Y/ _0 t! R* `; y( W9 q
        while(1)
    ) C. N1 q2 L' D    {7 j; W3 ]- r4 C$ E6 x! i
            if(RI==1)+ H. L% R: R( e6 _7 a
            {2 F2 C& \0 N4 A2 z: a9 W
                    switch(a)# Q# W% I, J. W1 B$ l
                    {
    6 g$ H! _! o1 I: @                  case '1':
    / @3 Z* j  d# T/ L                         P1=0xff;
    : `& v/ M  P8 N2 H: G5 p6 q7 I  S                         delay(100);
    + ~8 G* _+ k& ]! P* m                         beep=1;' [3 x' _2 v- B. F2 s
                            break;
    ; y3 n5 v% y! b5 g% b                  case '2':
    * ~8 f# L; r4 A) \                         P1=0x00;
    , a, l; R  t2 B6 y. j7 l                         delay(100);
    & W0 H+ }1 T/ h, ]; X- B# i: M                         beep=1;
    6 S( X- {/ J' @1 y1 W# q                        break;! L. c( D" V* l7 o. R; y/ q  E
                      case '3':9 r% U/ i" e- W8 G
                             for(i=0;i<8;i++)
    / Q5 ]. t$ D9 d: J                         {
    ) b+ `- V, o# L! @( O                             P1=tabup[i];5 _! r# r( C! W$ K6 l8 L
                                 delay(2000);; v( E0 I" ?  u1 @3 X/ A, m9 g
                              }1 g! x0 [  i8 q, ?( x% l
                            break;
    * [; v. D: Q( Y5 y; c/ j; w                  case '4':
    5 N8 S3 @# Q" M' W5 {                          for(i=0;i<8;i++)
    ; c- y  S$ y1 t: N                          {# b" k% V; d4 x- s5 s1 }6 y
                                  P1=tabdowm[i];
    , h' C1 y* m. v* @" O$ m, V2 m                              delay(2000);2 S7 M$ F& N% V5 X7 {
                               }
    ! I9 f1 [# o4 x1 g$ H' }9 r3 h                        break;
    / }$ H. W" |. N% C2 w  s8 D                }# e' }1 K# ^. L2 u9 H2 d9 A/ N
            }. r+ e0 t- M: F3 u7 T% v( L% H
        }8 i, g/ Z  J! w
    }
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-21 01:07 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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