資源描述:
《基于51單片機智能小車循跡程序》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、#include#include#defineuintunsignedint#defineucharunsignedchar/**********************************/ucharled_data[9]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};ucharcircle=0,cir_comp=0,cir_count=0;//設定圈數(shù),實際圈數(shù)ucharturn_count=0;bitend=0;//圈數(shù)跑完標志/
2、*********************************/sbitxg0=P1^0;//左尋軌對管sbitxg1=P1^1;//中間尋軌對管sbitxg2=P1^2;//右尋軌對管sbitxz=P1^3;//感應擋板對管/*********************************/sbitQ_IN1=P2^0;//車前左輪控制sbitQ_IN2=P2^1;sbitQ_IN3=P2^2;//車前右輪控制sbitQ_IN4=P2^3;sbitH_IN1=P2^4;//車尾左輪控制sbitH_IN2=P2^5;
3、sbitH_IN3=P2^6;//車尾右輪控制sbitH_IN4=P2^7;sbitQ_ENA=P3^0;//車前左輪使能,PWMsbitQ_ENB=P3^1;//車前右輪使能,sbitH_ENA=P3^6;//車尾左輪使能,sbitH_ENB=P3^7;//車尾右輪使能,/****************************************/#definestra_q_l100//直線行走時,四個輪子占空比調試#definestra_q_r100#definestra_h_l100#definestra_h_
4、r100#defineturn_q_l100//轉彎時四個輪子的占空比調試#defineturn_q_r100#defineturn_h_l100#defineturn_h_r100#defineturnr_time2900//右轉彎時的延時常數(shù)#defineturnl_time3000//左轉彎時的延時常數(shù)#definedt_time5800//原地掉頭時延時常數(shù)#defineover_time1000//停止延時#defineback_time2500//走完環(huán)形,回到直道延時轉彎#defineblack_time15
5、00//過黑線的時間#definecorrect_l_time700//左矯正時間#definecorrect_r_time700//右矯正時間#definehou_time200/***************************************/ucharq_duty_l,q_duty_r,h_duty_l,h_duty_r,//車前后左右輪占空比i=0,j=0,k=0,m=0;/**************************************/voiddelay_cir(uintn){ucha
6、rx;while(n--){for(x=0;x<250;x++);};}/***********************************/voiddelay(uintct)//延時函數(shù){uintt;t=ct;while(t--);}/***************************************/voidstraight()//直走{q_duty_l=stra_q_l;q_duty_r=stra_q_r;h_duty_l=stra_h_l;h_duty_r=stra_h_r;Q_IN1=1;Q_IN
7、2=0;Q_IN3=1;Q_IN4=0;H_IN1=1;H_IN2=0;H_IN3=1;H_IN4=0;}/***************************************/voidhoutui()//后退{q_duty_l=stra_q_l;q_duty_r=stra_q_r;h_duty_l=stra_h_l;h_duty_r=stra_h_r;Q_IN1=0;Q_IN2=1;Q_IN3=0;Q_IN4=1;H_IN1=0;H_IN2=1;H_IN3=0;H_IN4=1;}/***************
8、************************/voidturn_left()//左轉{q_duty_l=turn_q_l;q_duty_r=turn_q_r;h_duty_l=turn_h_l;h_duty_r=turn_h_r;Q_IN1=0;//左輪反轉Q_IN2=1;H_IN1=0;H_IN2