資源描述:
《藍(lán)牙遙控小車程序》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、多功能小車程序-成旺榮2015-4-6//main.c#include"allhead.h”#defineucharunsignedchar#defineuintunsignedintfloatdis=0;//原始距離intdistance=O;//距離整數(shù)charchangeint[4]={'071’,T,T};voidmain(){maininit();//全部初始化while(l){//測呈距離//單位mm//數(shù)碼管顯示//beer=();dis=MeasureDistance();distance=(int)(dis*1);disappl
2、e(distance);change_int_to_char(distance);//把距離變成四位字符send_and_contro1();//發(fā)送距離的四位字符Car(sl,s2);delayms(10);}//mainint.c初始化#include"allhead.h"voidmaininit(){sl=0;s2=0;SCON=0X50;REN01010000PCON=0X80;TMOD=OX21;TH0=0;TLO二0;//設(shè)置串U工作方式為工作方式1包含SMOSMISM2//SM0=0;//SM1=1;//REN=1;//波特率加倍/
3、/計時器0工作1,計時器1工作2//計數(shù)器0TH1=OXFA;//計數(shù)器1初始值設(shè)置,注意波特率是9600的TL1=OXFA;IT0=l;//下降沿觸發(fā)EX0=l;//開外部中斷ET0=l;//開定時器0中斷TR0=0;//未打開計數(shù)器ES=1;//打開接收中斷EA=1;//開總中斷TR1=1;//打開計數(shù)器*函數(shù)名*函數(shù)功能入出//hc04.c藍(lán)牙模塊#include"allhead.h"#include"main.h"unsignedcharflag;charreceiveData;//藍(lán)牙接收數(shù)掘voidsendout(){inti;for
4、(i=0;i<4;i++){SBUF=changeint[i];while(!TI);TI=0;}for(i=0;i<2;i++){SBUF=,m,;while(!TI);TI=0;}SBUF=',;while(!TI);TI=0;}//等待發(fā)送數(shù)據(jù)完成//清除發(fā)送完成稱志位//等待發(fā)送數(shù)據(jù)完成//等待發(fā)送數(shù)據(jù)完成/?么*?上??丄?*1*?上??么**1*?!>?!>?又扇?又扇?又扇?又扇?又扇?又扇f*T**T**T*rTwrTwrTwrTwrTwrT*rT*rT*rT*rT
5、*rT*?T>rT*rTwrT*rTwrT*rTwrT*rTwrT*rTwrTwrTwrTwrTwrTw?T>rTwrTwrTwrTwrTwrTwrTwrTwrTwrTwrTwrTwrTwrTwrTwrTwr7wrTwr7wrTwr7wrTwr7wrTwr7wrTwr7wrTwr7wrTwr7wrTwr7wrTwr7wrTwr7wrTwrlwrTwvoidUsart()interrupt4intl;//charreceiveData;//藍(lán)牙接收數(shù)據(jù)receiveData=SBUF;//出去接收到的數(shù)據(jù)RI=O;//清除接收中斷標(biāo)志位flag=1
6、;//eat.c超聲波模塊#includeMallhead.h”floati=0.0;floatMeasureDistance(){TH0=0;TLO二0;Echo=0;Trig=l;//延時Delay10us();Trig=0;while(Echo==0);TR0=l;delayms(20);return(i);}voidcounterO(void)interrupt0{TR0=0;i=((noat)TH0*256+(noat)TL0)*0.17;//距離,返回值為mm值TH0=0;TL0=0;if(i<300){beer=1;delayms(
7、l);beer=O;delayms(5);}voidTimerO()interrupt1{}//send_and_controLc輸出與控制#includeMallhead.hHunsignedintsl,s2;voidsend_and_control(){if(distance<300){si=2;}if(flag==l)ES=0;switch(receiveData){caseT:sl=l;break;//前進case’2’:$1=2;break;"后退case’3’:sl=3;break;//左拐case’4’:si=4;break;//右
8、拐case’5’:sl=5;break;//后退case,6’:s2+=5;if(s2>=3O)s2=O;break;//減速case'