欢迎来到天天文库
浏览记录
ID:47537154
大小:54.01 KB
页数:10页
时间:2020-01-14
《蓝牙遥控小车程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、多功能小车程序——成旺荣2015-4-610//main.c#include"allhead.h"#defineucharunsignedchar#defineuintunsignedintfloatdis=0;//原始距离intdistance=0;//距离整数charchangeint[4]={'0','1','2','3'};voidmain(){maininit();//全部初始化while(1){//beer=0;dis=MeasureDistance();//测量距离distance=(int)(dis*1);//单位mmdisapple(distance)
2、;//数码管显示10change_int_to_char(distance);//把距离变成四位字符send_and_control();//发送距离的四位字符Car(s1,s2);delayms(10);}}//mainint.c初始化#include"allhead.h"voidmaininit(){s1=0;s2=0;SCON=0X50;//设置串口工作方式为工作方式1包含SM0SM1SM2REN01010000//SM0=0;//SM1=1;//REN=1;PCON=0X80;//波特率加倍TMOD=0X21;//计时器0工作1,计时器1工作2TH0=0;//计
3、数器0TL0=0;TH1=0XFA;//计数器1初始值设置,注意波特率是9600的TL1=0XFA;IT0=1;//下降沿触发EX0=1;//开外部中断ET0=1;//开定时器0中断TR0=0;//未打开计数器ES=1;//打开接收中断EA=1;//开总中断TR1=1;//打开计数器}10//hc04.c蓝牙模块#include"allhead.h"#include"main.h"unsignedcharflag;charreceiveData;//蓝牙接收数据voidsendout(){inti;for(i=0;i<4;i++){SBUF=changeint[i];w
4、hile(!TI);//等待发送数据完成TI=0;//清除发送完成标志位}for(i=0;i<2;i++){SBUF='m';while(!TI);//等待发送数据完成TI=0;}SBUF='';while(!TI);//等待发送数据完成TI=0;}/********************************************************************************函数名:Usart()interrupt4*函数功能:中断输入函数*输入:无*输出:无*************************************
5、******************************************/voidUsart()interrupt4{10inti;//charreceiveData;//蓝牙接收数据receiveData=SBUF;//出去接收到的数据RI=0;//清除接收中断标志位flag=1;}//eat.c超声波模块#include"allhead.h"floati=0.0;floatMeasureDistance(){TH0=0;TL0=0;Echo=0;Trig=1;//延时Delay10us();Trig=0;while(Echo==0);TR0=1;dela
6、yms(20);return(i);}voidcounter0(void)interrupt0{TR0=0;i=((float)TH0*256+(float)TL0)*0.17;//距离,返回值为mm值TH0=0;TL0=0;if(i<300){beer=1;delayms(1);10beer=0;delayms(5);}}voidTimer0()interrupt1{}//send_and_control.c输出与控制#include"allhead.h"unsignedints1,s2;voidsend_and_control(){if(distance<300){
7、s1=2;}if(flag==1){ES=0;switch(receiveData){case'1':s1=1;break;//前进case'2':s1=2;break;//后退case'3':s1=3;break;//左拐case'4':s1=4;break;//右拐case'5':s1=5;break;//后退case'6':s2+=5;if(s2>=30)s2=0;break;//减速case'7':s2-=5;if(s2<=0)s2=10;break;//加速10case'8':{sendout();break;}//casede
此文档下载收益归作者所有