用keil c语言编写蓝牙串口通信遥控小车 100
蓝牙串口是P3.0、P3.1四个轮子分别是P3.2-P3.5,有蓝牙软件可以控制小车要满足以下功能:原地打转短促鸣笛(路口)左右转向灯(LED0P10LED7P17)临时...
蓝牙串口是P3.0、P3.1
四个轮子分别是P3.2-P3.5,有蓝牙软件可以控制小车
要满足以下功能:
原地打转
短促鸣笛(路口 )
左右转向灯(LED0 P10 LED7 P17)
临时停车时双闪灯(原地不动,手机按一下,黄灯可闪烁3-5次 )
跑直线(前进后退走直线)
转弯可以换档位至少3个档位(档位PWM调速)
车运行时数码管显示HELLO等欢迎词
临时停车时播放音乐(自行查找音乐频谱数组)
类似:(不完整要改)
switch(ma)
{
case 'a':q=1; qianjin(); break; //前进
case 'b': houtui();break; //后退
case 'c': leftup();break; //左拐弯
case 'd': rightup();break; //右拐弯
case 'e': right();break; //右旋转
case 'f': mingdi();break; //鸣笛
case 'g': leftdown();break; //左自旋
case 'h': rightdown();break; //右自旋
case 's':q=0; ting();PlayMusic();break; //停止+双闪
case 'x': PWMADD(); break; //加速
case 'y': bizhang(); break; //避障 left();
case 'z': PWMADJ(); break; //减速
case 'n': ting1();break;
}
大神快帮帮忙吧,谢谢
音乐播放最好用T2,急求 展开
四个轮子分别是P3.2-P3.5,有蓝牙软件可以控制小车
要满足以下功能:
原地打转
短促鸣笛(路口 )
左右转向灯(LED0 P10 LED7 P17)
临时停车时双闪灯(原地不动,手机按一下,黄灯可闪烁3-5次 )
跑直线(前进后退走直线)
转弯可以换档位至少3个档位(档位PWM调速)
车运行时数码管显示HELLO等欢迎词
临时停车时播放音乐(自行查找音乐频谱数组)
类似:(不完整要改)
switch(ma)
{
case 'a':q=1; qianjin(); break; //前进
case 'b': houtui();break; //后退
case 'c': leftup();break; //左拐弯
case 'd': rightup();break; //右拐弯
case 'e': right();break; //右旋转
case 'f': mingdi();break; //鸣笛
case 'g': leftdown();break; //左自旋
case 'h': rightdown();break; //右自旋
case 's':q=0; ting();PlayMusic();break; //停止+双闪
case 'x': PWMADD(); break; //加速
case 'y': bizhang(); break; //避障 left();
case 'z': PWMADJ(); break; //减速
case 'n': ting1();break;
}
大神快帮帮忙吧,谢谢
音乐播放最好用T2,急求 展开
2个回答
展开全部
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
uchar data tab[10];//将要提取的数据装入这个数组,数组元素为10个,不够时自己改一下
main()
{
uchar i;
SCON = 0x50;
TMOD = 0x20;
TH1 = 0x??;//串口波特率设置,需要提供单片机的时钟频率。
TL1 = 0x??;
TR1 = 1;
while(1)
{
for(i = 0;i<8;i++)//等待串口发送的前8个字节数据并丢弃,这是最简单方法,当然也有复杂的
{
while(!RI);//等待接收串口数据
RI =0;//清接收标志
}
for(i = 0;i<10;i++)
{
while(!RI);
tab[i] = SBUF;//将提起的数据载入数组
RI = 0;
if(!SBUF)brwak;//如果接收的数据为00,结束提取,通过变量“i”可知道所提取数据的字节数
}
for(i = 0;i<4;i++ )//等待最后4个字节接收并丢弃数据
{
while(!RI);
RI = 0;
}
}
}
#include <intrins.h>
#define uchar unsigned char
uchar data tab[10];//将要提取的数据装入这个数组,数组元素为10个,不够时自己改一下
main()
{
uchar i;
SCON = 0x50;
TMOD = 0x20;
TH1 = 0x??;//串口波特率设置,需要提供单片机的时钟频率。
TL1 = 0x??;
TR1 = 1;
while(1)
{
for(i = 0;i<8;i++)//等待串口发送的前8个字节数据并丢弃,这是最简单方法,当然也有复杂的
{
while(!RI);//等待接收串口数据
RI =0;//清接收标志
}
for(i = 0;i<10;i++)
{
while(!RI);
tab[i] = SBUF;//将提起的数据载入数组
RI = 0;
if(!SBUF)brwak;//如果接收的数据为00,结束提取,通过变量“i”可知道所提取数据的字节数
}
for(i = 0;i<4;i++ )//等待最后4个字节接收并丢弃数据
{
while(!RI);
RI = 0;
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个我做过
更多追问追答
追问
拿给一下啊,谢谢
追答
给个邮箱什么我发给你 要下个手机APP就可以用 你们端口单片机型号自己改吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询