标题: STC89C52通过HC-06蓝牙模块与Android手机通信 [打印本页]

作者: 51黑bing    时间: 2016-3-27 20:53
标题: STC89C52通过HC-06蓝牙模块与Android手机通信
环境
         1
、任意单片机开发板即可(当时用的芯片STC90C516RD+),约定为下位机
          2
、无线蓝牙串口透传模块 HC-06从机
          3
windows xp操作系统
          4
、Android智能手机(蓝牙串口通信助手软件),约定为上位机
二、连接的部分电路图(有集成板子的直接插上就可以了,但是要注意若单片机的TXD无上拉能力需要加上拉电阻)
      上拉电阻的阻值有人问我,我当时用的是1KΩ。


三、下位机测试程序
  1. /***********************************************************
  2. STC90C51RD+与HC-06蓝牙连线:
  3.         蓝牙  STC90C51RD+
  4.         RXD    TXD
  5.         TXD    RXD
  6. 其他连线:
  7.         P2.0、P2.1、P2.3分别接一个指示灯

  8. !!!!
  9. !!!!注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻
  10. !!!!

  11. 手机采用蓝牙串口通信助手
  12. 最后已改用Android自编蓝牙通信软件
  13.                                         By itas109
  14. ***********************************************************/
  15. #include <reg52.h>
  16. #include <intrins.h>
  17. unsigned char tmp;
  18. unsigned int c=0;

  19. sbit led1=P2^0;                    //指示灯0
  20. sbit led2=P2^1;                        //指示灯1
  21. sbit led3=P2^3;                        //指示灯3

  22. void init();   //串口初始化
  23. void send(unsigned char a);        //单字节发送函数
  24. void ctrl(); //接收处理函数

  25. void main()
  26. {
  27.                 init();
  28.           while(1)
  29.           {         
  30.                   if(RI==1)                     // 是否有数据到来
  31.                   {
  32.                    RI = 0;
  33.                   tmp = SBUF;                   // 暂存接收到的数据
  34.                                   ctrl();
  35.                                   }      
  36.           }
  37. }

  38. void init()        //串口初始化
  39. {
  40.                   ES=0;                                                                  //关中断
  41.                   SCON = 0x50;                        // REN=1允许串行接受状态,串口工作模式1,
  42.                                                                                           //10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可变

  43.                   TMOD = 0x20;                        // 定时器1工作于方式2,8位自动重载模式, 用于产生波特率
  44.           TH1=TL1=0xFD;                       // 波特率9600 (本次测试采用晶振为11.0592)
  45.          
  46.           PCON &= 0x7f;                       // 波特率不倍增
  47.           TR1 = 1;                                                          //定时器1开始工作,产生波特率
  48.                                                                                           //发送标志位置0
  49.                   TI=0;                                                                  //接收标志位置0
  50.                   RI=0;
  51.                   
  52.                   //EA=0;
  53.               ES=1;


  54.           led1=0;                                   //初始化设置3个指示灯全亮
  55.                   led2=0;
  56.                   led3=0;
  57. }
  58.    
  59. void send(unsigned char a)        //单字节数据发送
  60. {                                                        //注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻
  61.         TI=0;       
  62.         SBUF=a;
  63.         while(TI==0);
  64.         TI=0;

  65.         if(c%2)                                        //发送指示灯标志,每接收一次,此灯亮灭交替
  66.          led3=1;
  67.         else
  68.          led3=0;
  69.         c++;
  70. }

  71. void ctrl()                            //接收处理函数
  72. {
  73.                                     switch(tmp)
  74.                                   {
  75.                                           case '1':
  76.                                                 led1=1;                                   //收到字符1,指示灯0灭
  77.                                                 send(tmp);
  78.                                                 break;                                       
  79.                                         case '2':                                         //收到字符2,指示灯1灭
  80.                                                  led2=1;
  81.                                                  send(tmp);
  82.                                                  break;
  83.                                         case '3':                                    //收到字符3,指示灯0、1亮
  84.                                                  led1=0;
  85.                                                  led2=0;
  86.                                                  send(tmp);
  87.                                                  break;
  88.                                         case '4':                                        //收到字符4,指示灯0、1灭
  89.                                                   led1=1;
  90.                                                   led2=1;
  91.                                                   send(tmp);
  92.                                                   break;
  93.                                         case '5':                                        //收到字符5,指示灯3亮
  94.                                                 led3=0;
  95.                                                 send(tmp);
  96.                                                 break;
  97.                                         default:                   //其他,灯全灭
  98.                                                   led1=1;
  99.                                                   led2=1;
  100.                                                   led3=1;
  101.                                                   send(tmp);
  102.                                   }
  103. }
复制代码




