📄 setbid.lst
字号:
530 1
531 1 //接收成功后应答
532 1 answer_data[0]=h_address;
533 1 answer_data[1]=l_address;
534 1 answer_data[2]=0xcc;
535 1 answer_data[3]=0xc1;
536 1 answer_data[4]=0xdf;
537 1 p=&answer_data[0];
538 1 check_temp=cal_crc(p,5);
539 1 answer_data[5]=(check_temp>>8); //crc
540 1 answer_data[6]=check_temp; //crc
541 1 answer_data[7]=0x7e;
542 1
543 1 for(i=0;i<8;i++){
544 2 for(j=0;j<8;j++){
545 3 add_bit=(answer_data[i]>>(7-j))%2;
546 3 add_transparences();
547 3 // if((add_transparence_valid==1) && (i!=17))data_final_number++;
548 3 tempdata=tempdata+(add_bit<<(7-data_final_number++));
549 3 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
550 4 if(data_final_number==8)beginbit=1;
551 4 else data_final_number++;
C51 COMPILER V6.02 SETBID 09/28/2006 21:46:50 PAGE 10
552 4 } ///////////////////////////////////
553 3 if(data_final_number>=8){ /////////////////////////////////
554 4 if(beginbit==1){ ////////////////////
555 5 data_final_number=1; ////////////////////////
556 5 beginbit=0; ////////////////////
557 5 }else{
558 5 data_final_number=0;
559 5 }
560 4 data_final[datanumber++]=tempdata; /////////////////////
561 4 tempdata=0;
562 4 }
563 3 }
564 2 }
565 1 if( data_final_number!=0)data_final[datanumber++]=tempdata;
566 1 EA=0;
567 1 SBUF=0X7E;
568 1 while(!TI);TI=0;
569 1 for(i=0;i<datanumber;i++)
570 1 {
571 2 SBUF=data_final[i];
572 2 while(!TI);TI=0;
573 2 }
574 1 EA=1;
575 1 tran_fpag(0x9f,9);
576 1 }
577 //设置日计划
578 set_datesch()
579 {
580 1 unsigned char *p;
581 1 unsigned short check_temp;
582 1 unsigned int i,k;
583 1 unsigned int j;
584 1 unsigned char beginbit=0;
585 1 data_final_number=0;
586 1 datanumber=0;
587 1 //设置
588 1 j=(checkdata[5]-1)*74;
589 1 for(i=0;i<74;i++){
590 2 XBYTE[0X63a2+i+j]=checkdata[5+i]; //一个方案表写入
591 2 k=eeprom_addr;
592 2 k=k+0x13a2+i+j;
593 2 XBYTE[k]=checkdata[5+i];
594 2 k=0;
595 2 do{k++;WatchDog = !WatchDog;}while(k<800);
596 2 }
597 1
598 1 //应答
599 1 answer_data[0]=h_address;
600 1 answer_data[1]=l_address;
601 1 answer_data[2]=0xcc;
602 1 answer_data[3]=0xc1;
603 1 answer_data[4]=0xd8;
604 1 p=&answer_data[0];
605 1 check_temp=cal_crc(p,5);
606 1 answer_data[5]=(check_temp>>8); //crc
607 1 answer_data[6]=check_temp; //crc
608 1 answer_data[7]=0x7e;
609 1 for(i=0;i<8;i++){
610 2 for(j=0;j<8;j++){
611 3 add_bit=(answer_data[i]>>(7-j))%2;
612 3 add_transparences();
613 3 tempdata=tempdata+(add_bit<<(7-data_final_number++));
C51 COMPILER V6.02 SETBID 09/28/2006 21:46:50 PAGE 11
614 3 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
615 4 if(data_final_number==8)beginbit=1;
616 4 else data_final_number++;
617 4 } ///////////////////////////////////
618 3 if(data_final_number>=8){ /////////////////////////////////
619 4 if(beginbit==1){ ////////////////////
620 5 data_final_number=1; ////////////////////////
621 5 beginbit=0; ////////////////////
622 5 }else{
623 5 data_final_number=0;
624 5 }
625 4 data_final[datanumber++]=tempdata; /////////////////////
626 4 tempdata=0;
627 4 }
628 3 }
629 2 }
630 1 if( data_final_number!=0)data_final[datanumber++]=tempdata;
631 1 EA=0;
632 1 SBUF=0X7E;
633 1 while(!TI);TI=0;
634 1 for(i=0;i<datanumber;i++)
635 1 {
636 2 SBUF=data_final[i];
637 2 while(!TI);TI=0;
638 2 }
639 1 EA=1;
640 1 tran_fpag(0x98,75);
641 1 }
642 //设置日计划调度表
643 set_datadis()
644 {
645 1 unsigned char *p;
646 1 unsigned short check_temp;
647 1 unsigned int i,k;
648 1 unsigned int j;
649 1 unsigned char beginbit=0;
650 1 data_final_number=0;
651 1 datanumber=0;
652 1 //设置日计划调度表
653 1
654 1 for(i=0;i<60;i++){
655 2 XBYTE[0X6ce2+i]=checkdata[5+i]; //一个日计划调度表写入
656 2 k=eeprom_addr;
657 2 k=k+0x1ce2+i;
658 2 XBYTE[k]=checkdata[5+i];
659 2 k=0;
660 2 do{k++;WatchDog = !WatchDog;}while(k<800);
661 2 }
662 1
663 1 //应答
664 1 answer_data[0]=h_address;
665 1 answer_data[1]=l_address;
666 1 answer_data[2]=0Xcc;
667 1 answer_data[3]=0XC1;
668 1 answer_data[4]=0XD9;
669 1 p=&answer_data[0];
670 1 check_temp=cal_crc(p,5);
671 1 answer_data[5]=(check_temp>>8); //crc
672 1 answer_data[6]=check_temp; //crc
673 1 answer_data[7]=0x7e;
674 1
675 1 for(i=0;i<8;i++){
C51 COMPILER V6.02 SETBID 09/28/2006 21:46:50 PAGE 12
676 2 for(j=0;j<8;j++){
677 3 add_bit=(answer_data[i]>>(7-j))%2;
678 3 add_transparences();
679 3 tempdata=tempdata+(add_bit<<(7-data_final_number++));
680 3 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
681 4 if(data_final_number==8)beginbit=1;
682 4 else data_final_number++;
683 4 } ///////////////////////////////////
684 3 if(data_final_number>=8){ /////////////////////////////////
685 4 if(beginbit==1){ ////////////////////
686 5 data_final_number=1; ////////////////////////
687 5 beginbit=0; ////////////////////
688 5 }else{
689 5 data_final_number=0;
690 5 data_final[datanumber++]=tempdata;
691 5 tempdata=0;
692 5 }
693 4 }
694 3 }
695 2 }
696 1 if( data_final_number!=0)data_final[datanumber++]=tempdata;
697 1 EA=0;
698 1 SBUF=0X7E;
699 1 while(!TI);TI=0;
700 1 for(i=0;i<datanumber;i++)
701 1 {
702 2 SBUF=data_final[i];
703 2 while(!TI);TI=0;
704 2 }
705 1 EA=1;
706 1 tran_fpag(0x99,61);
707 1 }
708 //设置当前控制方案
709 set_nowsch()
710 {
711 1 }
712 //设置统计周期
713 set_caperiod()
714 {
715 1 }
716 //查询信号机标志
717 bid_flag()
718 {
719 1 unsigned char *p=0;
720 1 unsigned short check_temp;
721 1 unsigned char i;
722 1 unsigned char j;
723 1 unsigned char beginbit=0;
724 1 data_final_number=0;
725 1 datanumber=0;
726 1
727 1 answer_data[0]=h_address;
728 1 answer_data[1]=l_address;
729 1 answer_data[2]=0xcc;
730 1 answer_data[3]=0xc1;
731 1 answer_data[4]=0xf1;
732 1
733 1 answer_data[5]=0x10;
734 1 answer_data[6]=0x20; //支持的最大阶段表数
735 1 answer_data[7]=0x20; //阶段表中最大阶段数
736 1 answer_data[8]=0x20; //最大控制方案数
737 1 answer_data[9]=0x20; //最大日计划数
C51 COMPILER V6.02 SETBID 09/28/2006 21:46:50 PAGE 13
738 1 answer_data[10]=0x18; //日计划中最大时段数
739 1 answer_data[11]=XBYTE[0X72e2]; //开机时间 小时
740 1 answer_data[12]=XBYTE[0X72e3]; //开机时间 分钟
741 1 answer_data[13]=XBYTE[0X72e4]; //关机时间 小时
742 1 answer_data[14]=XBYTE[0X72e5]; //关机时间 分钟
743 1 answer_data[15]=XBYTE[0X72e6]; //关机后状态
744 1 answer_data[16]=XBYTE[0X8000]; //路口编号高地址
745 1 answer_data[17]=XBYTE[0X8001]; //路口编号低位地址
746 1
747 1 //应答
748 1 // p=&answer_data[0];
749 1 check_temp=cal_crc(&answer_data[0],18);
750 1 answer_data[18]=(check_temp>>8); //crc
751 1 answer_data[19]=check_temp; //crc
752 1 answer_data[20]=0x7e;
753 1 tempdata=0;
754 1 for(i=0;i<21;i++)
755 1 {
756 2 for(j=0;j<8;j++)
757 2 {
758 3 add_bit=(answer_data[i]>>(7-j))%2;
759 3 add_transparences();
760 3 tempdata=tempdata+(add_bit<<(7-data_final_number++));
761 3 if((add_transparence_valid==1) && (i!=20))
762 3 {
763 4 if(data_final_number==8)beginbit=1;
764 4 else data_final_number++;
765 4 }
766 3 if(data_final_number>=8)
767 3 {
768 4 if(beginbit==1){
769 5 data_final_number=1;
770 5 beginbit=0;
771 5 }
772 4 else
773 4 data_final_number=0;
774 4 data_final[datanumber++]=tempdata;
775 4 tempdata=0;
776 4 }
777 3 }
778 2 }
779 1 if(data_final_number!=0)
780 1 {
781 2 data_final[datanumber++]=tempdata;
782 2 }
783 1 EA=0;
784 1 SBUF=0X7E;
785 1 while(!TI);TI=0;
786 1 for(i=0;i<datanumber;i++)
787 1 {
788 2 SBUF=data_final[i];
789 2 while(!TI);TI=0;
790 2 }
791 1 EA=1;
792 1 }
793 //查询信号机特征参数
794 bid_mark()
795 {
796 1 unsigned char *p;
797 1 unsigned short check_temp;
798 1 unsigned char i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -