⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 progm.lst

📁 这是测量接触电阻的程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -