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

📄 functions.lst

📁 开发的一个温控仪完整代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 224   2              }
 225   1              LedBuf[0]=LedCode[i];
 226   1      
 227   1              i=0;
 228   1              while(dat>=100)
 229   1              {
 230   2                      dat-=100;
 231   2                      i+=1;
 232   2              }
 233   1              LedBuf[1]=LedCode[i];
 234   1      
 235   1              i=0;
 236   1              while(dat>=10)
 237   1              {
 238   2                      dat-=10;
 239   2                      i+=1;
 240   2              }
 241   1              LedBuf[2]=LedCode[i];
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 5   

 242   1      
 243   1              LedBuf[3]=LedCode[dat];
 244   1      }
 245          
 246          void LedL(unsigned int dat)
 247          {
 248   1              char i=0;
 249   1              
 250   1              while(dat>=10000)
 251   1                      dat-=10000;
 252   1              while(dat>=1000)
 253   1              {
 254   2                      dat-=1000;
 255   2                      i+=1;
 256   2              }
 257   1              LedBuf[4]=LedCode[i];
 258   1      
 259   1              i=0;
 260   1              while(dat>=100)
 261   1              {
 262   2                      dat-=100;
 263   2                      i+=1;
 264   2              }
 265   1              LedBuf[5]=LedCode[i];
 266   1      
 267   1              i=0;
 268   1              while(dat>=10)
 269   1              {
 270   2                      dat-=10;
 271   2                      i+=1;
 272   2              }
 273   1              LedBuf[6]=LedCode[i];
 274   1      
 275   1              LedBuf[7]=LedCode[dat];
 276   1      }
 277          
 278          void Led(unsigned int dat)//调试使用
 279          {
 280   1              
 281   1              char i=0;
 282   1              while(dat>=10000)
 283   1              {
 284   2                      dat-=10000;
 285   2                      i++;
 286   2              }
 287   1              LedH(i);
 288   1              
 289   1              //dat%=10000;
 290   1              LedL(dat);
 291   1      }
 292          
 293          
 294          
 295          void ShowInputTemp()
 296          {
 297   1              if(AdmitFlag==1)
 298   1                      return;
 299   1              if((MeterSta!=STA_Sr)&&(PassWordLock==1))
 300   1                      return;
 301   1      
 302   1              LedH(InputTemp);
 303   1      
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 6   

 304   1              switch(MeterSta)//加个小数点
 305   1              {
 306   2                      //case STA_Sr://1
 307   2                      case STA_AUTO:
 308   2                      case STA_Sv://          2
 309   2                      case STA_SH://          3
 310   2                      case STA_SL://          4
 311   2                      //case STA_oH://                5
 312   2                      //case STA_oL://                6
 313   2                      //case STA_P://         7
 314   2                      //case STA_I://         8
 315   2                      //case STA_d://         9
 316   2                      //case STA_db://                10
 317   2                      //case STA_Fd://                11//Fun只在上述循环
 318   2                              DPA();
 319   2                              break;
 320   2                      case STA_oL://
 321   2                      case STA_P://           7
 322   2                      case STA_I://           8
 323   2                      case STA_d://           9
 324   2                              LedBuf[1]+=128;
 325   2                              break;
 326   2                      default:
 327   2                              ;
 328   2              }
 329   1      }
 330          
 331          void FunSwitch()
 332          {
 333   1              MeterSta++;
 334   1              if(MeterSta>=13)//不包含13
 335   1              {
 336   2                      MeterSta=0;
 337   2                      MAN_OFF();
 338   2              }
 339   1              AdmitFlag=0;
 340   1              switch(MeterSta)
 341   1              {//此处仅存储和显示即可,更新InputTemp,DataTemp
 342   2                      case 0://STA_AUTO
 343   2                              //存储
 344   2                              if(DataTemp!=InputTemp)
 345   2                              {//功能键处理=========
 346   3                                      k0=Read(EP_Fd);
 347   3                                      switch(k0)
 348   3                                      {
 349   4                                              case 0:
 350   4                                                      if(InputTemp!=0)
 351   4                                                      switch(InputTemp)
 352   4                                                      {//单次功能实现
 353   5                                                              case 5555:
 354   5                                                                      Write(  EP_FT,  0xffff);
 355   5                                                                      break;
 356   5                                                              case 1000:
 357   5                                                              case 2000:
 358   5                                                              case 2001:
 359   5                                                                      FFSta=InputTemp;
 360   5                                                                      break;
 361   5                                                      }
 362   4                                                      break;
 363   4                                              case 1://升温下线
 364   4                                                      if(InputTemp>LineB)
 365   4                                                      {
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 7   

 366   5                                                              Write(EP_FF1,InputTemp);
 367   5                                                              LineA=InputTemp;
 368   5                                                      }
 369   4                                                      break;
 370   4                                              case 2://
 371   4                                                      if((InputTemp<LineA)&&(InputTemp>LineC))
 372   4                                                      {
 373   5                                                              Write(EP_FF2,InputTemp);
 374   5                                                              LineB=InputTemp;
 375   5                                                      }
 376   4                                                      break;
 377   4                                              case 3://
 378   4                                                      if((InputTemp<LineB)&&(InputTemp>0))
 379   4                                                      {
 380   5                                                              Write(EP_FF3,InputTemp);
 381   5                                                              LineC=InputTemp;
 382   5                                                      }
 383   4                                                      break;
 384   4                                              case 4://
 385   4                                                      if(InputTemp>LineC)
 386   4                                                      {
 387   5                                                              Write(EP_FF4,InputTemp);
 388   5                                                              LineD=InputTemp;
 389   5                                                      }
 390   4                                                      break;
 391   4                                              default:
 392   4                                                      break;
 393   4                                      }
 394   3                              }
 395   2                      
 396   2                              
 397   2                              //更新
 398   2                              LedH(Temperature);
 399   2                              DPA();
 400   2                              DataTemp=Read(EP_Sv);
 401   2                              InputTemp=DataTemp;
 402   2                              InputLimit=5001; //400.0 degree is upper limit
 403   2                              LedL(DataTemp);
 404   2                              DPB();
 405   2                              if(AdmitFlag==0)
 406   2                                      AdmitFlag=1;//允许上排数据更新
 407   2                              break;
 408   2                      case 1://Sr 密码
 409   2                              //存储:不需
 410   2                              //更新
 411   2                              LedBuf[4]=LedCode[C_S];
 412   2                              LedBuf[5]=LedCode[C_r];
 413   2                              MieDown();                              
 414   2                              //更新
 415   2                              DataTemp=Read(EP_Sr);
 416   2                              LedH(DataTemp);
 417   2                              InputTemp=DataTemp;                             
 418   2                              InputLimit=10000;
 419   2                              break;
 420   2                      case 2://Sv 设定值
 421   2                              //存储  
 422   2                              if(InputTemp!=DataTemp)
 423   2                              {//
 424   3                                      PassWordLock=0;
 425   3                                      Write(EP_Sr,InputTemp);                         
 426   3                              }
 427   2                              if(InputTemp==2000)
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 8   

 428   2                                      PassWordLock=0;//开锁
 429   2                              else
 430   2                                      PassWordLock=1;
 431   2                              
 432   2                              //更新
 433   2                              LedBuf[4]=LedCode[C_S];
 434   2                              LedBuf[5]=LedCode[C_v];
 435   2                              MieDown();                              
 436   2                              DataTemp=Read(EP_Sv);
 437   2                              InputTemp=DataTemp;
 438   2                              InputLimit=5001;///most 400.0 degree
 439   2                              LedH(DataTemp);
 440   2                              DPA();
 441   2                              break;
 442   2                      case 3://SH     上限
 443   2                              if(DataTemp!=InputTemp)
 444   2                              {
 445   3                                      Setted_Temperature=InputTemp;
 446   3                                      Write(EP_Sv,InputTemp);
 447   3                              }
 448   2                              //更新
 449   2                              LedBuf[4]=LedCode[C_S];
 450   2                              LedBuf[5]=LedCode[C_H];
 451   2                              MieDown();                              
 452   2                              DataTemp=Read(EP_SH);
 453   2                              InputTemp=DataTemp;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -