📄 car02.lst
字号:
185 5 }
186 4 }
187 3 }
188 2 }
189 1 if(zhong==1) flag++;
190 1 if(flag_stop==1)
191 1 {
192 2 stop();delay(5000);flag_stop=0;flag_chaoche=0;
193 2 }
194 1 }
195 //********************************************************************************************************
-***//
196 //********************************************************************************************************
-***//
197 void xunji_stop_normal(void)//停车走法循迹
198 {
199 1 if(left==0&&right==0)
200 1 {
201 2 go_along_right();
202 2 }
203 1 if(left==0&&right==1)
204 1 {
205 2 turn_left_go_low();
206 2 }
207 1 if(left==1&&right==0)
208 1 {
209 2 turn_right_go();
210 2 }
211 1 if(left==1&&right==1)
212 1 {
213 2 go_along_right();
214 2 }
215 1 }
216 void xunji_stop_low_speed(void)//停车走法低速循迹
217 {
218 1 if(left==0&&right==0)
219 1 {
220 2 go_along_right();delay(5);stop();delay(95);
221 2 }
222 1 if(left==0&&right==1)
223 1 {
224 2 turn_left_go_low();
225 2 }
226 1 if(left==1&&right==0)
227 1 {
228 2 turn_right_go();
229 2 }
230 1 if(left==1&&right==1)
231 1 {
C51 COMPILER V8.02 CAR02 09/03/2011 18:17:43 PAGE 5
232 2 go_along_right();delay(5);stop();delay(95);
233 2 }
234 1 }
235
236
237 void xunji_very_low_speed(void)//停车区超低速走
238 {
239 1 if(left==0&&right==0)
240 1 {
241 2 go_along_right_lowlow();delay(2);stop();delay(98);
242 2 }
243 1 if(left==0&&right==1)
244 1 {
245 2 turn_left_verylow();
246 2 }
247 1 if(left==1&&right==0)
248 1 {
249 2 turn_right_go_verylow();
250 2 }
251 1 if(left==1&&right==1)
252 1 {
253 2 go_along_right_lowlow();delay(2);stop();delay(98);
254 2 }
255 1 }
256 void xunji_stop(void)//停车走法循迹函数
257 {
258 1 if(zhong==0)
259 1 {
260 2 if(jichu==0)
261 2 {
262 3 xunji_stop_normal();
263 3 }
264 2 if(jichu==1)
265 2 {
266 3 if(flag_chaoche==0)
267 3 {
268 4 xunji_stop_normal();
269 4 }
270 3 if((flag_chaoche==1)&&(flag_stop!=1))
271 3 {
272 4 xunji_stop_low_speed();
273 4 }
274 3 if((flag_chaoche==1)&&(flag_stop==1))
275 3 {
276 4 xunji_very_low_speed();
277 4 }
278 3 }
279 2
280 2 }
281 1 if(zhong==1) flag++;
282 1 // if(flag_stop==1) {stop();delay(10000);flag_stop=0;flag_chaoche=0;}
283 1 }
284 //********************************************************************************************************
-*//
285 void zhuanwan4(void)//4步拟合曲线
286 {
287 1 go_along();delay(260);turn_left_low();delay(150);
288 1 go_along();delay(200);stop();delay(50);turn_left_go();delay(200);
289 1 go_along();delay(130);stop();delay(50);turn_left_go();delay(170);
290 1 go_along();delay(100);stop();delay(50);turn_left_go();delay(150);
291 1 while((right!=1)&&(left!=1)){go_along();}
292 1 stop();delay(50);go_back();delay(50);
C51 COMPILER V8.02 CAR02 09/03/2011 18:17:43 PAGE 6
293 1 }
294 void zhuanwan3(void)//3步拟合曲线
295 {
296 1 go_along();delay(300);turn_left_low();delay(150);
297 1 go_along();delay(200);stop();delay(50);turn_left_go();delay(200);
298 1 go_along();delay(130);stop();delay(50);turn_left_go();delay(200);
299 1 while(right!=1){go_along();}stop();delay(50);go_back();delay(50);turn_left_go();delay(70);
300 1 }
301 void TIMER0_ROUTINE(void) interrupt 1
302 {
303 1 timer++;
304 1 TH0=0x4c; //周期50MS
305 1 TL0=0x00;
306 1 if(timer==180){timer=0;TR0=0;ET0=0;flag_stop=1;}
307 1 }
308 void ri_inter() interrupt 4
309 {
310 1 unsigned char key;
311 1 RI=0;
312 1 key=SBUF;
313 1 if(key==3) {flag_ok=1;flag_chaoche=0;flag_stop=0;}
314 1 if(key==2) {flag_start=1;p27=0;}
315 1 }
316 void main()
317 {
318 1 TMOD=0x21;
319 1 SCON=0x50; //8 bit
320 1 TL1=0xfd; //9600
321 1 TH1=0xfd;
322 1 TR1=1;
323 1 ES=1;
324 1 EA=1;//
325 1 flag=0;
326 1
327 1 while(flag_start==0)
328 1 {
329 2 t++;delay(100);
330 2 if(t==65) // 启动保护 定时 6S 自启动
331 2 { t=0;
332 3 flag_start=1;
333 3 }
334 2 }
335 1 flag_start=0;
336 1
337 1 while(1)
338 1 {
339 2 if(flag_change==1){xunji_stop(); }
340 2 if(flag_change==0){xunji_bizhang(); }
341 2 switch(flag)
342 2 {
343 3 case 0:break;
344 3 case 1:stop();delay(4500); //开始停车时间 3S
345 3 if(flag_change==1){send232byte(2);delay(50);}
346 3 go_along_right();delay(50);flag++;break;//1
347 3 case 2:break;
348 3 case 3:stop();delay(50);zhuanwan4();flag++;break;//2
349 3 case 4:break;
350 3 case 5:stop();delay(50);zhuanwan4();flag++;break;//3
351 3 case 6:break;
352 3 case 7:go_along();delay(100);zhuanwan3();flag++;break;//4
353 3 case 8:while(right!=1){go_along();}stop();delay(50);go_back();delay(40);turn_left();delay(40);
354 3 flag_chaoche=1;
C51 COMPILER V8.02 CAR02 09/03/2011 18:17:43 PAGE 7
355 3 if(flag_change==1){ TH0=0x4c;TL0=0x00;TR0=1;ET0=1;}
356 3 flag++;break;//
357 3 case 9:break;
358 3 case 10:flag_chaoche=0;flag_xunji_zhuan=0;stop();delay(50);zhuanwan3();flag++;break;//5
359 3 case 11:break;
360 3 case 12:stop();delay(1000);if(flag_change==0){send232byte(3);delay(50);}flag=2;flag_change=!flag_change;
-break;//6
361 3 default:while(1){stop();delay(50);}break;
362 3 }
363 2
364 2 }
365 1 }
366
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1585 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 ----
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -