蓝牙遥控小车程序..doc
文本预览下载声明
多功能小车程序
——成旺荣
2015-4-6
//main.c
#includeallhead.h
#define uchar unsigned char
#define uint unsigned int
float dis=0; //原始距离
int distance=0; //距离整数
char changeint[4]={0,1,2,3};
void main()
{
maininit(); //全部初始化
while(1)
{
// 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初始化
#includeallhead.h
void maininit()
{
s1=0;
s2=0;
SCON=0X50; //设置串口工作方式 为工作方式1 包含SM0 SM1 SM2 REN 0101 0000
// 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蓝牙模块
#includeallhead.h
#includemain.h
unsigned char flag;
char receiveData; //蓝牙接收数据
void sendout()
{
int i;
for(i=0;i4;i++)
{
SBUF=changeint[i];
while(!TI); //等待发送数据完成
TI=0; //清除发送完成标志位
}
for(i=0;i2;i++)
{
SBUF=m;
while(!TI); //等待发送数据完成
TI=0;
}
SBUF=\n;
while(!TI); //等待发送数据完成
TI=0;
}
/*******************************************************************************
* 函 数 名 :Usart() interrupt 4
* 函数功能 : 中断输入函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void Usart() interrupt 4
{
int i;
// char receiveData; //蓝牙接收数据
receiveData=SBUF; //出去接收到的数据
RI = 0; //清除接收中断标志位
flag=1;
}
//eat.c超声波模块
#includeallhead.h
float i=0.0;
float MeasureDistance()
{
TH0=0;
TL0=0;
Echo=0;
Trig=1; //延时
Delay10us();
显示全部