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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include <reg52.h>  //头文件  f- I; i- x1 D' ^& W1 G4 v1 @, ]
#define uint unsigned int   //宏定义1 O) \6 U6 o7 C
#define uchar unsigned char) h, Y6 d7 R$ Y1 b3 c2 n& i& i
code tabup[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};7 R7 K; y* D  r, s. V2 p/ w
code tabdowm[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};7 g! n# D  R% G. q& ~8 }' E
void delay(uint z);
& U- A$ D* ~' x5 [& k& g$ Q; L3 cint i;
0 V' t1 d& u: fsbit beep=P2^3;& ]5 J3 K: W6 }8 ?7 C$ \
void blue_Init()   //蓝牙串口初始化1 R+ `3 y8 K: |* P3 c* F
{
/ t) C9 ]" \* b    TMOD = 0x20;7 q% U& |# [* I$ Y- T; Q+ p1 d' U
    TH1  = 0xfd;     //96003 H: q, E. c- j) d5 T
    TL1  = 0xfd;
, J( p% C7 z; c& Y* l1 f    SM0  = 0;% A- ]3 P/ `2 A  u! w
    SM1  = 1;               
/ F& D2 A4 W$ v/ ^8 c* \    REN  = 1;
  [- R9 W3 {" t) ?6 Z, M% g! q& X+ |    TR1  = 1;7 t" k- P5 c! U0 X
}
- d) B' J2 w" j4 T$ e4 |. W/**主函数**/0 W) {2 b1 }8 f% r* w
void main()
8 M$ w) i/ D$ F9 I/ v: V8 \2 t{
* T" a, b$ B& \  W: Z, e    int a;
! [. t, ~5 e% \7 r    blue_Init();
7 F3 B3 F+ g/ F! [( E; S: L7 x    P1=0xff;4 ]2 k8 s6 b! I6 ~2 y1 }! A
    while(1)+ f3 t1 s* j2 w" Y
    {
' c# S: d  o6 I# ^; i        if(RI==1)                 
2 x# k0 D( B7 E1 ^: s. r% s+ m        {  
/ u( L% G/ H$ G+ Y$ r            a=SBUF;# @! z6 ]& g$ y! t
            RI=0;, v. B. ?- {: j
            if(a=='1')         //熄灭LED
" Q2 ], h2 q1 A" |9 Y            {
2 Q3 q: y- N& W4 `                P1=0xff;; q+ `+ P/ S- z8 c$ `; o
                                                          beep=0;# r8 l0 p6 @+ l0 T" [. F- G1 }( J% v
                                  delay(100);
, V* K/ t( P9 }- w9 Z( m% C5 N1 f( n8 m                                  beep=1;
) v4 d: K* {8 @* }2 Z$ t3 O+ }            }   / T9 b9 r7 h1 L! Z2 Y+ ]
            else if(a=='2')    //点亮LED) w4 M0 C$ z* P) i
            {. u3 C6 O! k+ Z! [
                P1=0x00;" ]3 p8 v$ S2 d& S
                                                          beep=0;
% u6 B0 m6 V5 ?; S$ U& }: K                                  delay(100);  ^. O' B  E( }: _( V
                                  beep=1;( g, b( w/ U& Y% d. `
            }
6 H$ y! t8 [0 g1 \; C5 B            else if(a=='3')    //顺时针流水灯
6 Q8 b2 n0 x8 X" j' J            {
3 D9 p6 ]- |' b2 T/ \6 v                                                        for(i=0;i<8;i++)
$ k% n- m7 i0 r& p; P$ n2 \) Z( k% j                                                        {! U/ f# E; B! q+ s6 U
                                                                P1=tabup;5 r7 B- z; W' P6 |8 _& E
                                                                delay(2000);
8 d* ~) ~0 t; e                                                        }" i8 @% {' C! |% \- J
                                                }- ~' z1 u, E9 Q3 C
                                                else if(a=='4')    //逆时针流水灯  O. E4 v+ M; [1 @
                                                {
5 S8 W) l1 o- N  \# i* H% G$ a, a                                                        for(i=0;i<8;i++)/ {* p, x& o6 Z
                                                        {
1 ]0 d! ^: j& T                                                                P1=tabdowm;/ i, ?2 C4 z' D, P* ^$ c+ |
                                                                delay(2000);. \( Z6 j  O; c7 M
                                                        }+ [  ~% P! p: e& D
                                                }
1 I. i, W* D+ b+ e                       ) y/ z3 h$ i2 F7 C( S4 a
        }  ' u$ `3 l( F2 i+ o) m# d
    }2 r6 P# |) R: J: W. T% r# p# ~- \
}) E& n! q3 C/ f0 _/ [+ _" T
void delay(uint z)  //延时函数* _" m9 z0 j9 U! G2 z. h1 _
{
6 q; }% |* Y" |8 q6 Y% y  uchar x,y;  , u; g) C4 K2 a5 l
  for(x=z;x>0;x--)6 i, m2 F; U: H% t2 A3 O+ r
  for(y=210;y>0;y--);2 j& ^! q# b6 k. x% R' ~' X0 G
}  }+ r4 l, z1 O7 m: ?

该用户从未签到

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

% n+ U9 U. w; }; ?5 ~$ j2 L你这个程序不循环就对了;要串口发一次,循环一次

