📄 cm160128.lst
字号:
265 1 PR11();
266 1 }
267 void PR11() /* 单字节参数指令写入入口 */
268 {
269 1 ST01();
270 1 d_add=dat2; /* 取第二参数单元数据 */
271 1 PR12();
272 1 }
273 void PR12() /* 无参数指令写入入口 */
274 {
275 1 ST01();
276 1 c_add=com; /* 写入指令代码 */
277 1 }
278 /************************************************/
279 /* 判状态位S1,S0 函数(读写指令和读写数据状态) */
280 /************************************************/
281 void ST01()
282 {
283 1 do
284 1 {
285 2 ACC=c_add;
286 2 }
287 1 while(Acc_0==0,Acc_1==0);
288 1 }
289
290 /************************************/
291 /* 判状态位S3函数(数据自动写状态) */
292 /************************************/
293 void ST3()
294 {
295 1 do
296 1 {
297 2 ACC=c_add;
298 2 }
299 1 while(Acc_3==0);
300 1 }
301
302 void DISHAZIT(uchar x,uchar y,uchar d) /*汉字写入(图文方式)*/
303 {
C51 COMPILER V7.06 CM160128 03/08/2008 16:45:23 PAGE 6
304 1 code_1=d;
305 1 O_X=x;
306 1 O_Y=y;
307 1 CCW2_PR();
308 1 }
309 void DISHAZIT2(uchar x,uchar y,uchar d) /*汉字写入(图文方式)*/
310 {
311 1 code_1=d;
312 1 O_X=x;
313 1 O_Y=y;
314 1 CCW3_PR();
315 1 }
316
317 void DISDASC(uchar x,uchar y,uchar d) //汉字写入(文本方式)
318 {
319 1 code_1=d;
320 1 O_X=x;
321 1 O_Y=y;
322 1 CCWD_PR();
323 1 }
324 //显示欢迎界面
325 void ShowWelcome(void) /*汉字写入(图文方式)*/
326 {
327 1 code_1=0;
328 1 O_X=0;
329 1 O_Y=0;
330 1 CCW4_PR();
331 1 }
332 //显示"仪器正在预热"
333 void ShowHeat(void)
334 {
335 1 DISHAZIT(2,8*7,0x0e);
336 1 DISHAZIT(4,8*7,0x0f);
337 1 DISHAZIT(6,8*7,0x10);
338 1 DISHAZIT(8,8*7,0x11);
339 1 DISHAZIT(10,8*7,0x12);
340 1 DISHAZIT(12,8*7,0x13);
341 1 }
342 //显示"采样时间"
343 void ShowSample(void)
344 {
345 1 DISHAZIT(1,8*9,0x00);
346 1 DISHAZIT(3,8*9,0x01);
347 1 DISHAZIT(5,8*9,0x02);
348 1 DISHAZIT(7,8*9,0x03);
349 1 DISHAZIT(9,8*9,0x04);
350 1 }
351 //显示"放大倍数"
352 void ShowEXG(void)
353 {
354 1 DISHAZIT(1,8*11,0x07);
355 1 DISHAZIT(3,8*11,0x08);
356 1 DISHAZIT(5,8*11,0x09);
357 1 DISHAZIT(7,8*11,0x0a);
358 1 DISHAZIT(9,8*11,0x04);
359 1 }
360 //显示"负高压"
361 void ShowMIN(void)
362 {
363 1 DISHAZIT(1,8*13,0x0b);
364 1 DISHAZIT(4,8*13,0x0c);
365 1 DISHAZIT(7,8*13,0x0d);
C51 COMPILER V7.06 CM160128 03/08/2008 16:45:23 PAGE 7
366 1 DISHAZIT(9,8*13,0x04);
367 1 }
368 //显示采样数据
369 void DispSampleVoltage(int unintData)
370 {
371 1 unintData = (0x0800 - unintData)*1.2207;//
372 1
373 1 switch(ucMW2)
374 1 {
375 2 case 1://放大倍数为1
376 2 case 0x09:
377 2
378 2 STR6[0] = 0x0a;
379 2 if(unintData > 0)
380 2 {
381 3 STR6[1] = 0x0a;
382 3 }
383 2 else if(unintData < 0)
384 2 {
385 3 STR6[1] = 0x0c;
386 3 }
387 2 else
388 2 {
389 3 STR6[1] = 0x0a;
390 3 }
391 2
392 2 unintData = abs(unintData);
393 2 STR6[5] = unintData%10;
394 2 unintData /= 10;
395 2 STR6[4] = unintData%10;
396 2 unintData /= 10;
397 2 STR6[3] = unintData%10;
398 2 unintData /= 10;
399 2 STR6[2] = unintData%10;
400 2 break;
401 2 case 2://放大倍数为4
402 2 case 0x0a:
403 2 unintData /= 4;
404 2 STR6[0] = 0x0a;
405 2 STR6[1] = 0x0a;
406 2 if(unintData > 0)
407 2 {
408 3 STR6[2] = 0x0a;
409 3 }
410 2 else if(unintData < 0)
411 2 {
412 3 STR6[2] = 0x0c;
413 3 }
414 2 else
415 2 {
416 3 STR6[2] = 0x0a;
417 3 }
418 2
419 2 unintData = abs(unintData);
420 2 STR6[5] = unintData%10;
421 2 unintData /= 10;
422 2 STR6[4] = unintData%10;
423 2 unintData /= 10;
424 2 STR6[3] = unintData%10;
425 2 break;
426 2 case 3://一位小数点//放大倍数为16
427 2 case 0x0b:
C51 COMPILER V7.06 CM160128 03/08/2008 16:45:23 PAGE 8
428 2 unintData *= 10;
429 2 unintData /= 16;
430 2
431 2 if(unintData > 0)
432 2 {
433 3 STR6[0] = 0x0a;
434 3 }
435 2 else if(unintData < 0)
436 2 {
437 3 STR6[0] = 0x0c;
438 3 }
439 2 else
440 2 {
441 3 STR6[0] = 0x0a;
442 3 }
443 2 unintData = abs(unintData);
444 2 STR6[5] = unintData%10;
445 2 unintData /= 10;
446 2 STR6[4] = 0x0b;
447 2 STR6[3] = unintData%10;
448 2 unintData /= 10;
449 2 STR6[2] = unintData%10;
450 2 unintData /= 10;
451 2 STR6[1] = unintData%10;
452 2 break;
453 2 case 4://两位小数点//放大倍数为64
454 2 case 0x0c:
455 2 //unintData /= 16;
456 2 unintData *= 1.5625;
457 2
458 2 if(unintData > 0)
459 2 {
460 3 STR6[0] = 0x0a;
461 3 }
462 2 else if(unintData < 0)
463 2 {
464 3 STR6[0] = 0x0c;
465 3 }
466 2 else
467 2 {
468 3 STR6[0] = 0x0a;
469 3 }
470 2 unintData = abs(unintData);
471 2 STR6[5] = unintData%10;
472 2 unintData /= 10;
473 2 STR6[4] = unintData%10;
474 2 unintData /= 10;
475 2 STR6[3] = 0x0b;
476 2 STR6[2] = unintData%10;
477 2 unintData /= 10;
478 2 STR6[1] = unintData%10;
479 2 break;
480 2 default:
481 2 break;
482 2 }
483 1 DISHAZIT2(0,0x10,STR6[0]);
484 1 DISHAZIT2(3,0x10,STR6[1]);
485 1 DISHAZIT2(6,0x10,STR6[2]);
486 1 DISHAZIT2(9,0x10,STR6[3]);
487 1 DISHAZIT2(12,0x10,STR6[4]);
488 1 DISHAZIT2(15,0x10,STR6[5]);
489 1 }
C51 COMPILER V7.06 CM160128 03/08/2008 16:45:23 PAGE 9
490 //显示采样时间值
491 void DispSampleTime(unsigned char ucData)
492 {
493 1 unsigned char data ucTime = 0;
494 1 ucData = ucData & 0x0f;
495 1
496 1 if(ucData == 0x01)
497 1 {
498 2 ucTime = 1;
499 2 }
500 1 else if(ucData == 0x02)
501 1 {
502 2 ucTime = 2;
503 2 }
504 1 else if(ucData == 0x03)
505 1 {
506 2 ucTime = 25;
507 2 }
508 1 else if(ucData == 0x04)
509 1 {
510 2 ucTime = 50;
511 2 }
512 1 else if(ucData == 0x05)
513 1 {
514 2 ucTime = 100;
515 2 }
516 1 else if(ucData == 0x06)
517 1 {
518 2 ucTime = 200;
519 2 }
520 1
521 1 DISDASC(0x0e,0x09,0x80+(ucTime%10)*2);
522 1 ucTime /= 10;
523 1 DISDASC(0x0c,0x09,0xa2);
524 1 DISDASC(0x0d,0x09,0x80+(ucTime%10)*2);
525 1 ucTime /= 10;
526 1 DISDASC(0x0b,0x09,0x80+(ucTime%10)*2);
527 1 DISDASC(0x0f,0x09,0xa0);
528 1 }
529 //显示示放大倍数值
530 void DispAmpMultiple(unsigned char ucAmpMW)
531 {
532 1 if(ucAmpMW > 0x07)
533 1 {
534 2 DISHAZIT(17,8*9,0x06);
535 2 }
536 1 else
537 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -