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

求助:51单片机接蓝牙模块

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
求助:51单片机接蓝牙模块! q! O: Q1 i% I& x' j5 y- b/ G
- n6 s0 H/ p- W; x; \3 }# M
想用蓝牙模块接51单片机,实现手机控制灯的亮灭,要怎么做,请坛友给予帮助,谢谢
" p+ S8 J3 t/ j" o+ e

该用户从未签到

2#
发表于 2019-4-24 14:52 | 只看该作者
分两块内容:
+ S7 x7 ~1 c# M, t7 I手机端,设备端。二者通过蓝牙模块实现通信(串口透传就可以)
, t% N0 U- H% S2 k手机端要完成软件的内容:# h. O2 H1 ~6 _  G- r# f3 E
1、侦听按键,按键操作触发后将发送的数据通过串口发送。$ W0 k% b& u5 \8 p' Z( z; V1 r
2、蓝牙串口透传。2 d/ ?; Q3 d  U$ _2 F% v

: ~, x- ^4 m% Y1 h0 w6 x* g设备端 的功能% E1 P* F. F% h7 W

5 W3 S- M3 E; j6 h, }  D# `) G) |1、蓝牙芯片(协议栈+串口透传)收到数据给到单片机' H0 h: u6 K5 p" S8 v, [
2、51单片机:收到数据:A(代表按键按下)----控制灯点亮,B(代表按键松开)----控制灯熄灭

点评

有点不明白,有没有可以借我参考的  详情 回复 发表于 2019-4-24 15:03

该用户从未签到

3#
发表于 2019-4-24 14:54 | 只看该作者
看你的蓝牙有没有串口透传功能啊

点评

我是用hc-05的。。。  详情 回复 发表于 2019-4-24 15:04

该用户从未签到

4#
 楼主| 发表于 2019-4-24 15:03 | 只看该作者
yxlk 发表于 2019-4-24 14:52+ q. a  j* r/ V$ Z3 a% T7 ^
分两块内容:
& e) Q5 M& O) M+ ^4 B  x手机端,设备端。二者通过蓝牙模块实现通信(串口透传就可以)  x, M+ S  H' h& ^% o. Q/ J
手机端要完成软件的内容:

% k1 T4 l" P5 ^) f7 f$ ?1 ~有点不明白,有没有可以借我参考的
; b. \9 m4 N- e$ e

点评

手上现在没有这样现成的案例,而且看你51的代码应该没什么问题啊。 你先不要用手机来控制,找个现成的蓝牙转串口的模块接在电脑上,用蓝牙跟你的51系统连接,上位机用串口助手发送指令试试能不能控制。如果可以那就  详情 回复 发表于 2019-4-24 16:06

该用户从未签到

5#
 楼主| 发表于 2019-4-24 15:04 | 只看该作者
gaoxings 发表于 2019-4-24 14:541 ?! F& p. d1 G" G& [2 ^1 V
看你的蓝牙有没有串口透传功能啊

