找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1177|回复: 3
收起左侧

新人求教51单片机和蓝牙hc-08方面的技术问题

[复制链接]
ID:820729 发表于 2020-9-18 19:54 | 显示全部楼层 |阅读模式
最近在做一个类似智能家居方面的东西,其中有一部分涉及到热释电人体红外模块和蓝牙
这部分的具体内容就是,当人体红外检测到范围内有物体之后,通过蓝牙给手机发送警告。
经过检验,人体红外运行正常,所以我认为是蓝牙方面的问题

下面附上蓝牙部分单片机代码:

  1. void Com_Int(void) interrupt 4
  2. {
  3.           uchar i;
  4.           uchar receive_data;        
  5.           EA = 0;
  6.         
  7.           if(RI == 1) //当硬件接收到一个数据时,RI会置位
  8.         {                 
  9.                 RI = 0;
  10.                 receive_data = SBUF;//接收到的数据        
  11.                 if(receive_data == '1')         
  12.                 {
  13.                         j=j+1;
  14.                         if(j==2)
  15.                         j=0;
  16.                         if(j==1)               
  17.                         {
  18.                                 P1=0x00;
  19.                                 for(i=0; i<15; i++)
  20.                                 {
  21.                                         SBUF = PuZh1[ i];   //将要发送的数据放入到发送寄存器          开灯[ i]
  22.                                         while(!TI);                    //等待发送数据完成
  23.                                         TI=0;                                //清除发送完成标志位
  24.                                         delay(1);
  25.                                 }
  26.                         }
  27.                         if(j==0)
  28.                         {
  29.                                 P1=0xff;
  30.                                 for(i=0; i<15; i++)
  31.                                 {
  32.                                         SBUF = PuZh2[ i];   //将要发送的数据放入到发送寄存器          关deng[ i]
  33.                                         while(!TI);                    //等待发送数据完成
  34.                                         TI=0;                                //清除发送完成标志位
  35.                                         delay(1);
  36.                                 }
  37.                         }        


  38.                         
  39.                 }
  40.                
  41.         
  42.         }        
  43.         if(ren==1)    //检测到人
  44.         {
  45.                 for(i=0; i<36; i++)
  46.                         {
  47.                                 SBUF = PuZh[ i];   //将要发送的数据放入到发送寄存器[ i]
  48.                                 while(!TI);                    //等待发送数据完成
  49.                                 TI=0;                                //清除发送完成标志位
  50.                                 delay(1);
  51.                         }
  52.                         EA = 1;
  53.                         ren=0;
  54.         }
  55.         EA=1;        
  56. }


复制代码


上面一部分是通过蓝牙开关灯
下面这块是检测到人之后想要发送的数据

求教求教


回复

使用道具 举报

ID:584814 发表于 2020-9-21 17:13 | 显示全部楼层
分开调试,先调试红外模块,再调试蓝牙模块,然后联调。
回复

使用道具 举报

ID:311846 发表于 2020-9-22 15:05 | 显示全部楼层
单独调试呀!无关的东西全部注释掉,已经实现完整的注释了,测试的话直接人为写一个数据进去进行测试,功能一个个的加,功能实现了再加进去联调
回复

使用道具 举报

ID:311846 发表于 2020-9-22 15:18 | 显示全部楼层
你这个是串口中断吧!你在串口中断中判断红外人?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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