打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
51单片机智能语音蓝牙控制四驱小车源码、制作说明(附语...
 本帖最后由 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个口都是低电平,小车停下来
                }
        }

}



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
ISD2560语音芯片的录放电路设计
基于51单片机的安卓蓝牙小车 智能遥控小车
173 冷热过程控制方法-控制单元
讯飞输入法语音输入方法教程
iPhone耳机除了听歌还有哪些少有人知的使用技巧?
耳机隐藏着的5大强大功能,第3个很强大,第一个却很少人知道!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服