找回密码
 立即注册

QQ登录

只需一步,快速开始

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

超声波检测到有人经过的时候,蓝牙发送信息到手机上怎么弄 求教导 谢谢 赶时间

[复制链接]
跳转到指定楼层
楼主
本人用两个超声波和一个蓝牙模块hc06和stc89c52rc和一个5v降3.3v的某块弄了一个东西,就是超声波检测到有人经过的时候,蓝牙发送信息到手机上,
但是我已经将蓝牙和手机连接在了一起,但是却接收不到数据,为什么呢,本人以前没有玩过蓝牙模块,没有怎么设置蓝牙  AT指令之类的 该怎么做呢?
或者是我的程序出了问题 帮我看看问题

单片机源程序:
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4.         sbit trig=P1^1;
  5.         sbit trig2=P1^2;
  6.         sbit echo=P1^3;
  7.         sbit echo2=P1^4;

  8.                 unsigned long s1=0,s2=0;
  9.                 uchar code words[]="guard is here turn it  off";
  10.                 uchar code words2[]="guard is gone keep playing";
  11.                 uchar code words3[]="guard is here";
  12.                 uchar o,p,q;
  13.                 uint time;

  14.         void delay(unsigned char x) //1ms延时函数,100ms以内可用
  15.         {
  16.         unsigned char i;
  17.         while(x--)
  18.         for(i=124;i>0;i--);
  19.         }

  20. void Count1(void)                   //计算距离
  21.         {
  22.                  trig=1;
  23.                  delay(1);
  24.                  trig=0;
  25.           while(!echo);                       //当RX为零时等待
  26.            TR0=1;                               //开启计数
  27.           while(echo);                           //当RX为1计数并等待
  28.             TR0=0;                                   //关闭计数
  29.             time=TH0*256+TL0;                   //读取脉宽长度
  30.             TH0=0;
  31.             TL0=0;
  32.             s1=(time*1.7)/100;        //算出来是CM
  33.         }
  34. void Count2(void)                   //计算距离
  35.         {
  36.                   trig2=1;
  37.                   delay(1);
  38.                   trig2=0;
  39.           while(!echo2);                       //当RX为零时等待
  40.            TR0=1;                               //开启计数
  41.           while(echo2);                           //当RX为1计数并等待
  42.             TR0=0;                                   //关闭计数
  43.             time=TH0*256+TL0;                   //读取脉宽长度
  44.             TH0=0;
  45.             TL0=0;
  46.             s2=(time*1.7)/100;        //算出来是CM
  47.         }

  48. void Init(void)
  49. {
  50.     TMOD    = 0x31;
  51.     PCON   &= 0x7f;
  52.     SCON    = 0x50;//串行口控制寄存器 SM1=1,SM0=0方式一波特率可变
  53.     TH1     = 0xFD; //设置波特率 9600
  54.     TL1     = 0xFD;
  55.     TR1     = 1;    //启动定时器1
  56.     TI      = 0;
  57.     RI      = 0;
  58.         TH0= TL0= 0;           
  59.         ET0     = 1;
  60.     ES      = 1;    //开串口中断
  61.     EA      = 1;   //开定时器中断

  62. }
  63. void count()
  64. {
  65. while(1)
  66. {
  67.         Count1();
  68.         Count2();
  69.                 if((s1<80)||(s2<80)) //如果有一个超声波有反应 证明宿舍阿姨进入了检测区
  70.                 {
  71.                 ES=0;
  72.                 for(o=0;o<26;o++)
  73.                 {
  74.                 SBUF=words[o];
  75.                 while(!TI);
  76.                 TI=0;
  77.                 }
  78.                 ES=1;
  79.                
  80.                         if((s1<80)||(s2<80))//进入了之后两个超声波都没有反应,证明阿姨在反应区内
  81.                     {               
  82.                         ES=0;
  83.                         for(p=0;p<26;p++)
  84.                         {        
  85.                         SBUF=words2[p];
  86.                         while(!TI);
  87.                         TI=0;
  88.                         }
  89.                         ES=1;
  90.                     }
  91.                             else if((s1>150)&&(s2>150))//有一个超声波反应了,证明阿姨出去了 可以玩手机了
  92.                             {
  93.                             ES=0;
  94.                             for(q=0;q>13;q++)
  95.                             {
  96.                             SBUF=words3[q];
  97.                             while(!TI);
  98.                             TI=0;
  99.                             }
  100.                             ES=1;
  101.                                    }
  102.             }
  103.         }
  104. }
  105. void main()
  106. {
  107. void Init();
  108. while(1)
  109. {
  110. count();
  111. }
  112. }
复制代码




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

使用道具 举报

沙发
ID:235164 发表于 2018-1-14 01:34 | 只看该作者
上位机是蓝牙串口助手Pro
回复

使用道具 举报

板凳
ID:258020 发表于 2018-1-14 09:21 | 只看该作者
先不连接蓝牙,把串口连接到PC,用PC的串口助手先把程序调试好,再换蓝牙模块与手机测试。如果PC端调通了手机端不通,可以换一个APP再试。以前做项目的时候,记得有的蓝牙串口助手有问题。最好用模块厂商提供的APP,好像是HC-COM。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:275955 发表于 2018-1-14 21:46 | 只看该作者
上位机是蓝牙串口助手Pro
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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