单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 23810|回复: 91
收起左侧

STC89C52通过HC-06蓝牙模块与Android手机通信

  [复制链接]
51黑bing 发表于 2016-3-27 20:53 | 显示全部楼层 |阅读模式
环境
         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, 下载次数: 495)

评分

参与人数 4黑币 +43 收起 理由
1522388816 + 5 共享资料的黑币奖励!
LYC666 + 5 共享资料的黑币奖励!
lverniu777 + 3
sunlei058378 + 30 很给力!

查看全部评分

回复

使用道具 举报

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 | 显示全部楼层
来看看是怎么样,感谢楼主
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51hei电子论坛2群 联系QQ:125739409;技术交流QQ群219535678

Powered by 单片机教程网

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