' ~7 D& E' c5 Z5 w3 c4 `我是用hc-05的。。。8 Y0 L+ s' y5 C

点评

那应该没有问题啊  详情 回复 发表于 2019-4-24 15:07

该用户从未签到

6#
发表于 2019-4-24 15:07 | 只看该作者
artic 发表于 2019-4-24 15:04
3 Q/ a' j, o0 X+ x& M8 e6 Q我是用hc-05的。。。

; U9 ]" j1 f5 ]1 c那应该没有问题啊
) r6 p% A# w; ?1 |

点评

难道是程序出问题了? #include #define uchar unsigned char #define uint unsigned int sbit led0=P1^0; sbit led1=P1^1; sbit led2=P1^2; sbit led3=P1^3; sbit led4=P1^4; sbit led5=P1^  详情 回复 发表于 2019-4-24 15:12

该用户从未签到

7#
 楼主| 发表于 2019-4-24 15:12 | 只看该作者
gaoxings 发表于 2019-4-24 15:07
! ~( f8 N6 P2 |1 {9 h那应该没有问题啊
* O9 U; f* i1 @% t' U; R
难道是程序出问题了?
3 C3 N; e* `2 p" S- W, g#include<reg51.h>  
" u+ F+ Y% i, J6 l1 v- n#define uchar unsigned char ( U1 ?2 c; b0 _2 I
#define uint unsigned int      
6 [$ w& p% N9 l; vsbit led0=P1^0; ( J1 t; i& n) p! R0 B
sbit led1=P1^1;   m' d3 M: D5 B
sbit led2=P1^2;
! V3 R& ]* i0 ?5 `2 \0 l# hsbit led3=P1^3;
- S1 h+ G: p5 `( p  hsbit led4=P1^4;
1 n& A0 _$ F0 Dsbit led5=P1^5; ( ]7 T- \2 K( O* \- ~
sbit led6=P1^6; # N: \9 z1 Q0 w
sbit led7=P1^7; ' Q- \+ E* \- t+ ~6 }+ ?. a  o, T

" ]# |5 C; S, Y+ h; H! Pvoid delayms(uint ms)
1 M+ l4 }& b( u, U6 U{  : q! d( }3 q( C
uchar i;  - R6 L8 a. ?4 f$ U9 v
while(ms--) for(i=0;i<120;i++); 8 e: p6 c7 H6 l3 r& H8 w  Z0 @
}  
+ m4 t; z- O, ]- b4 k3 l7 u//主程序
' m# \' S' ]3 E5 y1 Svoid main() , A. G2 g$ P, k9 E! Q- _! r
{  3 I& T: }( Q! i+ X. W3 s& V( h
SCON=0x50; //串口模式1,允许接收
. B' l4 L1 {8 P" x* n. YTMOD=0x20; //T1 工作模式2 & [% a: C2 X5 M" W9 g
PCON=0x00; //波特率不倍增 ( k% \) E5 h2 x% b# K
TH1=0xfe; //波特率9600 ' e8 O+ ]2 b3 F+ X! e
TL1=0xfe;
+ r- n: b9 B7 Y. ?RI=0;
4 }% o# O. L& @; fEA=1; + s0 Z5 \1 [+ ?* g  V1 o
ES=1;
) ?9 t4 x5 t* B, \" Q+ D/ a2 JTR1=1; / A" a! @% e5 z* A4 f
P1=0xff;
' U2 B4 C( @2 V; Swhile(1);
: `& c) {# h" Y2 ]6 ^}  
) w0 I6 k4 p% {3 }void Serial_Int(void) interrupt 4 # l3 o" y. y: A% c$ k2 G7 J$ b$ d& U
{  & d) z, |6 E. v4 f) _
uchar a;  
# {7 v0 Y* E5 Jif(RI) //如收到则LED 闪烁   
+ |) X$ o7 ?6 Y' t4 x{      
' g, h" ^; r) |: }% {5 W+ X3 ERI=0;  
% q0 X, O- c5 Z5 h' w1 |a=SBUF;     + i  b  @$ V% T) |1 _
a=a&0x0f;
) s" L0 d3 K8 z6 V8 l( e1 gswitch(a)  2 J( a8 s, L+ y& s
{  9 |8 `) Q' l! K0 h. H. ^9 R
        case 0x00:
8 b5 f) ?7 i, q% k                            if(led0==1)      
7 G6 V' G6 `3 w3 J                                {   
( ?1 Q7 h' y" f, a' x6 Z) P                                        delayms(10);
, i% H- b5 i1 V# K/ s/ g9 C                                        if(led0==1);     + m. o" k/ T+ U$ p2 I
                                        led0=0;
