📄 0820.lst
字号:
448 3 y--;
449 3 if(y==0)
450 3 {
451 4 flag=2;
452 4 }
453 3 }
454 2 if(flag==2)
455 2 {
456 3 zr--;cg--;
457 3 if(zr>cg)
458 3 {
459 4 if(cg==0)
460 4 {
461 5 if(zr>3)
462 5 {
463 6 // flag=2;
464 6 cg=zr;
465 6 y=4;
466 6 }
467 5 if(zr==3)
468 5 {
469 6 flag=3;
470 6 y=4;
471 6 }
472 5
473 5 }
474 4 }
475 3 if(zr<cg)
476 3 {
477 4 if(zr==0)
478 4 {
479 5 if(cg>3)
480 5 {
481 6 // flag=2;
482 6 zr=cg;
483 6 y=4;
484 6 }
485 5 if(cg==3)
486 5 {
487 6 flag=3;
488 6 y=4;
489 6 }
C51 COMPILER V8.02 0820 08/21/2008 01:50:51 PAGE 9
490 5 }
491 4 }
492 3 if(zr==cg)
493 3 {
494 4 flag=2;
495 4 if(zr==0)
496 4 {
497 5 flag=3;
498 5 }
499 4 }
500 3
501 3 }
502 2 if(flag==3)
503 2 {
504 3 y--;
505 3 if(y==0)
506 3 {
507 4 flag=0;
508 4 zr=23;zg=30;cr=33;cg=20;
509 4 }
510 3 }
511 2
512 2 }
513 1
514 1 if(key1num!=0)
515 1 {
516 2 if(key1num==1)
517 2 {
518 3 if(flag==0)
519 3 {
520 4 displayz(zg);
521 4 }
522 3 if(flag==2)
523 3 {
524 4 displayz(cg);
525 4 }
526 3 }
527 2 if(key1num==2)
528 2 {
529 3 if(flag==0)
530 3 {
531 4 displayc(cr);
532 4 }
533 3 if(flag==2)
534 3 {
535 4 displayc(zr);
536 4 }
537 3 }
538 2 }
539 1 if(key1num==0)
540 1 {
541 2 if(flag==0)
542 2 {
543 3 P0=0xdd;//红灯
544 3 display(zg,cr);
545 3 }
546 2 if(flag==1)
547 2 {
548 3 P0=0xd4;
549 3 displayy(y);
550 3 }
551 2 if(flag==2)
C51 COMPILER V8.02 0820 08/21/2008 01:50:51 PAGE 10
552 2 {
553 3 P0=0xeb;
554 3 display(cg,zr);
555 3 }
556 2 if(flag==3)
557 2 {
558 3 P0=0xe2;//黄灯
559 3 displayy(y);
560 3 }
561 2
562 2 }
563 1
564 1 }
565 void serPort()
566 {
567 1 if(countser==1)
568 1 {
569 2 ES=0;
570 2 countser=0;
571 2 SBUF=a;
572 2 while(!TI);
573 2 TI=0;
574 2 ES=1;
575 2
576 2
577 2
578 2 if(a==0x11)
579 2 {
580 3 flagSer=1; //标志位
581 3 TR0=0; //停止计数器
582 3 }
583 2 if(a==0xff)
584 2 {
585 3 TR0=1; //标志位
586 3 flagSer=0; //启动
587 3 key1num=0;
588 3 }
589 2 if(flagSer==1)
590 2 {
591 3 if(a==0x01)
592 3 {
593 4 key1num=1;
594 4 dyflagSer=1;
595 4 a=0;
596 4 }
597 3 if(a==0x02)
598 3 {
599 4 key1num=2;
600 4 dyflagSer=2;
601 4 a=0;
602 4 }
603 3 if(dyflagSer==1)
604 3 {
605 4 if(flag==0)
606 4 {
607 5 zg=SBUF;
608 5 }
609 4 if(flag==2)
610 4 {
611 5 cg=SBUF;
612 5 }
613 4 }
C51 COMPILER V8.02 0820 08/21/2008 01:50:51 PAGE 11
614 3 if(dyflagSer==2)
615 3 {
616 4 if(flag==0)
617 4 {
618 5 cr=SBUF;
619 5 }
620 4 if(flag==2)
621 4 {
622 5 zr=SBUF;
623 5 }
624 4 }
625 3 }
626 2 }
627 1
628 1 }
629
630 void main() //程序主函数
631 {
632 1
633 1 init(); //初始化程序
634 1 while(1)
635 1 {
636 2 keyscan();
637 2 shuanfa();
638 2 serPort();
639 2
640 2 }
641 1 }
642 void t0(void ) interrupt 1 //定时器T0 中断计时用
643 {
644 1 TH0=(65535-50000)/256;
645 1 TL0=(65535-50000)%256;
646 1 count++;
647 1 }
648 ////////////////////////////////////////////
649 //串口通信////////////////
650 //发送0x00,数码管停止,发送0xff,计时起动///
651 //发送0x01,设置主通道的时间//////////
652 //发送0x02 设置次通道的时间////////
653 void ser() interrupt 4
654 {
655 1 RI=0;
656 1 // P1=SBUF;
657 1 a=SBUF;
658 1 countser=1;
659 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1064 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -