📄 interrupt.lst
字号:
150 2 }
151 1 else
152 1 {
153 2 s_Channel++;
154 2 }
155 1
156 1 T0_ENABLE;
157 1 }
158
159 void INT_0() interrupt 0 // 手工通断控制
160 {
161 1 INT_DISABLE;
162 1
163 1 if(g_State[0]==0x00) // 开始手工控制
164 1 {
165 2 g_Channel = 0;
166 2
167 2 ControlDisplay(0x0b00);
168 2 ControlDisplay(0x0900);
169 2 ControlDisplay(0x0800);
170 2
171 2 g_State[0] = 0xff;
172 2 }
173 1 else // 完成手工控制
174 1 {
175 2 if(g_Channel!=0)
176 2 {
177 3 if(g_State[g_Channel]==0x03)
178 3 {
179 4 if(g_Channel<9)
C51 COMPILER V8.02 INTERRUPT 08/03/2008 10:54:15 PAGE 4
180 4 {
181 5 Reconnect_1(g_Channel);
182 5 }
183 4 if((g_Channel>8) && (g_Channel<17))
184 4 {
185 5 Reconnect_2(g_Channel);
186 5 }
187 4 if(g_Channel>16)
188 4 {
189 5 Reconnect_3(g_Channel);
190 5 }
191 4
192 4 g_State[g_Channel] = 0x00;
193 4 }
194 3 else
195 3 {
196 4 if(g_Channel<9)
197 4 {
198 5 CutOff_1(g_Channel);
199 5 UpdateVoltage_1(g_Channel, 0x0000);
200 5 }
201 4 if((g_Channel>8) && (g_Channel<17))
202 4 {
203 5 CutOff_2(g_Channel);
204 5 UpdateVoltage_2(g_Channel, 0x0000);
205 5 }
206 4 if(g_Channel>16)
207 4 {
208 5 CutOff_3(g_Channel);
209 5 UpdateVoltage_3(g_Channel, 0x0000);
210 5 }
211 4
212 4 g_State[g_Channel] = 0x03;
213 4 }
214 3 }
215 2
216 2 ControlDisplay(0x0812);
217 2 ControlDisplay(0x0a12);
218 2 ControlDisplay(0x0b12);
219 2
220 2 g_State[0] = 0x00;
221 2 }
222 1
223 1 INT_ENABLE;
224 1 }
225
226 void INT_1() interrupt 2 // 选择手工控制的通道,并显示其当时状态
227 {
228 1 unsigned char Number1 ;
229 1 unsigned char Number2;
230 1 unsigned int Data;
231 1
232 1 INT_DISABLE;
233 1
234 1 if(g_State[0]==0xff)
235 1 {
236 2 if(g_Channel==21)
237 2 {
238 3 g_Channel = 0;
239 3 }
240 2 else
241 2 {
C51 COMPILER V8.02 INTERRUPT 08/03/2008 10:54:15 PAGE 5
242 3 g_Channel++;
243 3 }
244 2
245 2 if(g_Channel<10)
246 2 {
247 3 Number1 = 0;
248 3 Number2 = g_Channel;
249 3 }
250 2 else
251 2 {
252 3 if(g_Channel<20)
253 3 {
254 4 Number1 = 1;
255 4 Number2 = g_Channel - 10;
256 4 }
257 3 else
258 3 {
259 4 Number1 = 2;
260 4 Number2 = g_Channel - 20;
261 4 }
262 3 }
263 2
264 2 if(g_State[g_Channel]==0x00)
265 2 {
266 3 ControlDisplay(0x0b00);
267 3 }
268 2 if(g_State[g_Channel]==0x01)
269 2 {
270 3 ControlDisplay(0x0b17);
271 3 }
272 2 if(g_State[g_Channel]==0x02)
273 2 {
274 3 ControlDisplay(0x0b18);
275 3 }
276 2 if(g_State[g_Channel]==0x03)
277 2 {
278 3 ControlDisplay(0x0b12);
279 3 }
280 2
281 2 Data = 0x0900 | Number1;
282 2
283 2 ControlDisplay(Data);
284 2
285 2 Data = 0x0800 | Number2;
286 2
287 2 ControlDisplay(Data);
288 2 }
289 1
290 1 INT_ENABLE;
291 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1052 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 4
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 + -