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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
求助:51单片机接蓝牙模块' h* h) V$ V! ~8 M1 H) z
  A) ?$ Q- x: X0 t
想用蓝牙模块接51单片机,实现手机控制灯的亮灭,要怎么做,请坛友给予帮助,谢谢5 K5 h+ h5 [" p  j7 k  L' u# C

该用户从未签到

2#
发表于 2019-4-24 14:52 | 只看该作者
分两块内容:; l, }/ u, \- X* `. N. J" Z9 G
手机端,设备端。二者通过蓝牙模块实现通信(串口透传就可以)
  {3 l8 W( v$ j  S$ F# X& b手机端要完成软件的内容:/ Z8 z' J8 C, y) C
1、侦听按键,按键操作触发后将发送的数据通过串口发送。
/ x2 `8 N3 B) T& U, F9 E2、蓝牙串口透传。( ]( c+ o; W; R8 x

8 i, U- R2 ]5 j- I+ B/ u4 ~) a设备端 的功能3 m9 `$ @- v# e7 j" g

" m# Y9 ^, T+ L5 z1 G8 D1、蓝牙芯片(协议栈+串口透传)收到数据给到单片机
# A& k* ~& k+ O6 G* n8 t8 X- m2、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:528 I) a4 l: G& }. [
分两块内容:0 [/ e3 U0 B5 o/ {
手机端,设备端。二者通过蓝牙模块实现通信(串口透传就可以)6 d1 E4 e. k* q0 V/ k2 X# F
手机端要完成软件的内容:
8 S$ c2 ]" W2 k% W
有点不明白,有没有可以借我参考的/ F$ m4 I- G/ x( L' I

点评

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

该用户从未签到

5#
 楼主| 发表于 2019-4-24 15:04 | 只看该作者
gaoxings 发表于 2019-4-24 14:54
; h0 t8 ?0 e2 ?看你的蓝牙有没有串口透传功能啊
' {( Y* Z- m  Z* m% l( v4 r! h
我是用hc-05的。。。
. I' R2 i- _; a! |% V" r/ L& h, F" I! k

点评

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

该用户从未签到

6#
发表于 2019-4-24 15:07 | 只看该作者
artic 发表于 2019-4-24 15:04- r4 A( F5 Z9 b; k! H3 v( c# b7 q
我是用hc-05的。。。
1 ^- y( |$ K0 d8 V- _) g9 B
那应该没有问题啊) T1 J4 W) J1 M; u

点评

难道是程序出问题了? #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
8 _0 [+ j+ J$ M" M0 x那应该没有问题啊
( Z: h  p' g( R* `4 a. Q2 c
难道是程序出问题了?- ]3 I! Q+ X7 y) E
#include<reg51.h>  0 T  ~7 _4 R5 }0 E* ~8 h
#define uchar unsigned char - c4 e5 L$ Y* w; C, L' a
#define uint unsigned int      ) f% D! F9 D$ Q
sbit led0=P1^0; ! V& L/ W, L8 f8 [( E* o7 z6 I2 r$ N9 f
sbit led1=P1^1; 4 b+ D0 q7 U7 G
sbit led2=P1^2; - x9 ]+ \* |3 g
sbit led3=P1^3;
% y% r( ]1 o8 l* @8 k" a0 e7 ~* tsbit led4=P1^4;
  y7 l5 b; \3 ~, O1 X* j# i: Q+ A, msbit led5=P1^5;
1 _/ h& f4 T# Q# k8 Isbit led6=P1^6;
6 D' f! O3 x# o( a( msbit led7=P1^7;
& D$ j. c+ S) b9 M; w
- \! q& m# m0 H( p: h  lvoid delayms(uint ms)
6 }% c4 J2 u' s2 b% u6 E{  
2 H; `4 T$ o$ J: G0 d0 M& Ruchar i;  
( p) P) M6 S9 g& M% F8 Iwhile(ms--) for(i=0;i<120;i++);
1 Z# L7 ~& k9 L' D( e3 d}  
5 V6 d" U2 y2 V" v& }$ q//主程序 3 j) _4 c, Z5 X/ j- [+ ]5 `
void main()
- E4 `) X0 |! A4 F{  
4 U  q. `2 R' M# T7 |SCON=0x50; //串口模式1,允许接收
; v) N/ r+ o- ~! S9 A: {TMOD=0x20; //T1 工作模式2 4 h2 g3 O7 g4 B7 Z- t, ?
PCON=0x00; //波特率不倍增 & }1 A* _" f% A
TH1=0xfe; //波特率9600
1 q; j9 a8 G6 C2 X' R# ^0 A& lTL1=0xfe; / _; T2 O) t, q+ y# a
RI=0; ) F, H8 H8 N8 R0 W* W
EA=1;
% @: m: A4 `" d4 H" VES=1;
- C2 c" E' g' y. a6 v+ KTR1=1; # \1 y! @; g# y- x2 s
P1=0xff;
+ G) A( W0 n% C  k# H% owhile(1); 8 M' b' Z1 p% V1 \8 k
}  ; i0 ]5 b: u. t7 F  u, E
void Serial_Int(void) interrupt 4 * _, o/ J) l; J6 B& c2 ?
{  
+ c7 G/ x+ O3 iuchar a;  
$ c) Y6 ]) w* ?+ iif(RI) //如收到则LED 闪烁   
* j0 W* u& e0 o1 n' v{      : Q  n5 n. G1 G8 k
RI=0;  
7 \3 L" K, a2 P* E0 ga=SBUF;     ; _- O6 R3 Z: `4 z) ~) t
a=a&0x0f; . r% J7 o) g; F- D* l. _6 \& M
switch(a)  8 j' X0 R1 h, ?
{  / A5 ?7 |6 X8 ?  f
        case 0x00:
* ^1 f9 x; H. a* t0 B8 E, H                            if(led0==1)       ( H/ r. p8 s# t+ Y
                                {   
1 w- r, a" L' _! d) T                                        delayms(10);
6 u0 Z0 O$ j/ y$ M$ v                                        if(led0==1);     
+ H; |2 J! \" N7 ]8 B; Y# ?                                        led0=0;
, x7 ^% k8 I; ~# l6 N' l                                }       : T' o; E' \  Q( i; A- g0 g. L
                                else led0=1;break;      / K, ^4 B1 I# [' d. z3 F
        case 0x01:      
, I1 M0 K( r( Z& a3 c; O/ D                                if(led1==1)         2 G. h' R% y7 e) W, |
                                {   9 D1 y+ Z: c. o: e
                                        delayms(10);+ g1 u6 i, p4 l& \
                                        if(led1==1);
9 f7 W) k' y' n5 E% t- T- M                                        led1=0;      
' u; Z' {- C. A/ C6 g" s* M                                }      : D% n/ Z* _6 d. Z5 }: v
                                else led1=1;break;  
' F/ P1 ]- I; k1 j" X        case 0x02:        
- ?# h3 d  _  w0 {2 e7 ^/ _                                if(led2==1)     
) n: `5 p) O- Y. G4 Y9 ]                                {      
1 M# J. l! L+ \: }1 ~                                        delayms(10);$ O9 i: q6 L; @+ |! X
                                        if(led2==1); : \5 y0 T) N" I& \5 k3 A! {
                                        led2=0;   
# ^+ Z" T2 n8 n( P2 Z6 q% u! L( R                                }     ' y4 c" m' R% q( a4 I6 a% i) @. n
                                else led2=1;break;  9 T. R& q; t% D4 {
        case 0x03:      
, P6 u7 W. w. B9 }4 S9 \3 g                                if(led3==1)      
: V2 q% B/ N. e9 B                                {        1 l- v+ l9 `+ b
                                        delayms(10);4 c* s) B+ o: d% z2 R
                                        if(led3==1);
5 p( P; O0 U; y                                        led3=0;      0 s+ X7 f" y% n# ?
                                }       7 _$ {( D& ]0 P9 P
                                else led3=1;break;      
* F+ H8 a& K, D2 [        case 0x04:       & `- B# z- q5 Y+ O
                                if(led4==1)         
9 Z- r7 g: |6 }' f                                {       4 p+ f) j& k2 u  f! I/ m1 r0 v( Z
                                        delayms(10);
: \+ Q) {& X4 Q2 d                                        if(led4==1);
, ?5 C% D, Z4 X" }# l                                        led4=0;      $ r4 N7 Q& D. R
                                }      - V! n) o8 F0 `. ^
                                else led4=1;break;  0 |& t1 K2 D3 A- j; A- {- `$ y8 N
        case 0x05:        3 ]$ i- H* z+ A7 x% o0 a8 |
                                if(led5==1)     
+ \* t- c( v' |/ e' F1 e% H3 |                                {      
! _1 c& j6 R0 J" U* G                                        delayms(10);4 p6 t; y' l$ c/ Z: S# J. V
                                        if(led5==1);
! D9 a. ^6 p; _% K( \& ~0 O) `                                        led5=0;     ) A: c6 Q. D8 a1 x* A7 ~% T
                                }     5 n; T; M9 P2 Y3 o+ n
                                else led5=1;break;  
. a- |1 T! ^) R9 z. p- V$ q6 Z        case 0x06:       2 @) A, r/ c5 Q
                                if(led6==1)         
! r' u- S- N' O                                {      
9 d  P" j% h& p2 d                                        delayms(10);
: s, _2 W% }1 _$ b5 f2 T* w% T                                        if(led6==1);
% A3 l. O( }4 p8 n                                        led6=0;      ) T: f8 _1 I9 y
                                }      3 ]% x8 U  n& P4 q
                                else led6=1;break;  
