找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 59894|回复: 95
打印 上一主题 下一主题
收起左侧

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

  [复制链接]
跳转到指定楼层
#
ID:109770 发表于 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, 下载次数: 637)

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏30 分享淘帖 顶2 踩
回复

使用道具 举报

95#
ID:733895 发表于 2020-5-22 09:01 | 只看该作者
好用!
回复

使用道具 举报

94#
ID:603068 发表于 2020-5-8 19:00 | 只看该作者
感谢楼主,学习了
回复

使用道具 举报

93#
ID:136379 发表于 2019-12-8 22:32 来自触屏版 | 只看该作者
先收藏
回复

使用道具 举报

92#
ID:505784 发表于 2019-6-22 20:49 | 只看该作者
谢谢楼主
回复

使用道具 举报

91#
ID:517800 发表于 2019-4-21 14:44 | 只看该作者
感谢啊啊好啊好好好好
回复

使用道具 举报

90#
ID:517800 发表于 2019-4-21 14:44 | 只看该作者
好啊啊啊啊啊啊啊啊 2我
回复

使用道具 举报

89#
ID:495972 发表于 2019-3-22 10:53 | 只看该作者
学习看看
回复

使用道具 举报

88#
ID:300114 发表于 2019-2-23 16:48 | 只看该作者
谢谢楼主的分享
回复

使用道具 举报

87#
ID:377969 发表于 2019-2-22 14:55 | 只看该作者
感谢楼主
回复

使用道具 举报

86#
ID:467353 发表于 2019-1-13 14:50 | 只看该作者
好样的,这个应用范围不大,but挑战难度
回复

使用道具 举报

85#
ID:467292 发表于 2019-1-13 11:07 | 只看该作者
很给力!
回复

使用道具 举报

84#
ID:467181 发表于 2019-1-12 21:44 | 只看该作者
感谢楼主
回复

使用道具 举报

83#
ID:390260 发表于 2019-1-8 17:13 | 只看该作者
真的很实用
回复

使用道具 举报

82#
ID:390260 发表于 2019-1-8 17:13 | 只看该作者
真的很实用
回复

使用道具 举报

81#
ID:462211 发表于 2019-1-7 22:42 | 只看该作者
谢谢楼主
回复

使用道具 举报

80#
ID:446902 发表于 2018-12-15 19:13 | 只看该作者
感谢楼主
回复

使用道具 举报

79#
ID:316572 发表于 2018-9-2 10:15 | 只看该作者
麻烦问一下,蓝牙模块怎么跟单片机接线呢
回复

使用道具 举报

78#
ID:130135 发表于 2018-8-14 01:56 | 只看该作者

感谢分享!!!下载来用一下!!!
回复

使用道具 举报

77#
ID:385682 发表于 2018-8-13 13:09 | 只看该作者
谢谢楼主分享资料
回复

使用道具 举报

76#
ID:385682 发表于 2018-8-13 11:28 | 只看该作者
谢谢楼主分享资料
回复

使用道具 举报

75#
ID:49118 发表于 2018-7-4 08:34 | 只看该作者
蓝牙通讯一只没有搞成,学习学习。
回复

使用道具 举报

74#
ID:338249 发表于 2018-5-29 17:53 | 只看该作者
非常适合新手入门
回复

使用道具 举报

73#
ID:337339 发表于 2018-5-26 17:33 | 只看该作者
可以  ,很不错
回复

使用道具 举报

72#
ID:337569 发表于 2018-5-24 20:20 | 只看该作者
楼主 您好我想问你您一下 我什么我用串口助手发送AT 可收到的是乱码 为什么?
回复

使用道具 举报

71#
ID:256945 发表于 2018-5-17 09:06 | 只看该作者
大佬们有app吗?我自己从网上下载的软件配程序没用
回复

使用道具 举报

70#
ID:253033 发表于 2018-3-22 22:13 | 只看该作者
先谢楼主
回复

使用道具 举报

69#
ID:189772 发表于 2018-2-26 22:21 | 只看该作者
STC89C52的第10脚RxD,不用接上拉电阻到+5V吗?
回复

使用道具 举报

68#
ID:285181 发表于 2018-2-24 14:37 | 只看该作者
感谢楼主
回复

使用道具 举报

67#
ID:285181 发表于 2018-2-24 14:36 | 只看该作者
学习学习
回复

使用道具 举报

66#
ID:274818 发表于 2018-1-12 14:52 | 只看该作者
dengweishun123 发表于 2017-4-25 17:26
楼主你好,我用手机发送字符没有得到所写的结果呢。发字符只会让第三个灯亮灭,而且是任何字符都可以,不是 ...

我的测试结果也是。你解决了么?
回复

使用道具 举报

65#
ID:250342 发表于 2017-12-7 16:12 | 只看该作者

谢谢楼主分享资料!
回复

使用道具 举报

64#
ID:255476 发表于 2017-12-1 12:52 | 只看该作者
老哥,这个程序为啥实现不了,开始时013全亮,输入1 01灯
回复

使用道具 举报

63#
ID:243552 发表于 2017-11-30 06:15 来自触屏版 | 只看该作者
好东西要分享
回复

使用道具 举报

62#
ID:255381 发表于 2017-11-29 21:07 | 只看该作者
好!非常好!
回复

使用道具 举报

61#
ID:71549 发表于 2017-11-29 18:03 | 只看该作者

好东西!谢谢楼主
回复

使用道具 举报

60#
ID:254195 发表于 2017-11-27 15:29 | 只看该作者
40脚和20脚那两个电容是干什么用的
回复

使用道具 举报

59#
ID:240522 发表于 2017-10-20 20:29 | 只看该作者
手机端用的是什么程序?新手望楼主赐教!
回复

使用道具 举报

58#
ID:240164 发表于 2017-10-19 17:01 | 只看该作者
感谢分享了,学习了
回复

使用道具 举报

57#
ID:232530 发表于 2017-10-15 13:19 | 只看该作者
谢谢分享
回复

使用道具 举报

56#
ID:237726 发表于 2017-10-7 22:42 | 只看该作者
谢谢楼主
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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