预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

仅供学习参考 #include<reg51.h> #include<stdio.h> #defineuintunsignedint #defineucharunsignedchar /**********************************/ ucharled_data[9]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80}; ucharcircle=0,cir_comp=0,cir_count=0;//设定圈数,实际圈数 ucharturn_count=0; bitend=0;//圈数跑完标志 /*********************************/ 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; sbitH_IN3=P2^6;//车尾右轮控制 sbitH_IN4=P2^7; sbitQ_ENA=P3^0;//车前左轮使能,PWM sbitQ_ENB=P3^1;//车前右轮使能, sbitH_ENA=P3^6;//车尾左轮使能, sbitH_ENB=P3^7;//车尾右轮使能, /****************************************/ #definestra_q_l100//直线行走时,四个轮子占空比调试 #definestra_q_r100 #definestra_h_l100 #definestra_h_r100 #defineturn_q_l100//转弯时四个轮子的占空比调试 #defineturn_q_r100 #defineturn_h_l100 #defineturn_h_r100 #defineturnr_time2900//右转弯时的延时常数 #defineturnl_time3000//左转弯时的延时常数 #definedt_time5800//原地掉头时延时常数 #defineover_time1000//停止延时 #defineback_time2500//走完环形,回到直道延时转弯 #defineblack_time1500//过黑线的时间 #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) { ucharx; while(n--) { for(x=0;x<250;x++); }; } /***********************************/ voiddelay(uintct) //延时函数 { 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_IN2=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; } /***************************************