2 v3 O! @, }1 _" B5 P( c        case 0x07:        
! w+ z7 E+ I/ o+ e" W1 C0 X                                if(led7==1)       W8 r' e* e8 l% w7 }
                                { ' F0 E3 |# ~% f3 O
                                     delayms(10);
3 L# u# `2 \3 j                                        if(led7==1);
) A% I4 n" ~; p$ |. n* w0 n                                        led7=0;     . u! `& L) A% O( d* }. j
                                }      4 V3 G/ F( x% x
                                else led7=1;break;        
8 p* N# r) s; m- L- C" r2 `                                }      ; s; D2 g" d3 j4 Z& [6 E' ?9 V
        }   9 D. Y. p1 |# z. \  E
}8 w. m' U9 y6 S
这是程序
# P7 `0 \' }& A

点评

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

该用户从未签到

8#
发表于 2019-4-24 15:53 | 只看该作者
artic 发表于 2019-4-24 15:12/ O  w9 r/ f# z/ c( H/ P% ~5 W
难道是程序出问题了?3 }4 J. E" @4 j' M8 i
#include  . ?( w& n$ o0 c: D
#define uchar unsigned char

% A1 }( O+ Z! i4 h/ R2 E9 b& w还真没看懂你串口中断里面要干什么,这里应该语句尽量少吧
0 A5 F" `- l8 j) H/ @% F

点评

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

该用户从未签到

9#
发表于 2019-4-24 16:06 | 只看该作者
artic 发表于 2019-4-24 15:039 C/ d2 p1 U7 ^0 ^$ f
有点不明白,有没有可以借我参考的

8 E) b4 q& x9 Q手上现在没有这样现成的案例,而且看你51的代码应该没什么问题啊。  你先不要用手机来控制,找个现成的蓝牙转串口的模块接在电脑上,用蓝牙跟你的51系统连接,上位机用串口助手发送指令试试能不能控制。如果可以那就是你手机端的程序问题。先定位问题点在哪里,然后再看怎么修改。
9 s& \0 w! |( D+ h4 U( }9 Q; Z: P  r+ `另外你能不能详细的说说你现在出问题的现象?可以的话配几张图片,方便大家了解情况,要不然只能靠蒙。。。。  @9 H- X1 w1 [- x

点评

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

该用户从未签到

10#
发表于 2019-4-24 16:07 | 只看该作者
gaoxings 发表于 2019-4-24 15:53
$ \+ @+ d; [- e  W; N还真没看懂你串口中断里面要干什么,这里应该语句尽量少吧

6 S3 U0 ]( [. `3 q" k" k楼主是设计了7个灯,对应7个键值,不同键值点亮不同的灯! e* ~' J  u+ w# D$ h8 O

该用户从未签到

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

点评

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

该用户从未签到

12#
发表于 2019-4-24 16:20 | 只看该作者
gaoxings 发表于 2019-4-24 16:13* k  `' \" \7 `. r" K
在中断里面延时10ms,还说没问题
% h! d+ q% P2 w# ~
厉害 这里确实不该这么写2 C* s* m4 L' T/ a* Z- l' `% K) x

该用户从未签到

13#
 楼主| 发表于 2019-4-24 16:22 | 只看该作者
yxlk 发表于 2019-4-24 16:065 y) N- e* g8 m6 A7 l/ n6 w/ `1 u% m* J
手上现在没有这样现成的案例,而且看你51的代码应该没什么问题啊。  你先不要用手机来控制,找个现成的蓝 ...
: G; {- P0 O+ {* L$ W' w- Z
已经弄好了,是程序串口那部分的问题2 u- H' L& A( s, c
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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