该用户从未签到

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

点评

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

该用户从未签到

4#
 楼主| 发表于 2021-5-8 14:02 | 只看该作者
行者~ABC 发表于 2021-5-8 13:34
4 f) Z! {' K3 Q6 N" n' q如果要实现循环怎么修改才可以
- a4 r7 q" T6 d8 V6 v& _+ b8 a
如果要实现循环该怎么修改?求教学或者写一个完整的代码参考一下,十分感谢
1 T8 J) h9 I+ W! R4 A# y

该用户从未签到

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

“来自电巢APP”

  • TA的每日心情

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

    [LV.3]偶尔看看II

    6#
    发表于 2021-5-12 19:47 | 只看该作者
    新来的,看到你的程序,本身是无法实现相关功能,求详解。在你的基础上修改了一下数据,请尝试一下:
    ) D* M& B$ C1 n" G#include <reg52.h> : b. e' Z, K$ H8 M# P4 m
    #define uint unsigned int   
    5 @$ @' W7 s% P/ [#define uchar unsigned char% C$ \: \. ~$ P7 Z
    code tabup[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};+ n6 L& [% f' e5 k
    code tabdowm[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
    : e+ c6 \& l7 J- b5 U% t. Msbit beep=P2^3; 0 V+ @0 j& q) Z5 v2 T3 ?6 P- V
    void delay(uint z)9 S/ k; j9 ~0 C, |5 i, Z
    {
    1 {" r$ \2 G3 y& ]: K% f2 B  uchar x,y;  0 d1 l1 H0 A/ F$ C
      for(x=z;x>0;x--)1 w3 Q# j/ v) W. f
              for(y=210;y>0;y--);
    * {5 ~( _. F# p. u}& A% H0 \: D" ]
    void blue_Init()   //蓝牙串口初始化% b+ A8 y$ s' _6 ]
    {4 u3 E% k: A- Y% P, F
        TMOD = 0x20;7 i1 G3 R2 \0 P1 _1 Q; O% a
        TH1  = 0xfd;     //9600
    - s$ I% n$ P* j; L8 q; B% m    TL1  = 0xfd;9 {  b  u& t# h
        SM0  = 0;. D7 |( |0 t, V( p" Z3 Z
        SM1  = 1;              
    7 a  y/ x1 h) N- |* F! r% B    REN  = 1;7 ]7 D9 ^- X: f& m$ R- Q+ b
        TR1  = 1;7 K0 T2 ^0 x8 g; E3 `4 Z
    }
    : t" O9 t. ], F1 x/**主函数**/4 a* `4 y3 P' L  o
    void main()
    : w) P: C1 w; J1 u' t. [7 k3 T: t{
    9 R) ]$ V2 `+ h. R$ Z: L% J3 j    int a,i;
    1 I! Y4 T  M  @  e/ A    blue_Init();. u4 n8 D( s/ ^, D
        P1=0xff;* Q' ?' k3 l3 g% ~
        while(1)
    5 n7 W% W+ r! f; {; O9 _% _! M    {8 @$ v; W( A2 X
            if(RI==1)+ m$ X" f0 R$ M8 ~: X$ O
            {
    1 T6 Q; t( Q2 Q& k2 G8 x                switch(a)
    ! \9 s+ F3 @* n                {( C/ u1 R( H' g- I  S+ d
                      case '1':+ a0 d; z$ B, e! e  M2 X; U2 l: C
                             P1=0xff;
    9 e$ L! b+ ]/ c4 _2 P2 L                         delay(100);/ U* T# f& |& e$ ]  Y  q
                             beep=1;# J$ ?' @2 v/ l( Y1 e) D( x* r
                            break;& i% \% J6 w' f: }& E# B
                      case '2':+ \/ b& v8 s0 D0 P7 z
                             P1=0x00;
    / z1 k5 A+ P. j8 j! t7 K' }                         delay(100);
    * V: e4 T; s" B  g. z                         beep=1;
      O- u0 m+ Q0 \: j                        break;6 Y+ G. |& c) y# ~' {0 X: `$ Q
                      case '3':: B1 G7 c8 l+ O* L2 @- Y5 W1 T( ^
                             for(i=0;i<8;i++)
    4 |; E0 \+ Y) J" [                         {1 c* x2 X# F9 @
                                 P1=tabup[i];
    8 s$ w2 U& D: ]# u! r* ~/ N& n                             delay(2000);
    / z' N" j! |. }: d  t  \; G                          }8 y% u# n1 l$ U/ l! l' {7 Y
                            break;
    8 |. V1 G9 M: G) a2 c                  case '4':' D5 x. |; B; H+ l: H  D- s
                              for(i=0;i<8;i++), n2 S( @8 f, m4 a* j4 r5 N
                              {
    ' w) C" R8 V( n, q+ }                              P1=tabdowm[i];6 y/ L" v* i% v! m& c: f4 \
                                  delay(2000);/ q+ w& e7 x- y6 S1 @  Z" p% z) d
                               }/ A2 ]3 M- V* x) \- F
                            break;) V# w# r/ h/ ?1 H* c0 N
                    }7 x0 [. A' j( k7 X2 D
            }
    3 {2 A1 ^& H+ S7 ]8 W: m    }
    6 C5 W7 o6 a2 l5 N}
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-10 06:58 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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