程序地址(整个工程): STC89C52单片机与HC-06模块下位机测试程序.zip (28.44 KB, 下载次数: 637)


作者: qq729832552    时间: 2016-4-18 18:41
看看程序
作者: gyqworld    时间: 2016-6-1 13:18

 看看程序
作者: mirage    时间: 2016-6-1 20:26
谢谢楼主分享资料
作者: Jackiceland    时间: 2016-6-21 13:11
好东西!谢谢楼主
作者: lilisd    时间: 2016-6-21 16:33
感谢楼主,学习了
作者: qiyezao    时间: 2016-7-1 14:20
好东西!谢谢楼主
作者: fghjgjjfg    时间: 2016-7-14 15:16
谢谢分享
作者: 无聊到处逛    时间: 2016-7-16 12:13
我也来看看。谢谢楼主了
作者: 无罪之宾    时间: 2016-7-21 22:28
我也来看看。谢谢楼主
作者: fushandz    时间: 2016-8-20 15:56
谢谢,看看测式
作者: 806348821    时间: 2016-9-28 15:15
来看看是怎么样,感谢楼主
作者: a461624201    时间: 2016-10-17 19:41
STC12C5A60S2代码没变,试验成功。
作者: hfg5k    时间: 2016-10-17 19:53
本来准备用红外遥控的,不过感觉蓝牙透传更好
作者: 买女孩的小火柴    时间: 2016-10-18 11:21
谢谢楼主分享资料
作者: 买女孩的小火柴    时间: 2016-10-18 11:25
谢谢楼主分享资料
作者: faze    时间: 2016-11-2 20:09

谢谢楼主分享资料
作者: faze    时间: 2016-11-2 20:10
谢谢楼主分享资料
作者: xieyang    时间: 2016-11-18 23:35
看看能用不
作者: 1149777206    时间: 2017-2-12 22:49
怎么没有中断函数
作者: tsunfaihui    时间: 2017-3-20 21:37

谢谢楼主分享资料
作者: zxb2360    时间: 2017-3-20 23:07
感谢楼主

作者: 未来的技术女    时间: 2017-3-21 19:01
Android的程序呢,是用的output输出流吗?

作者: 岸上_冰    时间: 2017-3-24 10:05
蓝牙还是很靠谱的
作者: WSY_    时间: 2017-4-9 19:03
谢谢分享


作者: 杨海健    时间: 2017-4-10 18:26
动手操作了下  谢谢楼主
作者: TBFAVENGER    时间: 2017-4-16 21:44
感谢楼主
作者: wxc19960311    时间: 2017-4-23 15:00
手机连接的话需要什么app呢,求楼主给个app
作者: dengweishun123    时间: 2017-4-25 17:26
楼主你好,我用手机发送字符没有得到所写的结果呢。发字符只会让第三个灯亮灭,而且是任何字符都可以,不是所写的12345,麻烦楼主了
作者: dengweishun123    时间: 2017-4-25 17:28
发送第一个字符会让第一个第二个灯灭,之后就是只能让第三灯亮灭,与前两个无关

作者: dengweishun123    时间: 2017-4-25 17:28
wxc19960311 发表于 2017-4-23 15:00
手机连接的话需要什么app呢,求楼主给个app

蓝牙串口,应用商店有的,就是那个符号spp的
作者: linnyshow    时间: 2017-4-26 19:15
有没有APP
作者: 跃跃桑    时间: 2017-4-28 21:15
谢谢楼主
作者: 跃跃桑    时间: 2017-4-28 21:15
STC89C52通过HC-06蓝牙模块与Android手机通信 [修改]
作者: zxl528855    时间: 2017-5-5 13:25
谢谢楼主,回复得黑币吗
作者: zxl528855    时间: 2017-5-5 13:26
很给力啊
作者: TaowzzZ    时间: 2017-5-9 20:18
未来的技术女 发表于 2017-3-21 19:01
Android的程序呢,是用的output输出流吗?

特地去注册了一个账号,就想对你说一句,你真好看
作者: qtopen    时间: 2017-5-9 22:08
感谢分享!!!下载来用一下!!!
作者: 51hkj    时间: 2017-5-26 22:59
楼主这个程序可以用于at89s52吗
作者: adls    时间: 2017-5-27 08:30
来看看是怎么样,感谢楼主
作者: yang_lixu    时间: 2017-6-15 15:44
感谢分享!!!下载来用一下!!!
作者: yang_lixu    时间: 2017-6-15 15:44
感谢分享!!!下载来用一下!!!
作者: yang_lixu    时间: 2017-6-16 10:00
感谢分享!!!下载来用一下!!!
作者: 17190181898    时间: 2017-6-16 14:24
我发0x01过去,无反应发1都无反应,求楼主教教
作者: cjjcjj1    时间: 2017-6-17 12:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: JYX    时间: 2017-6-28 23:57
谢谢楼主
作者: glacie    时间: 2017-7-2 12:19
谢谢楼主的资料
作者: phoenixmj    时间: 2017-9-12 14:20
好东西,学习了 3Q
作者: phoenixmj    时间: 2017-9-12 14:21
谢谢楼主的资料 下载学习下!
作者: 死小孩    时间: 2017-9-16 09:55
       不错
