找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7363|回复: 6
收起左侧

HC-06蓝牙扩展模块的安卓APP与单片机源码

  [复制链接]
ID:245986 发表于 2017-11-4 15:31 | 显示全部楼层 |阅读模式
超声波测距模块,蓝牙模块源码
2015-04-17 174955.jpg 2015-04-17 174931.jpg

HC-06蓝牙规格文档:
0.png

0.png

单片机源程序:
  1. /*********************************************************************************
  2. * 【作    者】: 清翔电子:03
  3. * 【版    本】: 1.0
  4. * 【实验平台】: QX-MINI51 单片机开发板
  5. * 【外部晶振】: 11.0592mhz        
  6. * 【主控芯片】: STC89C52
  7. * 【编译环境】: Keil μVisio3        
  8. * 【程序功能】: 蓝牙数码管显示加LED指示灯                                                                                          
  9. * 【使用说明】:

  10. STC89c52与HC-06蓝牙连线:
  11.         RXD    TXD
  12.         TXD    RXD
  13.         蓝牙连接方式请参照本文件下的图片
  14. 手机采用蓝牙串口通信助手
  15. 最后已改用Android自编蓝牙通信软件
  16. 蓝牙模块安装方法请参照本文件夹下的图片01

  17. **********************************************************************************/

  18. #include <reg52.h>
  19. #include <intrins.h>
  20. #define uchar unsigned char
  21. #define uint unsigned int
  22. uchar tmp;
  23. uint c=0;
  24. sbit led1=P1^0;                    //指示灯0
  25. sbit led2=P1^1;                        //指示灯1
  26. sbit led3=P1^2;                        //指示灯3
  27. sbit led7=P1^7;                        //指示灯3

  28. sbit P2_0 = P2^0;
  29. sbit P2_1 = P2^1;
  30. sbit P2_2 = P2^2;
  31. sbit P2_3 = P2^3;

  32. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
  33.                         0xf8,0x80,0x90};

  34. void delay1(uint z)//1ms
  35. {
  36.         uint x,y;
  37.         for(x=z;x>0;x--)
  38.                 for(y=120;y>0;y--);        
  39. }
  40. void display(uchar value)
  41. {
  42.     uchar shu1,value1;
  43.         value1=value-48;
  44.         //bai=value1/16;
  45.         shu1=value1%16;


  46.    P0=table[shu1];
  47.    P2_0 = 0;
  48.    delay1(1);
  49.    P2_0 = 1;
  50. }        
  51.          
  52. void init();   //串口初始化
  53. void send(unsigned char a);        //单字节发送函数
  54. void ctrl(); //接收处理函数

  55. void main()
  56. {
  57.                 init();
  58.           while(1)
  59.           {         
  60.                   display(SBUF);
  61.                                   if(RI==1)                     // 是否有数据到来
  62.                   {
  63.                    RI = 0;
  64.                                   ctrl();
  65.                                   }      
  66.           }
  67. }

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

  73.                   TMOD = 0x20;                        // 定时器1工作于方式2,8位自动重载模式, 用于产生波特率
  74.           TH1=TL1=0xFD;                       // 波特率9600 (本次测试采用晶振为11.0592)
  75.          
  76.           PCON &= 0x7f;                       // 波特率不倍增
  77.           TR1 = 1;                                                          //定时器1开始工作,产生波特率
  78.                                                                                           //发送标志位置0
  79.                   TI=0;                                                                  //接收标志位置0
  80.                   RI=0;
  81.                   
  82.                   //EA=0;
  83.               ES=1;
  84. }
  85.    
  86. void send(unsigned char a)        //单字节数据发送
  87. {                                                        //注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻
  88.         TI=0;        
  89.         SBUF=a;
  90.         while(TI==0);
  91.         TI=0;

  92.         if(c%2)                                        //发送指示灯标志,每接收一次,此灯亮灭交替
  93.          led7=1;
  94.         else
  95.          led7=0;
  96.         c++;
  97. }

  98. void ctrl()                            //接收处理函数
  99. {
  100.                                     switch(tmp)
  101.                                   {
  102.                                           case '1':
  103.                                                 led1=1;                                   //收到字符1,指示灯0灭
  104.                                                 send(tmp);
  105.                                                 break;                                       
  106.                                         case '2':                                         //收到字符2,指示灯1灭
  107.                                                  led2=1;
  108.                                                  send(tmp);
  109.                                                  break;
  110.                                         case '3':                                    //收到字符3,指示灯0、1亮
  111.                                                  led1=0;
  112.                                                  led2=0;
  113. ……………………

  114. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
蓝牙超声波模块源码.rar (1.61 MB, 下载次数: 120)
回复

使用道具 举报

ID:246089 发表于 2017-11-4 21:15 | 显示全部楼层
能不能给个传输程序
回复

使用道具 举报

ID:246094 发表于 2017-11-4 21:25 | 显示全部楼层
帮帮 能不能给个传输程序
回复

使用道具 举报

ID:250176 发表于 2018-4-13 23:16 | 显示全部楼层
楼主有没有STM32驱动HC-06的代码,我的板子是F103C8T6
回复

使用道具 举报

ID:367125 发表于 2018-7-8 05:35 | 显示全部楼层
学习了,刚接触这一块
回复

使用道具 举报

ID:37956 发表于 2020-2-20 21:37 | 显示全部楼层
还可以下载吗
回复

使用道具 举报

ID:1087282 发表于 2023-7-5 09:13 | 显示全部楼层
有没有硬件链接吖?视频说明什么的?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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