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

📄 zdjjc.lst

📁 织带机产量检测系统的监测终端。RS-485总线
💻 LST
📖 第 1 页 / 共 4 页
字号:
 298   1              Delay (100, 350);
 299   1              
 300   1              if (!RstStatus)
 301   1              {
 302   2                  //显示时分秒
 303   2                  displayBuf[5] = SEVEN_BLK1[TimeBuf[0] & 0x0F];
C51 COMPILER V7.50   ZDJJC                                                                 02/27/2006 21:10:46 PAGE 6   

 304   2                  displayBuf[4] = SEVEN_BLK1[(TimeBuf[0]>>4) & 0x0F];
 305   2                  displayBuf[3] = SEVEN_BLK1[TimeBuf[1] & 0x0F];
 306   2                  displayBuf[2] = SEVEN_BLK1[(TimeBuf[1]>>4) & 0x0F];
 307   2                  displayBuf[1] = SEVEN_BLK1[TimeBuf[2] & 0x0F];
 308   2                  displayBuf[0] = SEVEN_BLK1[(TimeBuf[2]>>4) & 0x0F];
 309   2                      
 310   2                  LocateGroupIndex (TimeBuf[6], TimeBuf[4], TimeBuf[3], TimeBuf[2] ,TimeBuf[1]); //在此确定班号
 311   2      
 312   2                  Delay (100, 350);
 313   2              }         
 314   1              EX1 = TRUE;      //开始脉冲记数
 315   1      }
 316          
 317          void IntToLED (uint uData, uchar uPos, bit bIsDot)        //数据转换到LED
 318          {
 319   1           uchar i; 
 320   1               for (i=uPos; i>0; i--)
 321   1               {
 322   2                    displayBuf[i] = SEVEN_BLK1[uData % 10];
 323   2                    uData /= 10;
 324   2           }
 325   1      
 326   1           //对高位0消影
 327   1           while (++i < uPos)
 328   1               {
 329   2                              if (displayBuf[i] == SEVEN_BLK1[0]) 
 330   2                              {
 331   3                                  displayBuf[i] = 0x00;  
 332   3                              }
 333   2                              else break;       
 334   2               }
 335   1               if (bIsDot)
 336   1                   displayBuf[4] |= 0x80;
 337   1      }
 338          
 339          
 340          void KBSendData (word data595)
 341          {
 342   1          uchar data  i;
 343   1              word data mid;
 344   1          _nop_ ();
 345   1          _nop_ ();
 346   1          _nop_ ();
 347   1          _nop_ ();
 348   1          _nop_ ();
 349   1          _nop_ ();
 350   1          for (i=0; i<16; i++)
 351   1          {
 352   2                      mid = 0x8000 >> i;
 353   2              if (data595 & mid)
 354   2                  DAT_595 = HIGH;
 355   2              else
 356   2                  DAT_595 = LOW;
 357   2              _nop_ ();
 358   2              _nop_ ();
 359   2              _nop_ ();
 360   2                      _nop_ ();
 361   2              _nop_ ();
 362   2              _nop_ ();
 363   2              CLK_595 = LOW;
 364   2              _nop_ ();
 365   2              _nop_ ();
C51 COMPILER V7.50   ZDJJC                                                                 02/27/2006 21:10:46 PAGE 7   

 366   2              _nop_ ();
 367   2                      _nop_ ();
 368   2              _nop_ ();
 369   2              _nop_ ();
 370   2              CLK_595 = HIGH;
 371   2              _nop_ ();
 372   2              _nop_ ();
 373   2              _nop_ ();
 374   2                      _nop_ ();
 375   2              _nop_ ();
 376   2              _nop_ ();
 377   2          }
 378   1      
 379   1          STB_595 = LOW;
 380   1          _nop_ ();
 381   1          _nop_ ();
 382   1          _nop_ ();
 383   1              _nop_ ();
 384   1          _nop_ ();
 385   1          _nop_ ();
 386   1          STB_595 = HIGH;
 387   1          _nop_ ();
 388   1          _nop_ ();
 389   1          _nop_ ();
 390   1          _nop_ ();
 391   1          _nop_ ();
 392   1          _nop_ ();
 393   1          DAT_595 = HIGH; //数据线保持高电平
 394   1          _nop_ ();
 395   1          _nop_ ();
 396   1          _nop_ ();
 397   1          _nop_ ();
 398   1          _nop_ ();
 399   1          _nop_ ();
 400   1      }
 401          
 402          void Display ()
 403          {                                                                                          
 404   1          uchar data kbIndex;
 405   1          word data595;       
 406   1              //计算显示数据
 407   1              data595 = (0x0001 << displayIndex) + (displayBuf[displayIndex] << 8);
 408   1          //蜂鸣器
 409   1          if (buzzState == TRUE)
 410   1              data595 |= 0x0080;
 411   1          KBSendData (data595);
 412   1              
 413   1              //判断键盘
 414   1              kbIndex = displayIndex - 2;
 415   1              if (kbIndex < KBI_COUNT)
 416   1              {
 417   2                  if (KB_DATA == LOW)
 418   2                      {
 419   3                              /*
 420   3                              if (KeyCount == 0)
 421   3                              {
 422   3                                      FirstKey = kbIndex;
 423   3                              }
 424   3                              else if (kbIndex == FirstKey)
 425   3                              {       
 426   3                                          
 427   3                              } 
C51 COMPILER V7.50   ZDJJC                                                                 02/27/2006 21:10:46 PAGE 8   

 428   3                              */
 429   3                              //KeyCount ++;
 430   3                                      
 431   3                      //if (KeyCount == KEYDELAY)
 432   3                      {
 433   4                          curKey = kbIndex;
 434   4                                  //hasKey = FALSE;  
 435   4                                  KeyFlag = TRUE;
 436   4                                  //KeyCount = 0;
 437   4                          }
 438   3                  }
 439   2              }
 440   1      
 441   1          //计算下一次显示下标
 442   1              displayIndex ++;
 443   1          displayIndex = displayIndex % DISPLAY_BUF_LEN;
 444   1      }
 445          
 446          void IntKey () interrupt 0
 447          {
 448   1               //关闭显示
 449   1               word data595 = 0x0000;
 450   1               KBSendData (data595);
 451   1               SaveCurrData ();
 452   1               //进入掉电模式
 453   1               PCON = 0x02;
 454   1      }
 455          
 456          void OnPulseTerm (void) interrupt 1
 457          {    
 458   1               if (RunStatus)
 459   1               {    
 460   2                   PulseAct ++;
 461   2           }
 462   1               else
 463   1               {
 464   2                   PulseTotal ++;
 465   2           }
 466   1      
 467   1               TH0 = TH0_VAL;
 468   1           TL0 = TL0_VAL;
 469   1      }
 470          
 471          void IntPulse () interrupt 2
 472          { 
 473   1           ET0 = FALSE;
 474   1               
 475   1               if (!RunStatus)
 476   1               {
 477   2                   PulseCount ++;
 478   2                   displayBuf[6] = 0x00;
 479   2                
 480   2                   if (PulseCount == TERM_COUNT)
 481   2                   {
 482   3                            displayBuf[6] = 0x02;
 483   3                            PulseTerm.w = PulseTotal / 16;
 484   3                            PulseTerm.w = PulseTerm.w * 9;
 485   3                            PulseTerm.w /= 10;
 486   3                            PulseCount = 0;
 487   3                            PulseTotal = 0;
 488   3                            C24SetBuf (TERM_H, PulseTerm.b, 2);
 489   3                   } 
C51 COMPILER V7.50   ZDJJC                                                                 02/27/2006 21:10:46 PAGE 9   

 490   2                       uDebugPulse ++;
 491   2      
 492   2                   if (uKValue.w != 0)
 493   2                   {
 494   3                           if (uDebugPulse < uKValue.w)
 495   3                           {
 496   4                                   displayBuf[5] = SEVEN_BLK1[uDebugPulse * 10 / uKValue.w];
 497   4                               }
 498   3                               else 
 499   3                               {        DebugLength.w ++; 
 500   4                                    uDebugPulse = 0;
 501   4                                    displayBuf[5] = SEVEN_BLK1[0];
 502   4                               }
 503   3                       }
 504   2                      
 505   2                       IntToLED (DebugLength.w, 4, TRUE);
 506   2               }
 507   1           else
 508   1               {
 509   2                       if (PulseAct != 0)
 510   2                       {
 511   3                       if (PulseAct > PulseTerm.w)
 512   3                       {
 513   4                       uPulseInc ++;
 514   4                   
 515   4                       if (uKValue.w != 0)
 516   4                           {
 517   5                                           if (uPulseInc < uKValue.w)
 518   5                                               {
 519   6                                                   displayBuf[5] = SEVEN_BLK1[uPulseInc * 10 / uKValue.w];
 520   6                                               }
 521   5                                               else 
 522   5                                               {        RunLength.w ++; 
 523   6                                                    uPulseInc = 0;
 524   6                                                        displayBuf[5] = SEVEN_BLK1[0];
 525   6                                               }
 526   5                               } 
 527   4                               PulseAct = 0;
 528   4                                       displayBuf[6] &= 0x7F; 
 529   4                       }
 530   3                               
 531   3                       else
 532   3                           {
 533   4                               PulseCheat.w ++;
 534   4                                   buzzState = TRUE;
 535   4                                       displayBuf[6] |= 0x80;
 536   4                           }
 537   3                   }  
 538   2                       displayBuf[6] = 0x01;
 539   2                       
 540   2                       IntToLED (RunLength.w, 4, TRUE);
 541   2               }
 542   1               
 543   1               //显示
 544   1           displayBuf[0] = SEVEN_BLK1[GroupIndex];
 545   1           
 546   1               ET0 = TRUE;
 547   1      }
 548          
 549          void LEDShow (void) interrupt 3
 550          {
 551   1              GroupSaveCount ++; 
C51 COMPILER V7.50   ZDJJC                                                                 02/27/2006 21:10:46 PAGE 10  

 552   1      
 553   1              if (RunStatus)
 554   1              {
 555   2              //主电机停机监测
 556   2                  if (!MOTOR)
 557   2                  {
 558   3                          motorStatus = FALSE;         
 559   3                          buzzState = FALSE;
 560   3                  }
 561   2                  else
 562   2                  {
 563   3                          if (motorStatus == FALSE)
 564   3                          {
 565   4                              motorStatus = TRUE;
 566   4                              curMotorStopCount ++;
 567   4                          }
 568   3                              buzzState = TRUE; 
 569   3                  }
 570   2              }
 571   1      
 572   1          Display ();
 573   1      
 574   1          TH1 = TH1_VAL;
 575   1          TL1 = TL1_VAL;      
 576   1      } 
 577          
 578          void SetBaud ()
 579          {
 580   1           uint Baud;
 581   1      
 582   1               while (TRUE)
 583   1               {
 584   2                         Baud = InitBaud ();
 585   2                         //显示当前波特率
 586   2                     displayBuf[0] = SEVEN_BLK1[11];
 587   2                 IntToLED (Baud, 5, FALSE);
 588   2                
 589   2                     Delay (200, 200);
 590   2                         switch (curKey)
 591   2                     {
 592   3                      case 0:  //加
 593   3                           BaudIndex ++;
 594   3                                       BaudIndex = BaudIndex % 5;
 595   3                           break;
 596   3                      case 1:  //减
 597   3                                   BaudIndex --; 
 598   3                                   BaudIndex = BaudIndex % 5;
 599   3                           break;
 600   3                      case 2:
 601   3                           break;

⌨️ 快捷键说明

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