📄 searchsch.lst
字号:
C51 COMPILER V6.02 SEARCHSCH 08/02/2006 14:44:14 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE SEARCHSCH
OBJECT MODULE PLACED IN D:\GB_ASC\SEARCHSCH.OBJ
COMPILER INVOKED BY: e:\comp51\COMP51V6\C51.EXE D:\GB_ASC\SEARCHSCH.C DB SB OE LARGE
stmt level source
1 #include <searchsch.h>
2
3 /*****************************************************************************************************/
4 // 查找日计划号
5 /*****************************************************************************************************/
6 uchar search_day_plan()
7 {
8 1 uchar i,j,id;
9 1 for(i=0; i<10; i++)
10 1 {
11 2 j = 6*i;
12 2 if((XBYTE[0X6CE2+j]!=0) && (XBYTE[0X6CE3+j]!=0) && (XBYTE[0X6CE4+j]!=0) && (XBYTE[0X6CE5+j]!=0))
13 2 {
14 3 if(now_month>XBYTE[0X6CE2+j])
15 3 {
16 4 if(now_month<XBYTE[0X6CE4+j])
17 4 {
18 5 id = XBYTE[0X6CE7+j];
19 5 return (id);
20 5 }
21 4 else if((now_month==XBYTE[0X6CE4+j]) && (now_date<=XBYTE[0X6CE5+j]))
22 4 {
23 5 id = XBYTE[0X6CE7+j];
24 5 return (id);
25 5 }
26 4 }
27 3 else if((now_month==XBYTE[0X6CE2+j]) && (now_date>=XBYTE[0X6CE3+j]))
28 3 {
29 4 if(now_month<XBYTE[0X6CE4+j])
30 4 {
31 5 id = XBYTE[0X6CE7+j];
32 5 return (id);
33 5 }
34 4 else if((now_month==XBYTE[0X6CE4+j]) && (now_date<=XBYTE[0X6CE5+j]))
35 4 {
36 5 id = XBYTE[0X6CE7+j];
37 5 return (id);
38 5 }
39 4
40 4 }
41 3 }
42 2 }
43 1 for(i=0; i<10; i++)
44 1 {
45 2 j = 6*i;
46 2 if(now_day==XBYTE[0X6CE6+j])
47 2 {
48 3 id = XBYTE[0X6CE7+j];
49 3 return (id);
50 3 }
51 2 }
52 1
53 1 return 0;
54 1 }
55 /*****************************************************************************************************/
C51 COMPILER V6.02 SEARCHSCH 08/02/2006 14:44:14 PAGE 2
56 // 查找方案号
57 /*****************************************************************************************************/
58 uint timecounter,timecountern;
59 uint addr_temp;
60 uchar search_scheme()
61 {
62 1 uchar i,j,id;
63 1 //uint timecounter,timecountern;
64 1 //uint addr_temp;
65 1 uchar state_flag=1;
66 1 addr_temp = 0x63a4+74*(now_day_planid-1); //当前日计划表基地址
67 1 for(i=0; i<24; i++)
68 1 {
69 2 j = i*3;
70 2 timecounter = XBYTE[addr_temp+j]*60+XBYTE[addr_temp+1+j];
71 2 timecountern= XBYTE[addr_temp+j+3]*60+XBYTE[addr_temp+4+j];
72 2 if(timecountern!=0)
73 2 {
74 3 if(timecounter<timecountern)
75 3 {
76 4 if((now_time>=timecounter) && (now_time<timecountern))
77 4 {
78 5 state_flag=0;
79 5 timeid = i+1;
80 5 id = XBYTE[addr_temp+2+j];
81 5 return (id);
82 5 }
83 4 }
84 3 else if(timecounter>timecountern)
85 3 {
86 4 if((now_time>=timecounter) || (now_time<timecountern))
87 4 {
88 5 state_flag=0;
89 5 timeid = i+1;
90 5 id = XBYTE[addr_temp+2+j];
91 5 return (id);
92 5 }
93 4 }
94 3 }
95 2 else
96 2 {
97 3 //if(now_time>=timecounter)
98 3 if(state_flag==1)
99 3 {
100 4 timeid = i+1;
101 4 id = XBYTE[addr_temp+2+j];
102 4 return (id);
103 4 }
104 3 }
105 2 }
106 1 last_timeid=timeid;
107 1 return 0 ;
108 1 }
109 uchar search_scheme_yellow()
110 {
111 1 uchar i,j,id;
112 1 uint timecounter,timecountern;
113 1 uint addr_temp;
114 1 uchar state_flag=1;
115 1 addr_temp = 0x63a4+74*(now_day_planid-1); //当前日计划表基地址
116 1 for(i=0; i<24; i++)
117 1 {
C51 COMPILER V6.02 SEARCHSCH 08/02/2006 14:44:14 PAGE 3
118 2 j = i*3;
119 2 timecounter = XBYTE[addr_temp+j]*60+XBYTE[addr_temp+1+j];
120 2 timecountern= XBYTE[addr_temp+j+3]*60+XBYTE[addr_temp+4+j];
121 2 if(timecountern!=0)
122 2 {
123 3 if(timecounter<timecountern)
124 3 {
125 4 if((now_time>=timecounter) && (now_time<timecountern))
126 4 {
127 5 state_flag=0;
128 5 timeid = i+1;
129 5 id = XBYTE[addr_temp+2+j];
130 5 return (id);
131 5 }
132 4 }
133 3 else if(timecounter>timecountern)
134 3 {
135 4 if((now_time>=timecounter) || (now_time<timecountern))
136 4 {
137 5 state_flag=0;
138 5 timeid = i+1;
139 5 id = XBYTE[addr_temp+2+j];
140 5 return (id);
141 5 }
142 4 }
143 3 }
144 2 else
145 2 {
146 3 //if(now_time>=timecounter)
147 3 if(state_flag==1)
148 3 {
149 4 timeid = i+1;
150 4 id = XBYTE[addr_temp+2+j];
151 4 return (id);
152 4 }
153 3 }
154 2 }
155 1 last_timeid=timeid;
156 1 return 0 ;
157 1 }
158
159 /*****************************************************************************************************/
160 // 查找方案
161 /*****************************************************************************************************/
162 void search_sch()
163 {
164 1 uchar i,j,k;
165 1 uint toto;
166 1 uint phasek;
167 1
168 1 //fuctioncounter++;
169 1 // if(fuctioncounter==2)
170 1 // fuctioncounter = 0;
171 1 now_day_planid = search_day_plan(); //查找日计划表号
172 1
173 1 if(now_day_planid==0)
174 1 {
175 2 now_day_planid=0;
176 2 }
177 1 else if(now_day_planid<=32)
178 1 {
179 2 now_schemeid = search_scheme(); //查找方案号
C51 COMPILER V6.02 SEARCHSCH 08/02/2006 14:44:14 PAGE 4
180 2 // if(loop_error_flag==1)now_schemeid=32; //如果当前相位全部检测器都出现故障,降级为
-方案32
181 2 baseaddr_now_schemesch = 0x5E83+41*(now_schemeid-1);
182 2 now_step_schid = XBYTE[baseaddr_now_schemesch]; //当前阶段表号
183 2 step_num = XBYTE[0x5243+(now_step_schid-1)*98];
184 2 XBYTE[baseaddr_now_schemesch+1]=step_num; //当前阶段数
185 2
186 2 baseaddr_now_stepsch = 0x5243+98*(now_step_schid-1);
187 2 now_phase_schid = XBYTE[baseaddr_now_stepsch+3]; //当前相位表号
188 2 if(now_phase_schid==0)
189 2 {
190 3 baseaddr_now_phasesch = 0x5001;
191 3 }
192 2 else if(now_phase_schid==1)
193 2 {
194 3 baseaddr_now_phasesch = 0x5122;
195 3 }
196 2
197 2 for(i=0; i<step_num; i++) //lq //感应阶段标志置成0先
198 2 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -