📄 car01.lst
字号:
177 2 if(jichu==1)
178 2 {
179 3 if(flag_chaoche==0)
180 3 {
181 4 xunji_bizhang_normal();
182 4 }
183 3 if(flag_chaoche==1)
184 3 {
185 4 if(flag_xunji_zhuan==0)
186 4 {
187 5 xunji_bizhang_low_speed();
188 5 if(qian==0)
189 5 {
190 6 chaoche_bizhang();
191 6 }
192 5 }
193 4 if(flag_xunji_zhuan==1)
194 4 {
195 5 xunji_bizhang_chaoche_over();
196 5 }
197 4 }
198 3 }
199 2 }
200 1 if(zhong==1) flag++;
201 1 if(flag_stop==1)
202 1 {
203 2 stop();delay(5000);flag_stop=0;flag_chaoche=0;
204 2 }
205 1 }
206 //********************************************************************************************************
-***//
207 //********************************************************************************************************
-***//
208 void xunji_stop_normal(void)//停车走法循迹
209 {
210 1 if(left==0&&right==0)
211 1 {
212 2 go_along_right();
213 2 }
214 1 if(left==0&&right==1)
215 1 {
216 2 turn_left_go_low();
217 2 }
218 1 if(left==1&&right==0)
219 1 {
220 2 turn_right_go();
221 2 }
222 1 if(left==1&&right==1)
223 1 {
224 2 go_along_right();
225 2 }
226 1 }
227 void xunji_stop_low_speed(void)//停车走法低速循迹
228 {
229 1 if(left==0&&right==0)
230 1 {
231 2 go_along_right();delay(5);stop();delay(95);
232 2 }
C51 COMPILER V8.02 CAR01 09/04/2011 23:23:06 PAGE 5
233 1 if(left==0&&right==1)
234 1 {
235 2 turn_left_go_low();
236 2 }
237 1 if(left==1&&right==0)
238 1 {
239 2 turn_right_go();
240 2 }
241 1 if(left==1&&right==1)
242 1 {
243 2 go_along_right();delay(5);stop();delay(95);
244 2 }
245 1 }
246 void xunji_very_low_speed(void)//停车区超低速走
247 {
248 1 if(left==0&&right==0)
249 1 {
250 2 go_along_right_lowlow();delay(2);stop();delay(98);
251 2 }
252 1 if(left==0&&right==1)
253 1 {
254 2 turn_left_verylow();
255 2 }
256 1 if(left==1&&right==0)
257 1 {
258 2 turn_right_go_verylow();
259 2 }
260 1 if(left==1&&right==1)
261 1 {
262 2 go_along_right_lowlow();delay(2);stop();delay(98);
263 2 }
264 1 // if(flag_ok==1){stop();delay(5000);flag_chaoche=0;flag_stop=0;}
265 1 }
266 void xunji_stop(void)//停车走法循迹函数
267 {
268 1 if(zhong==0)
269 1 {
270 2 if(jichu==0)
271 2 {
272 3 xunji_stop_normal();
273 3 }
274 2
275 2 if(jichu==1)
276 2 {
277 3 if(flag_chaoche==0)
278 3 {
279 4 xunji_stop_normal();
280 4 }
281 3 if((flag_chaoche==1)&&(flag_stop!=1))
282 3 {
283 4 xunji_stop_low_speed();
284 4 }
285 3 if((flag_chaoche==1)&&(flag_stop==1))
286 3 {
287 4 xunji_very_low_speed();
288 4 }
289 3 }
290 2 }
291 1 if(zhong==1) flag++;
292 1 }
293 //********************************************************************************************************
-***//
C51 COMPILER V8.02 CAR01 09/04/2011 23:23:06 PAGE 6
294
295 void TIMER0_ROUTINE(void) interrupt 1
296 {
297 1 timer++;
298 1 TH0=0x4c; //周期50MS
299 1 TL0=0x00;
300 1 if(timer==180){timer=0;TR0=0;ET0=0;flag_stop=1;}
301 1 }
302 void ri_inter() interrupt 4 using 1
303 {
304 1 unsigned char key;
305 1 RI=0;
306 1 key=SBUF;
307 1 if(key==3) {flag_ok=1;flag_chaoche=0;flag_stop=0;}
308 1 if(key==2) {flag_start=1;}
309 1 }
310 void main()
311 {
312 1 TMOD=0x21;
313 1 SCON=0x50; //8 bit
314 1 TL1=0xfd; //9600
315 1 TH1=0xfd;
316 1 TR1=1;
317 1 ES=1;
318 1 EA=1;//
319 1 flag=0;
320 1 while(1)
321 1 {
322 2 if(flag_change==0){xunji_stop(); } //停车标志 等待 超车函数
323 2 if(flag_change==1){xunji_bizhang(); } // 在超车区壁障超车
324 2 switch(flag)
325 2 {
326 3 case 0:break;
327 3 case 1:stop();delay(2000); //开始停车时间
328 3 if(flag_change==0){send232byte(2);delay(50);}
329 3 go_along_right();delay(50);flag++;break;//1
330 3 case 2:break;
331 3 case 3:stop();delay(50);zhuanwan4();flag++;break;//2
332 3 case 4:break;
333 3 case 5:stop();delay(50);zhuanwan4();flag++;break;//3
334 3 case 6:break;
335 3 case 7:go_along();delay(100);zhuanwan3();flag++;break;//4
336 3 case 8:while(right!=1){go_along();}stop();delay(50);go_back();delay(40);turn_left();delay(40);
337 3 flag_chaoche=1;
338 3 if(flag_change==0){ TH0=0x4c;TL0=0x00;TR0=1;ET0=1;}
339 3 flag++;break;//
340 3 case 9:break;
341 3 case 10:flag_chaoche=0;flag_xunji_zhuan=0;stop();delay(50);zhuanwan3();flag++;break;//5
342 3 case 11:break;
343 3 case 12:stop();delay(1000);if(flag_change==1){send232byte(3);delay(50);}flag=2;flag_change=!flag_change;
-break;//6
344 3 default:while(1){stop();delay(50);}break;
345 3 }
346 2
347 2 }
348 1 }
349
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1606 ----
CONSTANT SIZE = ---- ----
C51 COMPILER V8.02 CAR01 09/04/2011 23:23:06 PAGE 7
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 ----
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 + -