#include<reg52h>//声明头文件
#define uchar unsigned char//宏定义
#define uint unsigned int//宏定义
sbit deng=P2^0;//定义车灯的控制引脚
sbit z=P2^1;//定义左转向灯的控制引脚
sbit y=P2^2;//定义右转向灯的引脚
sbit BEEP=P2^3;//定义蜂鸣器的引脚
sbit zuo1=P0^0;//定义控制左边电机的单片机引脚
sbit zuo2=P0^1;//定义控制左边电机的单片机引脚
sbit you1=P0^2;//定义控制右边电机的单片机引脚
sbit you2=P0^3;//定义控制右边电机的单片机引脚
uchar a=0;//定义一个变量a,用来读取串口的数据
void delay(uint z)//一个带参数的延时程序
{
int i,j;//定义两个变量
for(i=10;i>0;i--)
for(j=z;j>0;j--);//将参数z赋值给j
}
void init()//初始化子程序
{
TMOD=0x20; //设置定时器T1为工作方式2
TH1=0xfd;
TL1=0xfd; //T1定时器装初值
TR1=1; //启动定时器T1
REN=1; //允许串口接收
SM0=0;
SM1=1; //设置串口工作方式1
EA=1; //开总中断
ES=1; //开串口中断
}
void go()//前进子程序
{
zuo1=0;
zuo2=1;//左边轮子正转
delay(25);//pwm有用值,越大左边方向的轮子越快
zuo1=1;//关闭左边轮子
you1=0;
you2=1; //右边轮子正转
delay(24);//pwm有用值,越大右边的轮子越快
you1=1;//关闭右边轮子
delay(100);//pwm无用值,越大,小车跑的越慢
z=1;
y=1;//关闭转向灯
}
void hui()//小车后退的子程序
{
zuo1=1;
zuo2=0;//左边轮子倒转
delay(25);//pwm有用值,越大左边方向的轮子越快
zuo2=1;//关闭左边轮子
you1=1;
you2=0; //右边轮子倒转
delay(24);//pwm有用值,越大右边的轮子越快
you2=1;//关闭右边轮子
delay(100);//pwm无用值,越大,小车跑的越慢
z=1;
y=1;//关闭转向灯
}
void turnleft()//小车左转弯子程序
{
zuo1=1;
zuo2=1;//左边轮子停止转动
you1=0;
you2=1; //右边轮子正转
delay(24);//pwm有用值,越大右边的轮子越快
you1=1;//右边轮子停止
delay(100);//pwm无用值,越大,小车跑的越慢
z=1;
y=1;//关闭转向灯
z=~z;//左转向灯打开
}
void turnright()//小车右转弯子程序
{
zuo1=0;
zuo2=1;//左边轮子正转
delay(25);//pwm有用值,越大左边方向的轮子越快
zuo1=1;//左边轮子停止
you1=1;
you2=1; //右边轮子停止
delay(100);//pwm无用值,越大,小车跑的越慢
z=1;
y=1;//关闭转向灯
y=~y;//右转向灯打开
}
void down()//停止子程序
{
zuo1=1;
zuo2=1;
you1=1;
you2=1; //左右轮全部停止
z=1;
y=1;//关闭转向灯
}
void onbeep()//蜂鸣器鸣响子程序
{
BEEP=0;
}
void offbeep()//蜂鸣器鸣响子程序
{
BEEP=1;
}
void main()//主程序
{
init();//调用初始化子程序
while(1)//死循环
{
switch(a)//判断a从串口读取到的数据
{
case 0x1f://如果是0x1f就前进
go();
break;
case 0x2f://如果是0x2f就后退
hui();
break;
case 0x3f://如果是0x3f就左转
turnleft();
break;
case 0x4f://如果是0x4f就右转
turnright();
break;
case 0x00://如果是0x00就停止
down();
break;
case 0xa0://如果是0xa0车灯打开
deng=0;
break;
case 0xb0://如果是0xb0车灯关闭
deng=1;
break;
case 0xc0://如果是0xc0蜂鸣器鸣响
onbeep();
break;
case 0xd0://如果是0xc0蜂鸣器鸣响
offbeep();
break;
}
}
}
void chuan() interrupt 4//串口中断服务程序
{
RI=0;//软件清除串口响应
a=SBUF;//读取单片机串口接受的蓝牙模块发送的数据
}
打开儿童汽车的蓝牙与WiF连接。
首先用手机下载小车手APP,并在完成小车手APP的注册,之后就APP里面找到连接儿童汽车的功能,然后把儿童汽车的蓝牙和WiFi打开,进行匹配连接就可以成功。
小车手APP是一款非常实用的 *** 控遥控工具软件,在这款软件中有着非常详细的 *** 作步骤,用户通过这款软件能够很好的 *** 控自己的遥控车,在软件中有了非常智能化的音频传输,可以给更多的儿童带来不同的体验,而且专业的蓝牙匹配可以确保 *** 作的安全性。
需要熟悉android录音的api
需要熟悉android蓝牙通信api
然后需要学习一下语音识别的东西,用第三方的就好 可以试一下 讯飞 的语音识别库
我简单说一下原理吧,芯片需要慢慢来挑选,这个你可以自己去找,有很多;
首先需要解决的是单片机控制小车的问题,要想解决这个问题,首先需要解决智能小车的 *** 作和功能;小车必须要有前后左右控制功能、加速、减速、刹车、左转向、又转向和倒车功能,有了这几种功能之后 小车才能行动自如;
解决小车的问题,就要将小车的控制功能转于到单片机来实现(一般小车内部也会有单片机),实现了这一步,下面就需要做蓝牙的通信;
蓝牙通信IC非常多,速率从几十KB~几MB不等,根据数据流的需求来选择一款蓝牙IC,进行IC-IC的通信,一般IC的DATASHEET里面都会详细的说明该器件的使用方法以及相关软件配置和 *** 作步骤等;重点在于调试,硬件电路搭建完成之后,最重要的是软件调试;
蓝牙通信方式是串行数据无线发送/接收,我们一般使用的控制位一般是多位的,那么你需要自己写一个小的并串转换程序;当然现在的蓝牙IC也有8BIT并行数据接口,如果选用类似的芯片,则更便于 *** 作;
用蓝牙控制小车,重点还是在于用单片机控制小车,只要实现了这一步,通信方面就比较简单了;
祝你成功;
打开车载蓝牙,在中控显示屏中,选择设置-蓝牙选项-车载蓝牙开启。打开手机蓝牙,在手机蓝牙界面搜索设备,找到汽车蓝牙。点击蓝牙进行配对。这时手机会询问配对的PIN码,可以在汽车的说明书中找到。配对成功后,汽车中央显示屏会显示配对信息和一些使用蓝牙的提示。
以上就是关于求蓝牙模块hc-05、stc89c52 小车c程序全部的内容,包括:求蓝牙模块hc-05、stc89c52 小车c程序、小车手app怎么连接儿童汽车、我想做一个通过Android手机声控的小车,用蓝牙通信。很简单就是可以前后左右移动就可以。请问大神等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)