📄 main.lst
字号:
220 1 {
221 2 Alarm = 11;
222 2 Show_Alarm_prompt(); //显示报警内容
223 2 }
224 1 Current_Current=(unsigned int)d;
225 1 ShowCurrent(1,(unsigned int)d,0);
226 1
227 1 d = ADC[1]; //显示即时电压
228 1 d*=Voltage_Measuring_Range;
229 1 d*=100;
230 1 d = d/ADC1_coefficients;
231 1 if(d > Voltage_Upper_Bound) //过压报警
232 1 {
233 2 Alarm = 12;
234 2 Show_Alarm_prompt(); //显示报警内容
235 2 }
236 1 Current_Voltage = (unsigned int)d;
237 1 ShowVoltage(1,(unsigned int)d,0);
238 1
239 1 d = ADC[2]; //网电电压
240 1 d*=Supply_Voltage_Measuring_Range;
241 1
C51 COMPILER V7.06 MAIN 06/30/2000 09:45:23 PAGE 5
242 1 if(Supply_Voltage_Measuring_Range > 10000)
243 1 {
244 2 d*=10;
245 2 d = d/(ADC2_coefficients/10);
246 2 }
247 1 else
248 1 {
249 2 d*=100;
250 2 d = d / ADC2_coefficients;
251 2 }
252 1 if(d > Supply_Voltage_Upper_Bound) //网电电压高报警
253 1 {
254 2 Alarm = 13;
255 2 Show_Alarm_prompt(); //显示报警内容
256 2 }
257 1 if(d < Supply_Voltage_Lower_Bound) //网电电压低报警
258 1 {
259 2 Alarm = 14;
260 2 Show_Alarm_prompt(); //显示报警内容
261 2 }
262 1 if(d > 99999) d = 99999;
263 1 Current_Support_Voltage = d;
264 1 for(i = 9;i < 13;i++) ShowChar(4,i,' ');
265 1 if(d/10000) ShowChar(4,9,d/10000+0x30);
266 1 if(d/1000) ShowChar(4,10,d%10000/1000+0x30);
267 1 if(d/100) ShowChar(4,11,d%1000/100+0x30);
268 1 if(d/10) ShowChar(4,12,d%100/10+0x30);
269 1 ShowChar(4,13,d%10+0x30);
270 1
271 1 if(ADC[3] > ADC3_start_coefficients) d = ADC[3]-ADC3_start_coefficients;
272 1 else d = 0;
273 1 d*=20520;
274 1 d/=ADC3_coefficients;
275 1 if(d > 180) d = 180;
276 1 dtj = d;
277 1 for(i = 25;i < 27;i++) ShowChar(0,i,' ');
278 1 if(d/100) ShowChar(0,25,d/100+0x30);
279 1 if(d/10) ShowChar(0,26,d%100/10+0x30);
280 1 ShowChar(0,27,d%10+0x30);
281 1 }
282
283 //给定显示
284 void Show_Preset(void)
285 {
286 1 if(Voltage_Set_value>Voltage_Measuring_Range) Voltage_Set_value=Voltage_Measuring_Range;
287 1 if(Current_Set_value>Current_Measuring_Range) Current_Set_value=Current_Measuring_Range;
288 1 if(Loop_state==0) //开环
289 1 {
290 2 ShowCurrent(0,65535,0);
291 2 ShowVoltage(0,65535,0);
292 2 }
293 1 else if(Loop_mode==1)
294 1 {
295 2 ShowCurrent(0,65535,0);
296 2 ShowVoltage(0,Voltage_Set_value,0);
297 2 }
298 1 else
299 1 {
300 2 ShowCurrent(0,Current_Set_value,0);
301 2 ShowVoltage(0,65535,0);
302 2 }
303 1 }
C51 COMPILER V7.06 MAIN 06/30/2000 09:45:23 PAGE 6
304
305 //给定
306 //s=1,直接给定
307 //s=0,软给定
308 void Preset(unsigned char s)
309 {
310 1 unsigned int i;
311 1 unsigned long temp;
312 1
313 1 feeddog();
314 1 if(system_staus == 0) //停止状态
315 1 {
316 2 Set_DAC(1,0); //0给定
317 2 return;
318 2 }
319 1 if(Loop_mode == 1) //稳压
320 1 {
321 2 if(s == 0)
322 2 {
323 3 for(i = 0;i < Voltage_Set_value;i+=10) //电压软设置,步进10V
324 3 {
325 4 temp=i;
326 4 temp*=Voltage_Preset_coefficients; //20326
327 4 temp/=10;
328 4 temp/=Voltage_Measuring_Range;
329 4 Set_DAC(1,(unsigned int)temp);
330 4 delay(300);
331 4 }
332 3 }
333 2 temp=Voltage_Set_value;
334 2 temp*=Voltage_Preset_coefficients;
335 2 temp/=10;
336 2 temp/=Voltage_Measuring_Range;
337 2 Set_DAC(1,(unsigned int)temp);
338 2
339 2 }
340 1 else //稳流
341 1 {
342 2 if(s==0)
343 2 {
344 3 for(i=0;i<Current_Set_value;i+=100) //电流软设置,步进100A
345 3 {
346 4 temp=i;
347 4 temp*=Current_Preset_coefficients; //20326
348 4 temp/=10;
349 4 temp/=Current_Measuring_Range;
350 4 Set_DAC(1,(unsigned int)temp);
351 4 delay(300);
352 4 }
353 3
354 3 }
355 2 temp=Current_Set_value;
356 2 temp*=Current_Preset_coefficients;
357 2 temp/=10;
358 2 temp/=Current_Measuring_Range;
359 2 Set_DAC(1,(unsigned int)temp);
360 2 }
361 1 }
362
363 //显示状态页
364 void Show_1_page(void)
365 {
C51 COMPILER V7.06 MAIN 06/30/2000 09:45:23 PAGE 7
366 1 ClearScreen();
367 1 ShowLine(0,0,"状态: 导通角: 0°");
368 1 ShowLine(4,0,"网电压: V 变压器: ℃");
369 1 ShowLine(5,0,"排 温: ℃ 水 温: ℃");
370 1 ShowLine(6,0,"系统状态: ");
371 1 ShowLine(7,0,"20 年 月 日 : : ");
372 1
373 1 Show_Alarm_prompt();
374 1
375 1 ShowHZ24(0,16,0); //电
376 1 ShowHZ24(24,16,2); //流
377 1 ShowHZ24(144,16,0); //电
378 1 ShowHZ24(168,16,1); //压
379 1 ShowHZ24(0,40,3); //给
380 1 ShowHZ24(24,40,4); //定
381 1 ShowHZ24(144,40,3); //给
382 1 ShowHZ24(168,40,4); //定
383 1
384 1 if(system_staus==1) ShowLine(0,12,"运行");
385 1 else ShowLine(0,12,"停止");
386 1 }
387
388 //显示生成商标识
389 //80*80点阵图形
390 void Show_logo(void)
391 {
392 1 unsigned char i,j;
393 1 unsigned int StartAddr;
394 1
395 1 StartAddr = 482;
396 1
397 1 LCM_CE = 0;
398 1 for(i = 0;i < 80;i++)
399 1 {
400 2 OutPortCom3((unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24);
401 2 for(j = 0;j < 10;j++)
402 2 {
403 3 OutPortCom2(pic[i][j], 0xc0);
404 3 }
405 2 StartAddr = StartAddr + ColumnChar;
406 2 }
407 1 LCM_CE = 1;
408 1 }
409
410 void Output_control(void)
411 {
412 1 if(Loop_state==0) //开环
413 1 {
414 2 Set_Relay(16,0);
415 2 Set_Relay(15,0);
416 2 Set_Relay(14,0);
417 2 Set_Relay(1,0);
418 2 ShowLine(0,6,"开环");
419 2 }
420 1 else if(Loop_mode==1) //闭环稳压
421 1 {
422 2 Set_Relay(16,1);
423 2 Set_Relay(15,1);
424 2 Set_Relay(14,0);
425 2 Set_Relay(1,0);
426 2 ShowLine(0,6,"稳压");
427 2 }
C51 COMPILER V7.06 MAIN 06/30/2000 09:45:23 PAGE 8
428 1 else //闭环稳流
429 1 {
430 2 Set_Relay(16,1);
431 2 Set_Relay(15,0);
432 2 Set_Relay(14,1);
433 2 Set_Relay(1,1);
434 2 ShowLine(0,6,"稳流");
435 2 }
436 1 Show_Preset(); //显示给定值
437 1 Preset(0); //给定
438 1 }
439
440 //读取系统设置
441 void Read_system_set(void)
442 {
443 1 unsigned char i;
444 1
445 1 Loop_mode=byte_read(0x8000); //系统
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -