本帖最后由 zqykkkk 于 2018-7-9 23:18 编辑
功能实现:初始化后,一定要打开网络,否则不能使用语音功能。对手机话筒说“向前行驶”,小车便执行你的命令并播放状态。对手机话筒说“向后行驶”,小车便执行你的命令并播放状态。对手机话筒说“向左行驶”小车便执行你的命令并播放状态。对手机话筒说“向右行驶”,小车便执行你的命令并播放状态。对手机话筒说“停止行驶”,小车便执行你的命令并播放状态。实现过程向前行驶是发送A到单片机。向后行驶是发送B到单片机,向左行驶是发送C到单片机。向右行驶是发送D到单片机。停止行驶是发送E到单片机。对手机话筒说“原地左转”,小车便执行你的命令并播放状态。实现过程向前行驶是发送Z到单片机。对手机话筒说“原地右转”,小车便执行你的命令并播放状态。实现过程向前行驶是发送Y到单片机。资料附串口助手软件、51单片机程序及相关说明文档。下载入口:http://dl.21ic.com/user/uploadlog.html下面是程序的部分内容#include <reg51.h>
void UsartConfiguration();
unsigned char num;
void delay(unsigned int i) //延时函数,下面我说的500毫秒,现实不是500毫秒,方便大家理解而已
{
unsigned int k;
for (k=0;k<i;k++);
}
void main() //主函数
{
UsartConfiguration(); //调用蓝牙接受的参数
while(1)
{
/**********************向前行驶 *************************************/
if(num == 'A') //如果蓝牙接收到A字母,就执行下面的指令
{
delay(500); //延时一下
if(num == 'A')
{ //p1 1 1 1 1 分别对应1234号马达
P1=0x0f; // 0 0 0 0 上面是高电平,下面是低电平,四个马达都会向前开
delay(500); //延时降速,如果L298N是接12V的电源,那么马达的电压是12v,速度太快了,需要降速
P1=0x00; //这里降速的原理是让马达转500毫秒,停一下,转500毫秒,停一下,转500毫秒,停一下,从而达到降速的效果
}
}
/*****************************向后行驶 ***************/
if(num == 'B') //如果蓝牙接收到B字母,就执行下面的指令
{
delay(500);
if(num == 'B')
{ //p1 0 0 0 0 分别对应1234号马达
P1=0xf0; // 1 1 1 1 上面是低电平,下面是高电平,四个马达都会向后开
delay(500);
P1=0x00;
}
}
/*****************原地左转 *****************/
if(num == 'Z') //如果蓝牙接收到Z字母,就执行下面的指令
{
delay(500);
if(num == 'Z')
{ //p1 0 1 0 1 马达2 4向前开,马达1 3向后开
P1=0x5a; // 1 0 1 0
delay(500);
P1=0x00;
}
}
/****************原地右转 ************************************/
if(num == 'Y') //如果蓝牙接收到Y字母,就执行下面的指令
{
delay(500);
if(num == 'Y')
{ //P1 1 0 1 0 马达13向前开,马达24向后开
P1=0xa5; // 0 1 0 1
delay(500);
P1=0x00;
}
}
/****************向左行驶 ******************************/
if(num == 'C') //如果蓝牙接收到C字母,就执行下面的指令
{
delay(500);
if(num == 'C')
{
P1=0x5a; //小车左转600毫秒
delay(600);
P1=0x0f; //小车直行1200毫秒
delay(1200);
P1=0x00;
}
}
/****************向右行驶 *****************************/
if(num == 'D') //如果蓝牙接收到D字母,就执行下面的指令
{
delay(500);
if(num == 'D')
{
P1=0xa5;
delay(600);
P1=0x0f;
delay(1200);
P1=0x00;
}
}
/******************没指令的时候停车 没指令的时候停车 没指令的时候停车 没指令的时候停车 没指令的时候停车 没指令的时候停车 ***************************/
if(num == 'E') //如果蓝牙接收到数字E,就执行下面的指令
{
P1=0x00; //p1的8个口都是低电平,小车停下来
}
}
}
|