永发信息网

下面是51单片机通过蓝牙hc 06控制led灯的闪亮状况。没有效果 求解释 一定采纳

答案:2  悬赏:20  手机版
解决时间 2021-02-06 18:53
  • 提问者网友:孤凫
  • 2021-02-06 15:23
#include //此文件中定义了51的一些特殊功能寄存器
#include
#define uint unsigned int
#define uchar unsigned char
uint i;

uchar read[9];
sbit d16 = P1^6;

void delayms(unsigned char ms)
{ unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}

void init()
{ PCON = 0x80; //1000 0000
SCON = 0x40; //0100 0000 串口通讯, 工作方式1
TMOD = 0x20;
TH1 = 0xff;
TL1 = 0xff;

}

void main()
{

init();
// 停止
d16 = 0;

//接受蓝牙模块返回的数据
REN= 1; //接受蓝牙模块返回的数据
//接受蓝牙模块返回的数据
read[0] = SBUF;
while(!RI);
RI = 0;

REN= 0;

if(read[0]==0x01) //进行判断,左转 ,

d16 = 1;
delayms(600);
d16 = 0;
delayms(600);
d16 = 1;
delayms(600);
d16 = 0;
delayms(600);
while(1)
{ REN=1;
//接受蓝牙模块返回的数据
read[0] = SBUF;
while( !RI);
RI = 0;

REN=0;

if(read[0]==0x00) //进行判断,前进,
P1=0x00;

if(read[0]==0x01) //进行判断,左转 ,

d16 = 1;
delayms(600);
d16 = 0;
delayms(600);
d16 = 1;
delayms(600);
d16 = 0;
delayms(600);

if(read[0]==0x02) //进行判断,右转,

d16 = 1;
delayms(600);
d16 = 0;
delayms(1800);
d16 = 1;
delayms(600);
d16 = 0;
delayms(1800);

if(read[0]==0x03) //进行判断,倒退,

d16 = 1;
delayms(1800);
d16 = 0;
delayms(1800);
d16 = 1;
delayms(1800);
d16 = 0;
delayms(1800);

if(read[0]==0x04) //进行判断,倒退,

d16 = 1;
delayms(600);
d16 = 0;
delayms(1800); //停止
d16 = 1;
delayms(600);
d16 = 0;
delayms(1800);

}

}
最佳答案
  • 五星知识达人网友:往事隔山水
  • 2021-02-06 15:34
首先将蓝牙模块调试好,蓝牙正常工作了,再去考虑其他的
全部回答
  • 1楼网友:一秋
  • 2021-02-06 15:58
hc-05蓝牙模块的state是连接状态引脚,en应该是使能,这两个引脚一般不需要连接,悬空即可,关于程序请参考https://zhidao.baidu.com/question/370353409139226284
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