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

📄 functions.lst

📁 开发的一个温控仪完整代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 454   2                              InputLimit=5001;//
 455   2                              LedH(DataTemp);
 456   2                              DPA();
 457   2                              break;
 458   2                      case 4://SL     下限
 459   2                              if(DataTemp!=InputTemp)
 460   2                              {
 461   3                                      Write(EP_SH,InputTemp);
 462   3                                      UpperLimit=Read(EP_SH);
 463   3                              }
 464   2                              //更新
 465   2                              LedBuf[4]=LedCode[C_S];
 466   2                              LedBuf[5]=LedCode[C_L];
 467   2                              MieDown();                              
 468   2                              DataTemp=Read(EP_SL);
 469   2                              InputTemp=DataTemp;
 470   2                              InputLimit=5001;//99%
 471   2                              LedH(DataTemp);
 472   2                              DPA();
 473   2                              break;
 474   2                      case 5://oH     开度上
 475   2                              if(DataTemp!=InputTemp)
 476   2                              {
 477   3                                      Write(EP_SL,InputTemp);
 478   3                                      LowerLimit=Read(EP_SL);
 479   3                              }
 480   2                              //更新
 481   2                              LedBuf[4]=LedCode[C_o];
 482   2                              LedBuf[5]=LedCode[C_H];
 483   2                              MieDown();                              
 484   2      
 485   2                              DataTemp=Read(EP_oH);
 486   2                              InputTemp=DataTemp;
 487   2                              InputLimit=101;//最大值加1
 488   2                              LedH(DataTemp);
 489   2                              break;
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 9   

 490   2                      case 6://oL     开度下
 491   2                              if(DataTemp!=InputTemp)
 492   2                              {
 493   3                                      Write(EP_oH,InputTemp);
 494   3                                      //更新PID系数
 495   3                                      UpdatePid();
 496   3                              }
 497   2                              //更新
 498   2                              LedBuf[4]=LedCode[C_o];
 499   2                              LedBuf[5]=LedCode[C_L];
 500   2                              MieDown();                              
 501   2      
 502   2                              DataTemp=Read(EP_oL);
 503   2                              InputTemp=DataTemp;
 504   2                              InputLimit=100;//99
 505   2                              LedH(DataTemp);
 506   2                              LedBuf[1]+=128;
 507   2                              break;
 508   2                      case 7://P
 509   2                              if(DataTemp!=InputTemp)
 510   2                              {
 511   3                                      Write(EP_oL,InputTemp);
 512   3                                      //更新输出下限
 513   3                                      MinOutputLimit=MinOutputLimit;
 514   3                              }
 515   2                              //更新
 516   2                              LedBuf[4]=LedCode[C_P];
 517   2                              LedBuf[5]=LedCode[C_Mie];
 518   2                              MieDown();                              
 519   2      
 520   2                              DataTemp=Read(EP_P);
 521   2                              InputTemp=DataTemp;
 522   2                              InputLimit=10000;
 523   2                              LedH(DataTemp);
 524   2                              LedBuf[1]+=128;
 525   2                              break;
 526   2                      case 8://I
 527   2                              if(DataTemp!=InputTemp)
 528   2                              {
 529   3                                      Write(EP_P,InputTemp);
 530   3                                      UpdatePid();
 531   3                              }
 532   2                              //更新
 533   2                              LedBuf[4]=LedCode[C_I];
 534   2                              LedBuf[5]=LedCode[C_Mie];
 535   2                              MieDown();                              
 536   2      
 537   2                              DataTemp=Read(EP_I);
 538   2                              InputTemp=DataTemp;
 539   2                              InputLimit=10000;
 540   2                              LedH(DataTemp);
 541   2                              LedBuf[1]+=128;
 542   2                              break;
 543   2                      case 9://d
 544   2                              if(DataTemp!=InputTemp)
 545   2                              {
 546   3                                      if(InputTemp!=0)
 547   3                                              Write(EP_I,InputTemp);
 548   3                                      UpdatePid();
 549   3                              }
 550   2                              //更新
 551   2                              LedBuf[4]=LedCode[C_d];
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 10  

 552   2                              LedBuf[5]=LedCode[C_Mie];
 553   2                              MieDown();                              
 554   2      
 555   2                              DataTemp=Read(EP_d);
 556   2                              InputTemp=DataTemp;
 557   2                              InputLimit=10000;
 558   2                              LedH(DataTemp);
 559   2                              LedBuf[1]+=128;
 560   2                              break;
 561   2                      case 10://db 闸位死区
 562   2                              if(DataTemp!=InputTemp)
 563   2                              {
 564   3                                      Write(EP_d,InputTemp);
 565   3                                      UpdatePid();
 566   3                              }
 567   2                              //更新
 568   2                              LedBuf[4]=LedCode[C_d];
 569   2                              LedBuf[5]=LedCode[C_b];
 570   2                              MieDown();                              
 571   2      
 572   2                              DataTemp=Read(EP_db);
 573   2                              InputTemp=DataTemp;
 574   2                              InputLimit=100;//99
 575   2                              LedH(DataTemp);
 576   2                              break;
 577   2                      case 11://Fd
 578   2                              if(DataTemp!=InputTemp)
 579   2                              {
 580   3                                      Write(EP_db,InputTemp);
 581   3                                      DeathZone=InputTemp;
 582   3                              }
 583   2                              //更新
 584   2                              LedBuf[4]=LedCode[C_F];
 585   2                              LedBuf[5]=LedCode[C_d];
 586   2                              MieDown();                              
 587   2      
 588   2                              DataTemp=0;//Read(EP_Fd);
 589   2                              InputTemp=DataTemp;
 590   2                              InputLimit=100;//0~99
 591   2                              LedH(DataTemp);
 592   2                              break;
 593   2                      case 12://FF 功能键
 594   2                              Write(EP_Fd,InputTemp);
 595   2                              //更新
 596   2      
 597   2                              LedL(InputTemp);
 598   2                              LedBuf[4]=LedCode[C_F];
 599   2                              LedBuf[5]=LedCode[C_F];
 600   2                              //MieDown();                    
 601   2                              switch(InputTemp)
 602   2                              {
 603   3                                      case 0:
 604   3                                              InputLimit=10000;
 605   3                                              break;
 606   3                                      case 1://升温下线
 607   3                                              DataTemp=Read(EP_FF1);
 608   3                                      //      InputTemp=DataTemp;
 609   3                                              InputLimit=10000;//9999
 610   3                                              break;
 611   3                                      case 2://Pid区
 612   3                                              DataTemp=Read(EP_FF2);
 613   3                                              
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 11  

 614   3                                              InputLimit=10000;//9999
 615   3                                              break;
 616   3                                      case 3://降温上线
 617   3                                              DataTemp=Read(EP_FF3);
 618   3                                      //      InputTemp=DataTemp;
 619   3                                              InputLimit=10000;//9999
 620   3                                              break;
 621   3                                      case 4://
 622   3                                              DataTemp=Read(EP_FF4);
 623   3                                              //InputTemp=DataTemp;
 624   3                                              InputLimit=10000;//9999
 625   3                                      default:
 626   3                                              ;
 627   3                              }
 628   2                              
 629   2                              LedH(DataTemp);
 630   2                              InputTemp=DataTemp;
 631   2                              break;
 632   2                      default:
 633   2                              MeterSta=0;
 634   2                      }
 635   1      }
 636          
 637          void UpdatePid()
 638          {
 639   1              k0=Read(EP_P);
 640   1              fK1=k0/100.0;//Kp
 641   1              k0=Read(EP_I);
 642   1              fK2=k0/100.0;//Ki
 643   1              k0=Read(EP_d);
 644   1              fK3=k0/100.0;//Kd
 645   1      }
 646          
 647          void UpdateFrZero()
 648          {
 649   1              k0=Read(EP_FrMin);
 650   1              if(k0 & 0x8000)
 651   1              {
 652   2                      k0=k0 & 0x7fff;
 653   2                      FrZero=-k0;
 654   2              }
 655   1              else
 656   1                      FrZero=k0;
 657   1              k0=Read(EP_FrMax);
 658   1              if(k0 & 0x8000)
 659   1              {
 660   2                      k0=k0 & 0x7fff;
 661   2                      FrZero=FrZero-k0;
 662   2              }
 663   1              else
 664   1                      FrZero=FrZero+k0;
 665   1      
 666   1              FrZero=FrZero/2;
 667   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2715    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 12  

   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 + -