📄 second.lst
字号:
612 3 trans_volum(); //周期更迭时传送流量信息
613 3 tran_psh(); //周期更迭时传送方案信息
614 3 EA=1;
615 3 }
616 2 }
617 1
618 1
619 1
620 1 }
621 /*****************************************************************************************************/
622 // 灯输出函数
623 /*****************************************************************************************************/
624 void lamp_out() using 1
625 {
626 1 uchar xdata i;
627 1 uchar xdata left;
628 1
629 1 greenl=0;
630 1 greenh=0;
631 1 yell=0;
632 1 yelh=0;
633 1 redl=0;
634 1 redh=0;
635 1
636 1 for(i=0;i<8;i++)
637 1 {
638 2 left=0x01;
639 2 left=left<<i;
640 2 switch(lamp_state[i])
641 2 {
642 3 case 0x01: //绿灯
643 3 greenl=(greenl|left);
644 3 break;
645 3 case 0x02: //绿闪
646 3 if(ssecond) greenl=(greenl|left);
647 3 else greenl=(greenl&(~left));
648 3 break;
649 3 case 0x03: //黄灯
650 3 yell=(yell|left);
651 3 break;
652 3 case 0x04: //红灯
653 3 redl=(redl|left);
654 3 break;
655 3 case 0x05: //黄闪
656 3 if(ssecond) yell=(yell|left);
657 3 else yell=(yell&(~left));
658 3 break;
659 3 default:break;
660 3 }
661 2 switch(lamp_state[i+8])
662 2 {
663 3 case 0x01:
664 3 greenh=(greenh|left);
C51 COMPILER V6.02 SECOND 08/02/2006 15:11:10 PAGE 12
665 3 break;
666 3 case 0x02:
667 3 if(ssecond) greenh=(greenh|left);
668 3 else greenh=(greenh&(~left));
669 3 break;
670 3 case 0x03:
671 3 yelh=(yelh|left);
672 3 break;
673 3 case 0x04:
674 3 redh=(redh|left);
675 3 break;
676 3 case 0x05:
677 3 if(ssecond) yelh=(yelh|left);
678 3 else yelh=(yelh&(~left));
679 3 break;
680 3 default:break;
681 3 }
682 2
683 2 }
684 1
685 1 // XBYTE[0Xc103]=0x80;
686 1 // XBYTE[0Xc183]=0x80;
687 1 XBYTE[0Xc100]=greenl;
688 1 XBYTE[0Xc101]=yell;
689 1 XBYTE[0Xc102]=redl;
690 1 XBYTE[0Xc180]=greenh;
691 1 XBYTE[0Xc181]=yelh;
692 1 XBYTE[0Xc182]=redh;
693 1 }
694 /*****************************************************************************************************/
695 // 装载状态函数
696 /*****************************************************************************************************/
697 void make0x83()
698 {
699 1
700 1 led82[0] = now_day_planid; //当前计划
701 1 led82[1] = timeid; //时段
702 1 led82[2] = now_schemeid; //当前方案
703 1
704 1 led83[0] = now_step_schid/*+1*/; //当前的阶段表号
705 1 led83[1] = step_counter+1; //当前阶段
706 1
707 1 led83[4] = now_phase_status/256;
708 1 led83[5] = now_phase_status%256; //当前的相位状态
709 1
710 1
711 1 led83[9] = inuse_phasen[step_counter]/256;
712 1 led83[10] = inuse_phasen[step_counter]%256; //下一阶段的放行相位
713 1
714 1
715 1 led83[11] = now_step_uncount; //当前阶段的倒计时
716 1 led83[12] = machine_run_error; //运行故障信息
717 1 led83[13] = r_error1/256;
718 1 led83[14] = r_error1%256; /*驱而不亮的红灯组*/
719 1 led83[15] = y_error1/256;
720 1 led83[16] = y_error1%256; /*驱而不亮的黄灯组*/
721 1 led83[17] = g_error1/256;
722 1 led83[18] = g_error1%256; /*驱而不亮的绿灯组*/
723 1
724 1 led83[19] = r_error2/256;
725 1 led83[20] = r_error2%256; /*不驱而亮的红灯组*/
726 1 led83[21] = y_error2/256;
C51 COMPILER V6.02 SECOND 08/02/2006 15:11:10 PAGE 13
727 1 led83[22] = y_error2%256; /*不驱而亮的黄灯组*/
728 1 led83[23] = g_error2/256;
729 1 led83[24] = g_error2%256; /*不驱而亮的绿灯组*/
730 1
731 1 led83[25] = hpp/256;
732 1 led83[26] = hpp%256;
733 1 led83[27] = lpp/256;
734 1 led83[28] = lpp%256; //线圈故障信息
735 1
736 1 }
737
738
739 /*****************************************************************************************************/
740 // 半秒中断
741 /*****************************************************************************************************/
742 void secondint() interrupt 2 using 1
743 {
744 1 uchar i;
745 1 i = D12887C;
746 1 FarContrlLed = !FarContrlLed;
747 1 //WatchDog = !WatchDog;
748 1 ssecond = !ssecond;
749 1 if(ssecond)
750 1 {
751 2 force_flag=XBYTE[0X6d28]; /*读取强制标志*/
752 2 force_number=XBYTE[0x6d29]; //强制相位号
753 2 tran_count++; /*发送测试包的计数器*/
754 2 start_counter++;
755 2 if(start_counter>20) start_counter=20;
756 2 if(start_counter<=3) /*开机黄闪*/
757 2 {
758 3 for(i=0;i<16;i++)
759 3 {
760 4 lamp_state[i]=5;
761 4 }
762 3 }
763 2 else if((start_counter>3) && (start_counter<6)) /*开机全红*/
764 2 {
765 3 for(i=0;i<16;i++)
766 3 {
767 4 lamp_state[i]=4;
768 4 }
769 3 }
770 2 else if(start_counter==6)
771 2 period_update=1; /*开机黄闪全红后,更改周期更迭标志*/
772 2 else if(start_counter>=7)
773 2 {
774 3
775 3 remote_deal() ; //遥控处理函数
776 3 man_deal(); //手动控制处理程序
777 3 max_clear_time();
778 3 search_color(); // key++;
779 3 make0x83();
780 3
781 3 }
782 2
783 2 }
784 1 //强制解除操作
785 1 // hand_control(); //手动控制
786 1 if((now_schemeid==0x21)&&(start_counter>=3)){
787 2 for(i=0;i<16;i++)
788 2 {
C51 COMPILER V6.02 SECOND 08/02/2006 15:11:10 PAGE 14
789 3 lamp_state[i]=5;
790 3 }
791 2 }
792 1
793 1 re_ye_allred(); //遥控黄闪,四面红
794 1 lamp_out(); //灯色输出
795 1 IP=0X10;
796 1 }
797
C51 COMPILER V6.02 SECOND 08/02/2006 15:11:10 PAGE 15
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
timeid . . . . . . . . . . . . . . . . EXTERN XDATA U_CHAR ----- 1
force_number . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0000H 1
greenl . . . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0001H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
hand_counter . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0002H 1
sensor_counter . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0003H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
force_coloc. . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0004H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
clear_flag . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0005H 1
remote_deal. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
inuse_phasen . . . . . . . . . . . . . EXTERN XDATA ARRAY ----- 64
baseaddr_now_schemesch . . . . . . . . EXTERN XDATA U_INT ----- 2
forceacting. . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0006H 1
force_flag . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0007H 1
clear_state. . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0008H 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -