求蓝牙模块hc-05、stc89c52 小车c程序

求蓝牙模块hc-05、stc89c52l298n小车c程序... 求蓝牙模块hc-05、stc89c52 l298n 小车c程序 展开
 我来答
聂化宇
推荐于2019-03-16
知道答主
回答量:1
采纳率:0%
帮助的人:2.1万
展开全部
#include<reg52.h>//声明头文件
#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;//读取单片机串口接受的蓝牙模块发送的数据
}
晓网科技
2024-10-17 广告
电源: 2V-3.6V 典型值:3.3V。模块总功耗:A无线模块不工作时平均功耗 22-25mW  B无线模块工作时平均功耗 130-135mW  C无线模块工作时峰值功耗 140-150mW。发射功率:100mW  天线功率:1dBm  ... 点击进入详情页
本回答由晓网科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式