: d1 M( `7 u* _8 Y; E  u) G- X                                }       # _. `) t( o- o8 v9 H
                                else led0=1;break;      7 ^2 m# g9 K* R+ c" q
        case 0x01:      
! C! ^# ?! y, i                                if(led1==1)         
0 l8 `8 J7 y6 f/ f                                {   . k+ V+ }3 X" t2 m1 ?
                                        delayms(10);
9 T+ v) m8 H. E+ ~' |! C: a                                        if(led1==1);% F9 |0 M# X1 E7 o* e0 g
                                        led1=0;      ; j7 }- f$ C5 t7 u- w
                                }      
8 x7 i* |* F- M/ ?3 T; J" f# r% J                                else led1=1;break;  
+ d, P9 w8 o* D  Q7 ^' \5 E) I        case 0x02:        
/ `+ t$ t, N4 A0 ^3 u& a1 T                                if(led2==1)     
4 M# b2 l6 B8 {3 ~5 }6 k& T                                {      
3 m2 F+ v- q9 H8 i8 V, {                                        delayms(10);
# ]0 ~9 c1 E) _. I# d7 C                                        if(led2==1);
* F/ [) ?; A' z: }$ j7 U                                        led2=0;   
3 |* |# G$ ~; D  J& i8 q  w                                }     
  P! O/ a& V; [0 Y7 B7 f4 \1 @                                else led2=1;break;  ) W7 ^* t; \# w$ S9 b$ ^
        case 0x03:      
. j  @* x3 q4 `* p& n: D% ^. h- s# b                                if(led3==1)       7 R4 z0 {- T5 J1 D( k  Q8 \* c4 o
                                {        $ H$ `/ ?' ]& d# K3 ]
                                        delayms(10);6 b2 D# X; [+ N# g0 M. p1 U/ |& j. Q
                                        if(led3==1);; N1 @) t4 ~; ]  W: c
                                        led3=0;      4 X( u9 T5 ~5 |3 a8 R, J4 b
                                }      
3 D7 g& z2 z9 O7 o; z( P- g                                else led3=1;break;      + E, ~( U& Z% j* n9 d$ H
        case 0x04:      
6 F% w% e4 C' w. m3 A                                if(led4==1)         . J( T) \; d: o& x) K2 j5 U" t
                                {       " f: B5 u& X! R/ S/ _
                                        delayms(10);
/ X9 y7 D5 w; i% n  A$ p# Y                                        if(led4==1);
3 u0 a. i$ f7 E$ i9 B) R                                        led4=0;      / H6 ^' V: [/ G5 s. u3 j0 B" Y
                                }      
: F# z$ X6 B# A$ ^: T                                else led4=1;break;  
0 O3 F4 C- b5 \6 O        case 0x05:        
( j: v  U% T$ u; e) e                                if(led5==1)     
% a( x8 V4 A: t0 L9 c5 L                                {      6 I! ^5 ?2 Q0 c
                                        delayms(10);% P4 M- s& f$ A- H5 O
                                        if(led5==1);6 ~9 G3 c5 i4 |0 W* T
                                        led5=0;     2 Q& L7 G1 a8 g+ z! E0 X; _) \# X, K
                                }     
. C. C  i) T0 J! a                                else led5=1;break;  
8 n: v/ r7 B# S        case 0x06:      
* H2 S8 A' b$ Z2 l2 Y1 q$ Q5 B) B                                if(led6==1)         
" ^$ w7 c7 x( B( Y" E/ u                                {       ' G7 L+ c' H# f; T" X0 b5 b
                                        delayms(10);( a2 U+ p  T( @
                                        if(led6==1);
  T) |9 y- _1 l6 W# F  k                                        led6=0;      ! }  j. D) W8 I  z! E# E2 `
                                }      ! B9 ?9 _7 s1 v8 C1 O+ h
                                else led6=1;break;  9 \2 }6 d" L, X# b5 q4 {1 w6 q1 ]
        case 0x07:        : ?5 A2 G, v* |
                                if(led7==1)     3 L6 n% h" J$ x+ D2 w1 w' o3 @
                                {   E2 a) v6 \( ]1 Z
                                     delayms(10);) g4 K$ f' P$ K% d
                                        if(led7==1);
