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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
求助:51单片机接蓝牙模块
1 W' T# f/ Z* @  B' s% s, i. U4 u/ ~; V  ~. r
想用蓝牙模块接51单片机,实现手机控制灯的亮灭,要怎么做,请坛友给予帮助,谢谢' u; g# d( V( B* c' ~5 O

该用户从未签到

2#
发表于 2019-4-24 14:52 | 只看该作者
分两块内容:
. V5 ?! U# z! X' u手机端,设备端。二者通过蓝牙模块实现通信(串口透传就可以)! m/ f% o( M  g) j" f" ^
手机端要完成软件的内容:
$ [; [4 X! I& s# C& L* W1、侦听按键,按键操作触发后将发送的数据通过串口发送。  v$ F  f2 v6 |% a( o
2、蓝牙串口透传。' P; G7 l) T7 O  K

% F! e) c$ n0 [% V6 v' G9 N, J' S设备端 的功能
2 A9 V3 S2 c7 a5 w: G
- {# F$ H* t3 D( j8 i5 G' e1、蓝牙芯片(协议栈+串口透传)收到数据给到单片机, g& P& P0 v0 x, Y
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
' y7 a! j0 J! x分两块内容:( k+ L) T; I' x+ C1 `
手机端,设备端。二者通过蓝牙模块实现通信(串口透传就可以)
% s3 w0 L! \3 g8 I, u8 G手机端要完成软件的内容:

  T% ^# i# G: Q8 g  G有点不明白,有没有可以借我参考的
5 }% G! {# X6 }6 c6 Q- e- F/ m

点评

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

该用户从未签到

5#
 楼主| 发表于 2019-4-24 15:04 | 只看该作者
gaoxings 发表于 2019-4-24 14:54
* p) G; M1 l/ Z7 D' h' |# N' X看你的蓝牙有没有串口透传功能啊
+ n7 B% I; k2 |- n  U5 g: Y8 V4 E: ?
我是用hc-05的。。。5 a' j% Z) T" g  C* L3 Y' L% p2 q

点评

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

该用户从未签到

6#
发表于 2019-4-24 15:07 | 只看该作者
artic 发表于 2019-4-24 15:04
* W6 m0 c. f# w+ c/ J  \$ m# s/ r我是用hc-05的。。。
) R$ J" y3 K9 s! K/ q" @3 ^
那应该没有问题啊9 O5 L) E# {  t/ ]

点评

难道是程序出问题了? #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) p, @2 U& b) ?+ s
那应该没有问题啊
( h/ g8 _( t8 ]1 l5 f( p& r" e
难道是程序出问题了?
# C; Q: z8 I; O7 Q#include<reg51.h>  ; i  s. B  m0 z' m- x% y. @0 i+ l
#define uchar unsigned char
$ T4 r, n4 G( ^6 Q3 S9 s#define uint unsigned int      
7 V, N; L6 D" O! B8 L8 N7 Bsbit led0=P1^0;
! n* [2 `" m: y2 j/ d/ M! |sbit led1=P1^1;
  q& ]" Z2 V6 rsbit led2=P1^2; % O! u" B" P* y
sbit led3=P1^3; , e: Z( O6 N, P+ Z% R9 g
sbit led4=P1^4;
. H' A$ ]& z2 h2 C9 p; ~0 Qsbit led5=P1^5; $ Q$ R$ E  h, @0 p
sbit led6=P1^6; 1 U' [! L/ Z6 y6 m9 E3 z# z/ t
sbit led7=P1^7;
% X6 `6 R3 M  S( w& G% A" Y) j( Q4 n+ z4 Y8 w
void delayms(uint ms) 4 T  e* j7 o% t& |+ v
{  6 }; q9 f! M% z
uchar i;  ! C& Q8 F- u+ \" b/ L8 X
while(ms--) for(i=0;i<120;i++); # C5 k4 ^1 `4 \) A/ O7 d
}  9 e1 `9 C( M, k( j: Y! L, o
//主程序 ! u$ ~. X1 S3 J8 r
void main()
! n1 L9 M" T$ }' e2 v+ _{  ( s" ~3 `9 l) b6 y- `
SCON=0x50; //串口模式1,允许接收 ' z* Q* r  z* K! H+ @  q9 [3 Z
TMOD=0x20; //T1 工作模式2
7 H: o# a; F1 [- ^* `2 XPCON=0x00; //波特率不倍增 : H  j& [& @( l: ~4 J, R& P
TH1=0xfe; //波特率9600 : ^* E2 K% G  m2 Z
TL1=0xfe;
' T- \# s  M3 w5 k+ L1 g6 bRI=0; 3 m7 \& q% z. w
EA=1;
( v, h/ d0 I3 U. V, D3 @/ C3 {  @ES=1;
; t6 b/ B) O. R5 u1 |# U6 fTR1=1;
6 U1 X; f/ W# p8 Z* CP1=0xff;
5 ]; A6 ?  c9 W# Y5 ^+ {) e2 jwhile(1); 9 i  r5 N  _, M
}  
* F& J8 ?2 t0 ]3 bvoid Serial_Int(void) interrupt 4 % J9 y1 z% T" Z+ o4 c% F* f
{  
) ^1 I' r* E* huchar a;  7 F" r- t# M' g
if(RI) //如收到则LED 闪烁   
- i" _: R6 R8 M# {{      
9 U& }! B& B' y/ s& ^' g7 oRI=0;  
6 ]: E8 I: E; [% va=SBUF;     * O, p+ p  o' `  R2 W
a=a&0x0f; 5 P8 g- t' O* {( d  V4 j
switch(a)  0 h1 I/ Z2 O, m& `2 w
{  
" j" c  ^1 i$ n# H0 A6 Z7 }8 N& P        case 0x00:
' \5 B6 Z+ W0 F/ m! p2 e                            if(led0==1)      
/ D1 _3 C; `" R6 a" `                                {   % H. |) K" P# Q
                                        delayms(10);( D; c" X  ^. O$ H- Y
                                        if(led0==1);     : ]* Y3 i  N8 w
                                        led0=0;3 _2 T/ A/ [6 U# }! Q0 e+ r
                                }       * i! M! c$ x( A9 b2 m. _
                                else led0=1;break;      2 X9 \8 i  T" _
        case 0x01:      
3 P# ?. e! t2 Y) N5 P3 `                                if(led1==1)         
9 r( O9 W8 T( U: |                                {   
# E; `9 x% Y4 @) [                                        delayms(10);8 E3 q- f# Q' ]- b2 d
                                        if(led1==1);
8 Q4 @' K* }% l! f0 }                                        led1=0;      5 H4 {! }; b0 h2 Z9 [% s  N" t1 ^9 R
                                }      
+ ~' f( B" c8 O7 N* S                                else led1=1;break;  " [( _' H$ ?2 w6 o" ^
        case 0x02:        
; P0 x  K1 z# _5 b1 f+ U" g, B                                if(led2==1)     
, T4 g9 E- P4 X/ l                                {      ' V- J  D. A, N4 d* S7 z) q/ j
                                        delayms(10);# q3 {1 H1 N) |# a$ x- _
                                        if(led2==1); " a$ J5 P, o# t' Y
                                        led2=0;   
: r: F9 E" ~1 w( d2 q, h                                }     " L! F: g, I, @, o7 B8 d
                                else led2=1;break;  / R3 q4 M$ o+ h# g. [( A% u
        case 0x03:       7 |3 k/ ~- n8 I: v
                                if(led3==1)      
" w0 M& X5 N: T! \                                {        6 i3 e* M1 Z1 k( R: _3 m* j9 `
                                        delayms(10);
, p3 k- |. G6 P( F7 T& U                                        if(led3==1);( o8 Z1 A7 U  ^( E; u
                                        led3=0;      ) L6 \/ j! L* r( ]/ ?5 S
                                }      
' W6 U1 u9 w, A1 S! [0 Y& v1 _                                else led3=1;break;      # i3 e& y; v: c1 N* s% k
        case 0x04:      
. D; Y/ e3 d+ }                                if(led4==1)         9 a" j& e7 v1 j/ u  \. M7 A; V1 S
                                {       2 I" m* K( o$ |% ~6 B- o
                                        delayms(10);7 E2 {$ ?" U+ z3 v/ p; ]
                                        if(led4==1);! c: J$ j' d" ^5 V
                                        led4=0;        l. _+ b" b% E
                                }      ' N8 t# n* v' _* l. [+ Z0 ~
                                else led4=1;break;  - C9 K/ D7 {4 b
        case 0x05:        
2 t9 E) j2 w* O* |7 u                                if(led5==1)     / r4 E9 o0 m# p  a
                                {      + g8 d! y$ t. K6 ^9 g
                                        delayms(10);
6 M2 a4 Q) M% y# t0 o, T" _7 F                                        if(led5==1);, ?% |# t) _; b
                                        led5=0;     
9 J  W$ F2 `+ y                                }     
" f$ [5 [. \0 \1 @6 f" f! A                                else led5=1;break;  + m2 W5 f3 C7 E5 o
        case 0x06:      
, H- h' Z4 L: j4 [) Q                                if(led6==1)         
$ f; t. ~' N9 d( F                                {      
2 P! u! n+ g$ j# K                                        delayms(10);
+ `$ |, o( p' {% Q' k) C+ C/ {                                        if(led6==1);
+ M( c$ i; C1 ]; ]! T3 @                                        led6=0;      $ D: v, `, ~0 y8 w, y1 S( d4 y
                                }      7 U2 b+ c- g/ x! |9 \. r0 D
                                else led6=1;break;  
3 y  r; `: q3 K8 Q( W$ I* Z+ ?        case 0x07:        & L; D& C3 j' Y6 h1 V
                                if(led7==1)     " F& a9 T; j5 ~5 w0 P+ u- |
                                {
0 b! [3 J- ]$ G1 W% n2 g                                     delayms(10);
" m; t; Y% P. L* Q( C& {3 x                                        if(led7==1);) K& n6 Y+ N/ Z% s
                                        led7=0;     0 o; h3 n3 ~8 ^' B2 @1 I
                                }      9 e2 g1 V3 r* I7 v2 n4 E9 s7 q6 }
                                else led7=1;break;        
- P) |$ }+ B7 R1 _. c* O7 M3 J. E                                }      
& [7 k. \  S: p        }   7 ]! ?' e0 h3 f/ x
}
1 A2 Q! X) ]* _2 P' W这是程序
1 l7 J: {. @. ^/ N5 C; s5 \; F

点评

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

该用户从未签到

8#
发表于 2019-4-24 15:53 | 只看该作者
artic 发表于 2019-4-24 15:12
, a' X3 b! l5 b# p难道是程序出问题了?
8 O; B9 O6 k( X#include  % \! d! \" E0 U+ S
#define uchar unsigned char
% f9 i5 e: y+ a( z  k7 n0 t
还真没看懂你串口中断里面要干什么,这里应该语句尽量少吧7 c) z6 C1 r  I

点评

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

该用户从未签到

9#
发表于 2019-4-24 16:06 | 只看该作者
artic 发表于 2019-4-24 15:03
) U# q) A4 Z2 ]  J6 `* J* `* ^有点不明白,有没有可以借我参考的
0 k2 c+ _! f5 L- `, O$ G
手上现在没有这样现成的案例,而且看你51的代码应该没什么问题啊。  你先不要用手机来控制,找个现成的蓝牙转串口的模块接在电脑上,用蓝牙跟你的51系统连接,上位机用串口助手发送指令试试能不能控制。如果可以那就是你手机端的程序问题。先定位问题点在哪里,然后再看怎么修改。
" k. F/ L* R! c1 F另外你能不能详细的说说你现在出问题的现象?可以的话配几张图片,方便大家了解情况,要不然只能靠蒙。。。。
( g8 o# {3 E: o2 z

点评

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

该用户从未签到

10#
发表于 2019-4-24 16:07 | 只看该作者
gaoxings 发表于 2019-4-24 15:53
+ p0 t5 i; P# y, @+ F9 i# S2 D: B还真没看懂你串口中断里面要干什么,这里应该语句尽量少吧
0 f. M7 p, {& D" f
楼主是设计了7个灯,对应7个键值,不同键值点亮不同的灯2 h9 B4 w& E1 a+ N) U

该用户从未签到

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

点评

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

该用户从未签到

12#
发表于 2019-4-24 16:20 | 只看该作者
gaoxings 发表于 2019-4-24 16:13
" A. S! |5 r/ |5 f% C1 r" G2 Q) g在中断里面延时10ms,还说没问题
5 p( q# a9 P/ c$ l" a; h9 o! t
厉害 这里确实不该这么写1 q2 t/ d* m9 j& l. I

该用户从未签到

13#
 楼主| 发表于 2019-4-24 16:22 | 只看该作者
yxlk 发表于 2019-4-24 16:06. T* @/ z, S/ N! o: S! M! X
手上现在没有这样现成的案例,而且看你51的代码应该没什么问题啊。  你先不要用手机来控制,找个现成的蓝 ...
* G- M6 p8 M9 c$ f! L6 K
已经弄好了,是程序串口那部分的问题" _- e% e" B% O) Z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-17 21:15 , Processed in 0.156250 second(s), 35 queries , Gzip On.

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

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

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