作者: lxa0    时间: 2017-9-17 18:17
没有app~~~~~~~~~~~
作者: zhao58    时间: 2017-9-25 19:53
不错谢谢分享
作者: elsa    时间: 2017-9-28 20:42
厉害啦
作者: zhao58    时间: 2017-10-4 09:59
谢谢分享
作者: 978293588    时间: 2017-10-7 22:42
谢谢楼主
作者: lth977    时间: 2017-10-15 13:19
谢谢分享
作者: pelogreat    时间: 2017-10-19 17:01
感谢分享了,学习了
作者: sx202    时间: 2017-10-20 20:29
手机端用的是什么程序?新手望楼主赐教!
作者: 842517998    时间: 2017-11-27 15:29
40脚和20脚那两个电容是干什么用的

作者: jms208    时间: 2017-11-29 18:03

好东西!谢谢楼主
作者: xxttkl    时间: 2017-11-29 21:07
好!非常好!
作者: tyuuuyii    时间: 2017-11-30 06:15
好东西要分享
作者: 雨林木木风    时间: 2017-12-1 12:52
老哥,这个程序为啥实现不了,开始时013全亮,输入1 01灯
作者: 51hei2201021    时间: 2017-12-7 16:12

谢谢楼主分享资料!
作者: lingling    时间: 2018-1-12 14:52
dengweishun123 发表于 2017-4-25 17:26
楼主你好,我用手机发送字符没有得到所写的结果呢。发字符只会让第三个灯亮灭,而且是任何字符都可以,不是 ...

我的测试结果也是。你解决了么?
作者: 古早岑    时间: 2018-2-24 14:36
学习学习
作者: 古早岑    时间: 2018-2-24 14:37
感谢楼主
作者: casanava    时间: 2018-2-26 22:21
STC89C52的第10脚RxD,不用接上拉电阻到+5V吗?
作者: 小身体大智慧    时间: 2018-3-22 22:13
先谢楼主
作者: 夜空之巅    时间: 2018-5-17 09:06
大佬们有app吗?我自己从网上下载的软件配程序没用
作者: 欧阳哲    时间: 2018-5-24 20:20
楼主 您好我想问你您一下 我什么我用串口助手发送AT 可收到的是乱码 为什么?
作者: 黄河之水天上来    时间: 2018-5-26 17:33
可以  ,很不错
作者: xiaoxiaohu666    时间: 2018-5-29 17:53
非常适合新手入门
作者: lzwjzh    时间: 2018-7-4 08:34
蓝牙通讯一只没有搞成,学习学习。
作者: 1006461468    时间: 2018-8-13 11:28
谢谢楼主分享资料

作者: 1006461468    时间: 2018-8-13 13:09
谢谢楼主分享资料

作者: diannaoza    时间: 2018-8-14 01:56

感谢分享!!!下载来用一下!!!
作者: 284213945    时间: 2018-9-2 10:15
麻烦问一下,蓝牙模块怎么跟单片机接线呢

作者: AngryBeast    时间: 2018-12-15 19:13
感谢楼主
作者: 优柔寡断之我    时间: 2019-1-7 22:42
谢谢楼主
作者: 末代皇妃    时间: 2019-1-8 17:13
真的很实用
作者: 末代皇妃    时间: 2019-1-8 17:13
真的很实用
作者: HuBa15    时间: 2019-1-12 21:44
感谢楼主
作者: hanpingx    时间: 2019-1-13 11:07
很给力!
作者: mynetroom    时间: 2019-1-13 14:50
好样的,这个应用范围不大,but挑战难度
作者: coder    时间: 2019-2-22 14:55
感谢楼主
作者: 张岚荣    时间: 2019-2-23 16:48
谢谢楼主的分享
作者: 614173696    时间: 2019-3-22 10:53
学习看看
作者: 无厘头丶不    时间: 2019-4-21 14:44
好啊啊啊啊啊啊啊啊 2我
作者: 无厘头丶不    时间: 2019-4-21 14:44
感谢啊啊好啊好好好好
作者: panqiang    时间: 2019-6-22 20:49
谢谢楼主
作者: 13721371025    时间: 2019-12-8 22:32
先收藏
作者: chenxxxx    时间: 2020-5-8 19:00
感谢楼主,学习了
作者: knight51    时间: 2020-5-22 09:01
好用!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1