1 Y8 e$ D1 z& ^                                        led7=0;     
+ o% F7 C, x2 U' a6 @6 j  T' W                                }      
! F+ t' Z' p, ]! ]+ `                                else led7=1;break;        ! q% \6 Q; X+ I6 J
                                }      3 u5 p5 v; J$ [- L, K: @/ }1 n
        }   
  n/ }6 d- ~- v& m! d5 j}! J/ B. G: |" W% j
这是程序3 i6 o2 j9 m' A6 Q  a" v3 Y, a* C

点评

还真没看懂你串口中断里面要干什么,这里应该语句尽量少吧  详情 回复 发表于 2019-4-24 15:53

该用户从未签到

8#
发表于 2019-4-24 15:53 | 只看该作者
artic 发表于 2019-4-24 15:12
# o( D2 @. y- _( E3 q" K难道是程序出问题了?, f, h: J& v2 i% U  v) {' f
#include  
% a% ^0 c2 R: e" ]2 R' P#define uchar unsigned char
$ E: _: }# A% e. @. z
还真没看懂你串口中断里面要干什么,这里应该语句尽量少吧: i. l! {5 _4 j/ o! i) B3 G- n+ `

点评

楼主是设计了7个灯,对应7个键值,不同键值点亮不同的灯  详情 回复 发表于 2019-4-24 16:07

该用户从未签到

9#
发表于 2019-4-24 16:06 | 只看该作者
artic 发表于 2019-4-24 15:03
+ |/ R" I4 @" V9 P$ B/ B有点不明白,有没有可以借我参考的

, a0 [3 l' M2 I) _  Y手上现在没有这样现成的案例,而且看你51的代码应该没什么问题啊。  你先不要用手机来控制,找个现成的蓝牙转串口的模块接在电脑上,用蓝牙跟你的51系统连接,上位机用串口助手发送指令试试能不能控制。如果可以那就是你手机端的程序问题。先定位问题点在哪里,然后再看怎么修改。9 ]! z7 H; e  I! v
另外你能不能详细的说说你现在出问题的现象?可以的话配几张图片,方便大家了解情况,要不然只能靠蒙。。。。3 }; w; i! u+ k5 |1 p' z9 s) {) H

点评

已经弄好了,是程序串口那部分的问题  详情 回复 发表于 2019-4-24 16:22

该用户从未签到

10#
发表于 2019-4-24 16:07 | 只看该作者
gaoxings 发表于 2019-4-24 15:53
* |8 _* x0 o! {  v+ @; l7 o还真没看懂你串口中断里面要干什么,这里应该语句尽量少吧

. G" W3 u# s+ Y& I楼主是设计了7个灯,对应7个键值,不同键值点亮不同的灯
& G8 w3 ]8 L8 ?0 Y) l

该用户从未签到

11#
发表于 2019-4-24 16:13 | 只看该作者
在中断里面延时10ms,还说没问题

点评

厉害 这里确实不该这么写  详情 回复 发表于 2019-4-24 16:20

该用户从未签到

12#
发表于 2019-4-24 16:20 | 只看该作者
gaoxings 发表于 2019-4-24 16:13! Y  I# J5 t  a( |
在中断里面延时10ms,还说没问题

7 Z* t, H1 s+ y- U) a; c9 Y厉害 这里确实不该这么写
( J0 e8 P; J# g1 _2 P$ D2 e

该用户从未签到

13#
 楼主| 发表于 2019-4-24 16:22 | 只看该作者
yxlk 发表于 2019-4-24 16:06
: W) J& L0 M  l: w3 f  ~手上现在没有这样现成的案例,而且看你51的代码应该没什么问题啊。  你先不要用手机来控制,找个现成的蓝 ...

0 J5 d) R, z! H! G$ x5 S已经弄好了,是程序串口那部分的问题1 E/ {& n) U- P( y; X0 R
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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