蓝牙遥控小车程序Word文件下载.docx
- 文档编号:796349
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:12
- 大小:31.22KB
蓝牙遥控小车程序Word文件下载.docx
《蓝牙遥控小车程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《蓝牙遥控小车程序Word文件下载.docx(12页珍藏版)》请在冰点文库上搜索。
{
//beer=0;
dis=MeasureDistance();
//测量距离
distance=(int)(dis*1);
//单位mm
disapple(distance);
//数码管显示
change_int_to_char(distance);
//把距离变成四位字符
send_and_control();
//发送距离的四位字符
Car(s1,s2);
delayms(10);
}
}
//mainint.c初始化
voidmaininit()
s1=0;
s2=0;
SCON=0X50;
//设置串口工作方式为工作方式1包含SM0SM1SM2REN01010000
//SM0=0;
//SM1=1;
//REN=1;
PCON=0X80;
//波特率加倍
TMOD=0X21;
//计时器0工作1,计时器1工作2
TH0=0;
//计数器0
TL0=0;
TH1=0XFA;
//计数器1初始值设置,注意波特率是9600的
TL1=0XFA;
IT0=1;
//下降沿触发
EX0=1;
//开外部中断
ET0=1;
//开定时器0中断
TR0=0;
//未打开计数器
ES=1;
//打开接收中断
EA=1;
//开总中断
TR1=1;
//打开计数器
}
//hc04.c蓝牙模块
#include"
main.h"
unsignedcharflag;
charreceiveData;
//蓝牙接收数据
voidsendout()
{
inti;
for(i=0;
i<
4;
i++)
SBUF=changeint[i];
while(!
TI);
//等待发送数据完成
TI=0;
//清除发送完成标志位
2;
SBUF='
m'
;
\n'
/*******************************************************************************
*函数名:
Usart()interrupt4
*函数功能:
中断输入函数
*输入:
无
*输出:
*******************************************************************************/
voidUsart()interrupt4
//charreceiveData;
receiveData=SBUF;
//出去接收到的数据
RI=0;
//清除接收中断标志位
flag=1;
//eat.c超声波模块
floati=0.0;
floatMeasureDistance()
Echo=0;
Trig=1;
//延时
Delay10us();
Trig=0;
while(Echo==0);
TR0=1;
delayms(20);
return(i);
voidcounter0(void)interrupt0
{
i=((float)TH0*256+(float)TL0)*0.17;
//距离,返回值为mm值
if(i<
300)
beer=1;
delayms
(1);
beer=0;
delayms(5);
voidTimer0()interrupt1
//send_and_control.c输出与控制
unsignedints1,s2;
voidsend_and_control()
if(distance<
s1=2;
if(flag==1)
ES=0;
switch(receiveData)
{
case'
:
s1=1;
break;
//前进
s1=2;
//后退
case'
s1=3;
//左拐
4'
s1=4;
//右拐
case'
5'
s1=5;
//后退
6'
:
s2+=5;
if(s2>
=30)s2=0;
//减速
7'
s2-=5;
if(s2<
=0)s2=10;
//加速
8'
{
sendout();
break;
}//case
default:
s1=5;
}//switch
flag=0;
}//if
//car.c
voidCar(unsignedintc,unsignedintd)
switch(c)
case1:
Go();
delayms(10);
Stop();
delayms(d);
Go();
case2:
Back();
Back();
case3:
Turn_left();
delayms(5);
case4:
Turn_Right();
Turn_Right();
break;
case5:
Stop();
voidTurn_left(void)
IN1=0;
IN2=0;
IN3=1;
IN4=0;
voidTurn_Right(void)
IN1=1;
IN3=0;
voidGo(void)
voidBack(void)
IN2=1;
IN4=1;
voidStop(void)
//displayable.c数码管显示
/*
//--定义全局变量--//
unsignedcharcodeDIG_PLACE[8]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
//位选控制查表的方法控制
unsignedcharcodeDIG_CODE[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码
*/
unsignedcharcodeDIG_PLACE[4]={/*0x01,0x02,0x04,0x08*/0xfe,0xfd,0xfb,0xf7};
//共阴极
unsignedcharDisplayData[4];
//用来存放要显示的4位数的值
intapple[4]={0};
disapple
转换函数
voiddisapple(intj)
unsignedchari;
unsignedintk;
inta1,a2,a3,a4;
a1=j/1000;
a2=(j%1000)/100;
a3=(j%100)/10;
a4=j%10;
apple[0]=a1;
apple[1]=a2;
apple[2]=a3;
apple[3]=a4;
DisplayData[0]=DIG_CODE[a1];
DisplayData[1]=DIG_CODE[a2];
DisplayData[2]=DIG_CODE[a3];
DisplayData[3]=DIG_CODE[a4];
i<
i++)
GPIO_PLACE=DIG_PLACE[i];
//发送位选
GPIO_DIG=DisplayData[i];
//发送段码
k=10;
//扫描间隔时间设定
while(k--);
GPIO_DIG=0x00;
//消隐
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 蓝牙 遥控 小车 程序