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

📄 board_type.lst

📁 单片机程序代码,经过很详细的测试.呵呵,硬件相关.
💻 LST
📖 第 1 页 / 共 4 页
字号:
 455   4                                              board_type[2][1] = 2;
 456   4                                              hold_board[2] = 2;                              //表示该盘已经初始化完毕
 457   4                                              start_flg[2] = 0;                                       //
 458   4                                              board_flg[2] = 0;
 459   4                                              if (!GetResRdyTbl(3))
 460   4                                                      SetResRdyTbl(3);               //置响应事件列表相应位为1
 461   4                                       }
 462   3                                       else hold_board[2] = 2;
 463   3                              }
 464   2                              else hold_board[2] = 1;
 465   2                      }
 466   1                      if (btemp == 0x57 & start_flg_EOS[2]){
 467   2                              if (hold_board[2] != 0){                                //一秒以后盘标志位表示该盘还在原位置
 468   3                                      if (hold_board[2] == 1){                        //该盘还未初始化,则进行初始化
 469   4                                              init_se0121(2);
 470   4                                              board_type[2][1] = 3;
 471   4                                              hold_board[2] = 2;                              //表示该盘已经初始化完毕
 472   4                                              start_flg_EOS[2] = 0;
 473   4                                              board_flg[2] = 0;
 474   4                                              if (!GetResRdyTbl(3))
 475   4                                                      SetResRdyTbl(3);               //置响应事件列表相应位为1
 476   4                                       }
 477   3                                       else hold_board[2] = 2;
 478   3                              }
 479   2                              else hold_board[2] = 1;
 480   2                      }
 481   1      
 482   1                      P1 = 0x40;
 483   1                      btemp = XBYTE[0xA400];
 484   1                      P1 = 0xFF;
 485   1                      if ((btemp != 0x51) & (board_type[3][1] == 2)){                                                 //2M盘3不在则置位该盘初始化标志位为1
 486   2                              start_flg[3] = 1;
 487   2                              if (board_flg[3] == 0){                                 //2M盘3丢失
 488   3                                      for (temp = 0; temp <= 20; temp++){     
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 9   

 489   4                                              lparray2m[2][temp] = 0;                 //将2M盘的环回状态复原为无环回
 490   4                                              EB_2M[2][temp] = 0;                             //将2M盘的性能值清0
 491   4                                              REI_2M[2][temp] = 0;
 492   4                                              REI_2M_15min[2][temp] = 0;
 493   4                                              PJC_2M[2][temp] = 0;
 494   4                                              PJC_2M_15min[2][temp] = 0;
 495   4                                              NJC_2M[2][temp] = 0;
 496   4                                              NJC_2M_15min[2][temp] = 0;
 497   4                                              timeslot_2M[2][temp] = 0;
 498   4                                      }
 499   3                                      hold_board[3] = 0;
 500   3                                      board_flg[3] = 1;
 501   3                                      if (!GetResRdyTbl(8))
 502   3                                              SetResRdyTbl(8);               //置响应事件列表相应位为1
 503   3                              }
 504   2                      }
 505   1                      else if((btemp != 0x57) & (board_type[3][1] == 3)){
 506   2                              start_flg_EOS[3] = 1;
 507   2                              if (board_flg[3] == 0){                         //EOS盘1丢失
 508   3                                      lparray_EOS[2] = 0;
 509   3                                      hold_board[3] = 0;
 510   3                                      board_flg[3] = 1;
 511   3                                      if (!GetResRdyTbl(8))
 512   3                                              SetResRdyTbl(8);               //置响应事件列表相应位为1
 513   3                              }
 514   2                      }
 515   1                      if (btemp == 0x51 & start_flg[3]){
 516   2                              if (hold_board[3] != 0){                                //一秒以后盘标志位表示该盘还在原位置
 517   3                                      if (hold_board[3] == 1){                        //该盘还未初始化,则进行初始化
 518   4                                              init_se0111(3);                                 
 519   4                                              board_type[3][1] = 2;
 520   4                                              hold_board[3] = 2;                              //表示该盘已经初始化完毕
 521   4                                              start_flg[3] = 0;                               
 522   4                                              board_flg[3] = 0;
 523   4                                              if (!GetResRdyTbl(4))
 524   4                                                      SetResRdyTbl(4);               //置响应事件列表相应位为1
 525   4                                       }
 526   3                                       else hold_board[3] = 2;
 527   3                              }
 528   2                              else hold_board[3] = 1;
 529   2                      }
 530   1                      if (btemp == 0x57 & start_flg_EOS[3]){
 531   2                              if (hold_board[3] != 0){                                //一秒以后盘标志位表示该盘还在原位置
 532   3                                      if (hold_board[3] == 1){                        //该盘还未初始化,则进行初始化
 533   4                                              init_se0121(3);
 534   4                                              board_type[3][1] = 3;
 535   4                                              hold_board[3] = 2;                              //表示该盘已经初始化完毕
 536   4                                              start_flg_EOS[3] = 0;
 537   4                                              board_flg[3] = 0;
 538   4                                              if (!GetResRdyTbl(4))
 539   4                                                      SetResRdyTbl(4);               //置响应事件列表相应位为1
 540   4                                       }
 541   3                                       else hold_board[3] = 2;
 542   3                              }
 543   2                              else hold_board[3] = 1;
 544   2                      }
 545   1      
 546   1                      P1 = 0x10;
 547   1                      btemp = XBYTE[0xB000];
 548   1                      P1 = 0xFF;
 549   1                      if (btemp != 0x55){
 550   2                              start_flg[0] = 1;
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 10  

 551   2                              if (board_flg[0] == 0){                                 //光分支盘丢失
 552   3                                      for (temp = 2; temp <= 3; temp++){
 553   4                                              if (lparrayf[temp] == 2){
 554   5                                                      for(temp1 = 0; temp1 <= 63; temp1++){
 555   6                                                              PTUN(temp,temp1)=0xFF;
 556   6                                                      }
 557   5                                              }
 558   4                                              lparrayf[temp] = 0;                             //将光分支盘的环回状态复原为无环回
 559   4                                              B1[temp] = 0;                           //将光分支盘的性能值清0
 560   4                                              B2[temp] = 0;
 561   4                                              B3[temp] = 0;
 562   4                                              REI_MS[temp] = 0;
 563   4                                              REI_MS_15min[temp] = 0;
 564   4                                              REI_HP[temp] = 0;
 565   4                                              REI_HP_15min[temp] = 0;
 566   4                                              OFS[temp] = 0;
 567   4                                              OFS_15min[temp] = 0;
 568   4                                              PJC_HP[temp] = 0;
 569   4                                              PJC_HP_15min[temp] = 0;
 570   4                                              NJC_HP[temp] = 0;
 571   4                                              NJC_HP_15min[temp] = 0;
 572   4                                      }
 573   3                                      hold_board[0] = 0;
 574   3                                      if (!GetResRdyTbl(9))
 575   3                                              SetResRdyTbl(9);               //置响应事件列表相应位为1
 576   3                              }
 577   2                      }
 578   1                      if (btemp == 0x55 & start_flg[0]){
 579   2                              if (hold_board[0] != 0){                                //一秒以后盘标志位表示该盘还在原位置
 580   3                                      if (hold_board[0] == 1){                        //该盘还未初始化,则进行初始化
 581   4                                              f2_rc7820();
 582   4                                              f2rc7820_wr(F2Encrypt_reg,0xAA);
 583   4                                              f2rc7820_wr(F2Intmask_reg,0xFF);
 584   4                                          f2_rc7860();
 585   4                                              f2rc7860_wr(F2Dxc_cntr,0xA0);
 586   4                                              hold_board[0] = 2;                              //表示该盘已经初始化完毕
 587   4                                              start_flg[0] = 0;                                       //
 588   4                                              if (!GetResRdyTbl(5))
 589   4                                                      SetResRdyTbl(5);               //置响应事件列表相应位为1
 590   4                                       }
 591   3                                       else hold_board[0] = 2;
 592   3                              }
 593   2                              else hold_board[0] = 1;
 594   2                      }
 595   1                      board_flg[0] = start_flg[0];
 596   1      }
 597          
 598          void report_initializers(unsigned char slotid, unsigned char boardid){
 599   1      //上报单盘初始化完成函数
 600   1              tx_buf[0] = '$';
 601   1              tx_buf[1] = '2';
 602   1              tx_buf[2] = '1';
 603   1              tx_buf[3] = 0x43;
 604   1              tx_buf[4] = 0x38;
 605   1              tx_buf[5] = 0x31;
 606   1              tx_buf[6] = '0';
 607   1              tx_buf[7] = '0';
 608   1              tx_buf[8] = '0';
 609   1              tx_buf[9] = '2';
 610   1              tx_buf[10] = slotid + 0x30;
 611   1              tx_buf[11] = boardid +0x30;
 612   1              tx_buf[12] = '*';
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 11  

 613   1              tx_buf_pointer = 0;     
 614   1              while(tx_buf[tx_buf_pointer] != '*'){
 615   2                      SBUF = tx_buf[tx_buf_pointer];
 616   2                      while(tx_done == 0);
 617   2                      tx_done = 0;
 618   2                      tx_buf_pointer++;
 619   2              }
 620   1              SBUF = tx_buf[tx_buf_pointer];          //发送最后一个字符'*'
 621   1              while(tx_done == 0);
 622   1              tx_done = 0;
 623   1      }
 624          
 625          void report_initializers_2M1(void){
 626   1      //C81上报MCP完成2M盘1初始化
 627   1              report_initializers(1,board_type[1][1]);
 628   1      }
 629          
 630          void report_initializers_2M2(void){
 631   1      //C81上报MCP完成2M盘2初始化
 632   1              report_initializers(2,board_type[2][1]);
 633   1      }
 634          
 635          void report_initializers_2M3(void){
 636   1      //C81上报MCP完成2M盘3初始化
 637   1              report_initializers(3,board_type[3][1]);
 638   1      }
 639          
 640          void report_initializers_OTB(void){
 641   1      //C81上报MCP完成OTB盘初始化
 642   1              report_initializers(4,4);
 643   1      }
 644          
 645          void report_loss_board(unsigned char slotid, unsigned char boardid){
 646   1      //上报单盘丢失函数
 647   1              tx_buf[0] = '$';
 648   1              tx_buf[1] = '2';
 649   1              tx_buf[2] = '1';
 650   1              tx_buf[3] = 0x46;
 651   1              tx_buf[4] = 0x30;
 652   1              tx_buf[5] = 0x32;
 653   1              tx_buf[6] = '0';
 654   1              tx_buf[7] = '0';
 655   1              tx_buf[8] = '0';
 656   1              tx_buf[9] = '2';
 657   1              tx_buf[10] = slotid + 0x30;
 658   1              tx_buf[11] = boardid +0x30;
 659   1              tx_buf[12] = '*';
 660   1              tx_buf_pointer = 0;     
 661   1              while(tx_buf[tx_buf_pointer] != '*'){
 662   2                      SBUF = tx_buf[tx_buf_pointer];
 663   2                      while(tx_done == 0);
 664   2                      tx_done = 0;
 665   2                      tx_buf_pointer++;
 666   2              }
 667   1              SBUF = tx_buf[tx_buf_pointer];          //发送最后一个字符'*'
 668   1              while(tx_done == 0);
 669   1              tx_done = 0;
 670   1      }
 671          
 672          void report_loss_2M1(void){
 673   1      //F02上报MCP 2M盘1丢失
 674   1              report_loss_board(1,board_type[1][1]);
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 12  

 675   1      }
 676          
 677          void report_loss_2M2(void){
 678   1      //F02上报MCP 2M盘2丢失
 679   1              report_loss_board(2,board_type[2][1]);
 680   1      }
 681          
 682          void report_loss_2M3(void){
 683   1      //F02上报MCP 2M盘3丢失
 684   1              report_loss_board(3,board_type[3][1]);
 685   1      }

⌨️ 快捷键说明

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