📄 progm.lst
字号:
426 1 for(i=0;i<3;i++) //电流数字转换打印内码
427 1 daiTmpBuf[i]=UiBuffer[i]|0x30;
C51 COMPILER V7.06 PROGM 03/05/2009 08:55:15 PAGE 8
428 1 daiTmpBuf[4]=UiBuffer[3]|0x30;
429 1
430 1 switch(dian_bit)
431 1 {
432 2 case 0:
433 2 daRTmpBuf[0]=UiBuffer[4]|0x30;
434 2 daRTmpBuf[1]=UiBuffer[5]|0x30;
435 2 daRTmpBuf[2]=UiBuffer[6]|0x30;
436 2 daRTmpBuf[3]=UiBuffer[7]|0x30;
437 2 daRTmpBuf[4]=0x20;
438 2 break;
439 2 case 1:
440 2 daRTmpBuf[0]=UiBuffer[4]|0x30;
441 2 daRTmpBuf[1]=UiBuffer[5]|0x30;
442 2 daRTmpBuf[2]=UiBuffer[6]|0x30;
443 2 daRTmpBuf[3]=0x2e;
444 2 daRTmpBuf[4]=UiBuffer[7]|0x30;
445 2 break;
446 2 case 2:
447 2 daRTmpBuf[0]=UiBuffer[4]|0x30;
448 2 daRTmpBuf[1]=UiBuffer[5]|0x30;
449 2 daRTmpBuf[2]=0x2e;
450 2 daRTmpBuf[3]=UiBuffer[6]|0x30;
451 2 daRTmpBuf[4]=UiBuffer[7]|0x30;
452 2 break;
453 2 case 3:
454 2 daRTmpBuf[0]=UiBuffer[4]|0x30;
455 2 daRTmpBuf[1]=0x2e;
456 2 daRTmpBuf[2]=UiBuffer[5]|0x30;
457 2 daRTmpBuf[3]=UiBuffer[6]|0x30;
458 2 daRTmpBuf[4]=UiBuffer[7]|0x30;
459 2 break;
460 2 }
461 1 }
462
463 /*************串口发送子函数***********/
464 sprint(unsigned char a)
465 {
466 1 while(BUSY);
467 1 SBUF=a;
468 1 while(!TI);
469 1 TI=0;
470 1 }
471
472 void dayin()
473 {
474 1
475 1 int i;
476 1 TH1 = 0xfd;//波特率9600
477 1 TL1 = 0xfd;
478 1 TMOD = 0x20 ;
479 1 SCON = 0x40;//串行口方式1,10位数据,1位起始,8位数据,1位停止
480 1 TR1= 1;
481 1 ES = 1;
482 1 TI = 0;
483 1
484 1 sprint(0x1b);sprint(0x40);//初始化打印机
485 1 sprint(0x1b);sprint(0x63);sprint(0x00);//反向打印
486 1 sprint(0x1b);sprint(0x6c);sprint(0x0);//设定左限,居中
487 1 sprint(0x1b);sprint(0x38);sprint(0x04);//选择汉字
488 1 //打印“测试结果”
489 1 sprint(0x1b);sprint(0x6c);sprint(0x03);//设定左限,居中
C51 COMPILER V7.06 PROGM 03/05/2009 08:55:15 PAGE 9
490 1 for(i=0;i<8;i++)
491 1 sprint(ch1[i]);
492 1 sprint(0x0d); //回车
493 1 sprint(0x1b);sprint(0x36);sprint(0x00);//选择字符集1
494 1 sprint(0x1b);sprint(0x6c);sprint(0x00);//设定左限,居左
495 1 for(i=0;i<16;i++)
496 1 sprint(0x2d);//打印“*********”
497 1 sprint(0x0d); //回车
498 1 sprint(0x52);sprint(0x3d);//R=
499 1 for(i=0;i<7;i++) //打印电阻数值
500 1
501 1 //打印电压数值
502 1 for(i=0;i<7;i++) //打印电压数值
503 1 sprint(daRTmpBuf[i]);
504 1 sprint(0x0d); //回车
505 1 sprint(0x49);sprint(0x3d);//I=
506 1 for(i=0;i<6;i++) //打印电流数值
507 1 sprint(daiTmpBuf[i]);
508 1 sprint(0x0d); //回车
509 1 //打印“**********”
510 1 for(i=0;i<16;i++)
511 1 sprint(0x2d);//打印“*************”
512 1 sprint(0x0d); //回车
513 1 sprint(0x1b);sprint(0x38);sprint(0x04);//选择汉字
514 1 //打印“测试员:”
515 1 for(i=0;i<5;i++) //打印“系统:”
516 1 sprint(ch4[i]);
517 1 sprint(0x0d); //回车
518 1
519 1 sprint(0x1b);
520 1 sprint(0x66);
521 1 sprint(0x01);
522 1 sprint(0x01);
523 1 sprint(0x0d); //回车
524 1 }
525 void print()//打印结果
526 {
527 1 daima();
528 1 dayin();
529 1 }
530
531 void test()
532 {
533 1 uchar i,cishu;
534 1 uchar tmpe;
535 1 START=1;
536 1 SELC=1;
537 1 SELC=1;
538 1 SELC=1;
539 1 lcd_init();
540 1 disanping();//显示正在测试中,请稍候。。。
541 1 FM=1;
542 1 SELC=0;
543 1 delay1ms(255);
544 1 delay1ms(255);
545 1 FM=0;
546 1 delay1ms(255);
547 1 delay1ms(255);
548 1 delay1ms(255);
549 1
550 1 cedianliu();//测试电路回路,功能:用于故障判断
551 1 liangcheng();//选择电压回路的量程
C51 COMPILER V7.06 PROGM 03/05/2009 08:55:15 PAGE 10
552 1 for(i=0;i<10;i++)
553 1 {
554 2 for(cishu=0;cishu<1;cishu++)
555 2 {
556 3 FM=1;
557 3 cedianliu();//测试电路回路,功能:用于故障判断
558 3 ceshidianzu();//交替测试电流和电压回路,并计算电阻值
559 3 //delay1ms(20);
560 3 FM=0;
561 3 delay1ms(255);
562 3 delay1ms(255);
563 3 }
564 2 tmpe=120-i*8;
565 2 df(2,tmpe,23,0);
566 2 }
567 1 SELC=1; //关闭恒流源
568 1 FM=1;
569 1 delay1ms(255);
570 1 delay1ms(255);
571 1 FM=0;
572 1 showceshijieguo();//测试结束,结果显示
573 1 while(1)
574 1 {
575 2 if(namekey()== 6)
576 2 print();
577 2 }
578 1
579 1 }
580
581 void xianshi_xiao()//显示校正
582 {
583 1 lcd_init();
584 1 dh(0,16,7,0); //电流:1.0000
585 1 dh(0,32,20,0);
586 1 df(0,56,17,0);
587 1 df(0,64,xiaozhen[0],1);
588 1 df(0,72,21,0);
589 1 df(0,80,xiaozhen[1],0);
590 1 df(0,88,xiaozhen[2],0);
591 1 df(0,96,xiaozhen[3],0);
592 1 df(0,104,xiaozhen[4],0);
593 1
594 1 dh(2,16,7,0); //电阻1:1.0000
595 1 dh(2,32,8,0);
596 1 df(2,48,1,0);
597 1 df(2,56,17,0);
598 1 df(2,64,xiaozhen[5],0);
599 1 df(2,72,21,0);
600 1 df(2,80,xiaozhen[6],0);
601 1 df(2,88,xiaozhen[7],0);
602 1 df(2,96,xiaozhen[8],0);
603 1 df(2,104,xiaozhen[9],0);
604 1
605 1 dh(4,16,7,0); //电阻2:1.0000
606 1 dh(4,32,8,0);
607 1 df(4,48,2,0);
608 1 df(4,56,17,0);
609 1 df(4,64,xiaozhen[10],0);
610 1 df(4,72,21,0);
611 1 df(4,80,xiaozhen[11],0);
612 1 df(4,88,xiaozhen[12],0);
613 1 df(4,96,xiaozhen[13],0);
C51 COMPILER V7.06 PROGM 03/05/2009 08:55:15 PAGE 11
614 1 df(4,104,xiaozhen[14],0);
615 1
616 1 dh(6,16,7,0); //电阻3:1.0000
617 1 dh(6,32,8,0);
618 1 df(6,48,3,0);
619 1 df(6,56,17,0);
620 1 df(6,64,xiaozhen[15],0);
621 1 df(6,72,21,0);
622 1 df(6,80,xiaozhen[16],0);
623 1 df(6,88,xiaozhen[17],0);
624 1 df(6,96,xiaozhen[18],0);
625 1 df(6,104,xiaozhen[19],0);
626 1
627 1 }
628
629 void chuandi()//将电压电流误差系数传入内存
630 {
631 1 AT24C64_R(xiaozhen,0,20);//电压电流误差系数已预先存入24c64的首20个字节里
632 1 DIANLIUXIAO=xiaozhen[0]+xiaozhen[1]*0.1+xiaozhen[2]*0.01+xiaozhen[3]*0.001+xiaozhen[4]*0.0001;
633 1 DIANZUXIAO1=xiaozhen[5]+xiaozhen[6]*0.1+xiaozhen[7]*0.01+xiaozhen[8]*0.001+xiaozhen[9]*0.0001;
634 1 DIANZUXIAO2=xiaozhen[10]+xiaozhen[11]*0.1+xiaozhen[12]*0.01+xiaozhen[13]*0.001+xiaozhen[14]*0.0001;
635 1 DIANZUXIAO3=xiaozhen[15]+xiaozhen[16]*0.1+xiaozhen[17]*0.01+xiaozhen[18]*0.001+xiaozhen[19]*0.0001;
636 1 }
637
638 uchar code Ymp[20]={64,80,88,96,104,64,80,88,96,104,64,80,88,96,104,64,80,88,96,104}; //调试参数设置界面
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -