📄 ir_america_recieve.lst
字号:
276 5 TF0 = 0;
277 5 goto judge_end;
278 5 }
279 4 }
280 3
281 3 }
282 2
283 2 // P1_6 = 1;
284 2 TR0 = 0;
285 2 TH0 = 0x00;
286 2 TL0 = 0x00;
287 2 TF0 = 0;
288 2 TR0 = 1;
289 2 while(!((P1_6 == 1) && (P1_7 == 1))) {} //if syn(PD1) = 0,then wait
290 2 TR0 = 0; //timer1 counter stop
291 2
292 2
293 2
294 2 //Get timer1 counter value
295 2 count_value_tmp = 0x00ff;
296 2 timer1_count_value = 0x00ff;
297 2 timer1_count_value &= TL0;
298 2 count_value_tmp &= TH0;
299 2 //count_value_tmp<<8;
300 2 timer1_count_value |= (count_value_tmp<<8);
301 2
302 2 if(((150 < timer1_count_value) && (timer1_count_value < 350)))
303 2 {
C51 COMPILER V6.23a IR_AMERICA_RECIEVE 04/29/2006 17:18:19 PAGE 6
304 3 one_two_pulse = 1;
305 3 state_pulse++;
306 3 if(state_pulse == 3)
307 3 {
308 4 goto judge_start;
309 4 }
310 3 }
311 2 else
312 2 {
313 3
314 3 state_pulse = 0;
315 3 }
316 2
317 2
318 2 if(beam_pulse_switch == 1)
319 2 {
320 3 if(TF1 == 1)
321 3 {
322 4 TF1 = 0;
323 4 one_two_timer++;
324 4 if(one_two_timer > one_two_timer_value)
325 4 {
326 5 one_two_timer_value = 5;
327 5
328 5
329 5 if(one_two_pulse == 0)
330 5 {
331 6 beam_pulse_switch = 1;
332 6 alarm = 1;
333 6 TR1 = 0;
334 6 TF1 = 0;
335 6 goto judge_end;
336 6 }
337 5 else
338 5 {
339 6 one_two_timer = 0;
340 6 one_two_pulse = 0;
341 6 beam_pulse_switch = 0;
342 6
343 6 }
344 5 }
345 4 }
346 3 }
347 2
348 2
349 2
350 2
351 2 }
352 1 while(1);
353 1 // test end
354 1 judge_start:do
355 1 {
356 2
357 2 TR0 = 0;
358 2 TH0 = 0x00;
359 2 TL0 = 0x00;
360 2 TF0 = 0;
361 2 TR0 = 1;
362 2 // P1_6 = 1;
363 2 while(!((P1_6 == 1) && (P1_7 == 1))) {}
364 2 while(!((P1_6 == 0) || (P1_7 == 0)))
365 2 {
C51 COMPILER V6.23a IR_AMERICA_RECIEVE 04/29/2006 17:18:19 PAGE 7
366 3 if(TF0 == 1)
367 3 {
368 4 TF0 = 0;
369 4 syn_timer++;
370 4 if(syn_timer == 2)
371 4 {
372 5 alarm = 1;
373 5 TR0 = 0;
374 5 TF0 = 0;
375 5 goto judge_end;
376 5 }
377 4 }
378 3 } //if syn(PD1) = 1,then wait
379 2 // P1_6 = 1;
380 2 TR0 = 0;
381 2 TH0 = 0x00;
382 2 TL0 = 0x00;
383 2 TF0 = 0;
384 2 TR0 = 1;
385 2 while(!((P1_6 == 1) && (P1_7 == 1))) {} //if syn(PD1) = 0,then wait
386 2 TR0 = 0; //timer1 counter stop
387 2 /* if(TF1 == 1)
388 2 {
389 2 TF1 = 0;
390 2 syn_timer++;
391 2 if(syn_timer == 2)
392 2 {
393 2 alarm = 1;
394 2 TR1 = 0;
395 2 TF1 = 0;
396 2 goto judge_end;
397 2 }
398 2 }*/
399 2
400 2
401 2
402 2 //Get timer1 counter value
403 2 count_value_tmp = 0x00ff;
404 2 timer1_count_value = 0x00ff;
405 2 timer1_count_value &= TL0;
406 2 count_value_tmp &= TH0;
407 2 //count_value_tmp<<8;
408 2 timer1_count_value |= (count_value_tmp<<8);
409 2
410 2 if(((2950 < timer1_count_value) && (timer1_count_value < 3150)))
411 2 {
412 3 beam_pulse_switch = 1;
413 3 delay_one_flag = 0;
414 3 goto judge_end;
415 3 }
416 2 else
417 2 {
418 3 goto state_channel;
419 3 }
420 2
421 2 }
422 1 //-----------------------------------
423 1 while(1); // 650us--750us
424 1
425 1 //
426 1 judge_end:TR1 = 0;
427 1 TR0 = 0; //timer1 counter stop
C51 COMPILER V6.23a IR_AMERICA_RECIEVE 04/29/2006 17:18:19 PAGE 8
428 1 }
429
430 void main(void)
431 {
432 1 uint count;
433 1 /*uchar a[2],x=0;
434 1 uint b[1],*p;
435 1 TH0 = 4;
436 1 TL0 = 5;
437 1 TMOD = 0x01;
438 1 //TR0 = 1; // ENABLE TIMER0 COUNTER
439 1 a[1] = TL0;
440 1 a[0] = TH0;
441 1 p = a;*/
442 1
443 1 TH0 = 0;
444 1 TL0 = 0;
445 1 TH1 = 0;
446 1 TL1 = 0;
447 1 TMOD = 0x11;
448 1 //EA = 1;
449 1 //ET1 = 1;
450 1
451 1 beam_num_tmp = (P3 & 0x18);
452 1 if(beam_num_tmp == 0x00)
453 1 beam_num = 3;
454 1 else if(beam_num_tmp == 0x08)
455 1 beam_num = 5;
456 1 else if(beam_num_tmp == 0x10)
457 1 beam_num = 7;
458 1 else if(beam_num_tmp == 0x18)
459 1 beam_num = 9;
460 1 while(1)
461 1 {
462 2 syn_judge();
463 2 //if(wave_flag == 0) goto alarm_place;
464 2 //for(count = 0;count<6720;count++) {} // 33.5ms
465 2
466 2 TH0 = 0xfc; //1ms
467 2 TL0 = 0x17;
468 2 TF0 = 0;
469 2 TR0 = 1;
470 2 while(TF0 == 0) {}
471 2 TR0 = 0;
472 2 TF0 = 0;
473 2
474 2 for(count = 0;count<13;count++) {}
475 2
476 2 recieve_fun();
477 2 recieve_flag_tmp = recieve_flag;
478 2 if(P3_2 == 0)
479 2 {
480 3 for(count = 0;count < beam_num;count++)
481 3 {
482 4 if((recieve_flag_tmp | double_alarm_flag[count]) == double_alarm_flag[count]) {alarm = 1;syn_alarm =
-3;}
483 4 }
484 3 }
485 2 else
486 2 {
487 3 if(beam_num == 3)
488 3 {
C51 COMPILER V6.23a IR_AMERICA_RECIEVE 04/29/2006 17:18:19 PAGE 9
489 4 if((recieve_flag_tmp & 0x03c0) != 0x03c0) {alarm = 1;syn_alarm = 2;} // 4
490 4 }
491 3 if(beam_num == 5)
492 3 {
493 4 if((recieve_flag_tmp & 0x03f0) != 0x03f0) {alarm = 1;syn_alarm = 2;} // 6
494 4 }
495 3 if(beam_num == 7)
496 3 {
497 4 if((recieve_flag_tmp & 0x03fc) != 0x03fc) {alarm = 1;syn_alarm = 2;} // 8
498 4 }
499 3 if(beam_num == 9)
500 3 {
501 4 if((recieve_flag_tmp & 0x03ff) != 0x03ff) {alarm = 1;syn_alarm = 2;} // 10
502 4 }
503 3 }
504 2
505 2 if(alarm == 1)
506 2 {
507 3
508 3 led_flash_switch = 1;
509 3 P3_0 = 0;
510 3 for(count = 0;count < 20;count++)//1s
511 3 {
512 4 TH0 = 0x3c; //50ms
513 4 TL0 = 0xaf;
514 4 TR0 = 1;
515 4 while(TF0 == 0) {}
516 4 TR0 = 0;
517 4 TF0 = 0;
518 4 }
519 3
520 3 P3_0 = 1;
521 3 for(count = 0;count < 10;count++)//0.5s
522 3 {
523 4 TH0 = 0x3c; //50ms
524 4 TL0 = 0xaf;
525 4 TR0 = 1;
526 4 while(TF0 == 0) {}
527 4 TR0 = 0;
528 4 TF0 = 0;
529 4 }
530 3 }
531 2
532 2
533 2 alarm = 0;
534 2 wave_flag = 1;
535 2 recieve_flag = 0;
536 2
537 2
538 2 // while(1) {}
539 2 }
540 1
541 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1065 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 31 ----
IDATA SIZE = ---- ----
C51 COMPILER V6.23a IR_AMERICA_RECIEVE 04/29/2006 17:18:19 PAGE 10
BIT SIZE = 6 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -