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

📄 board_type.lst

📁 单片机程序代码,经过很详细的测试.呵呵,硬件相关.
💻 LST
📖 第 1 页 / 共 4 页
字号:
 224   2                      tx_buf[10] = '2';
 225   2              }
 226   1              else tx_buf[10] = '0';
 227   1              tx_buf[11] = value + 0x30;
 228   1              tx_buf[12] = '*';
 229   1              tx_buf_pointer = 0;     
 230   1              while(tx_buf[tx_buf_pointer] != '*'){
 231   2                      SBUF = tx_buf[tx_buf_pointer];
 232   2                      while(tx_done == 0);
 233   2                      tx_done = 0;
 234   2                      tx_buf_pointer++;
 235   2              }
 236   1              SBUF = tx_buf[tx_buf_pointer];          //发送最后一个字符'*'
 237   1              while(tx_done == 0);
 238   1              tx_done = 0;
 239   1      }
 240          
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 5   

 241          
 242          unsigned char initializers_one_board(struct cmd_para_save *init_one_board){
 243   1      //M01 MCP下发初始化某一单盘命令
 244   1      unsigned char xdata btemp;
 245   1      unsigned char xdata boardid;
 246   1      unsigned char xdata return_value;
 247   1              
 248   1              commandid = 0x00543931;
 249   1              boardid = init_one_board -> single_board_reset;
 250   1      
 251   1              switch (boardid){
 252   2                      case 1: P1 = 0x20;
 253   2                                      btemp = XBYTE[0xA400];
 254   2                                      P1 = 0xFF;
 255   2                                      if (btemp == 0x51){
 256   3                                              init_se0111(1);
 257   3                                              start_flg[1] = 0;
 258   3                                              return_value = 0;
 259   3                                      }
 260   2                                      else if (btemp == 0x57){
 261   3                                              init_se0121(1);
 262   3                                              start_flg_EOS[1] = 0;
 263   3                                              return_value = 0;
 264   3                                      }
 265   2                                      else return_value = 2;
 266   2                                      break;
 267   2                      case 2: P1 = 0x60;
 268   2                                      btemp = XBYTE[0xA400];
 269   2                                      P1 = 0xFF;
 270   2                                      if (btemp == 0x51){
 271   3                                              init_se0111(2);
 272   3                                              start_flg[2] = 0;
 273   3                                              return_value = 0;
 274   3                                      }
 275   2                                      else if (btemp == 0x57){
 276   3                                              init_se0121(2);
 277   3                                              start_flg_EOS[2] = 0;
 278   3                                              return_value = 0;
 279   3                                      }
 280   2                                      else return_value = 2;
 281   2                                      break;
 282   2                      case 3: P1 = 0x40;
 283   2                                      btemp = XBYTE[0xA400];
 284   2                                      P1 = 0xFF;
 285   2                                      if (btemp == 0x51){
 286   3                                              init_se0111(3);
 287   3                                              start_flg[3] = 0;
 288   3                                              return_value = 0;
 289   3                                      }
 290   2                                      else if (btemp == 0x57){
 291   3                                              init_se0121(3);
 292   3                                              start_flg_EOS[3] = 0;
 293   3                                              return_value = 0;
 294   3                                      }
 295   2                                      else return_value = 2;
 296   2                                      break;
 297   2                      case 4: P1 = 0x10;
 298   2                                      btemp = XBYTE[0xB000];
 299   2                                      P1 = 0xFF;
 300   2                                      if (btemp == 0x55){
 301   3                                              reset_f2rc7860();
 302   3                                      f2_rc7820();
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 6   

 303   3                                              f2rc7820_wr(F2Encrypt_reg,0xAA);
 304   3                                              f2rc7820_wr(F2Intmask_reg,0xFF);
 305   3      
 306   3                                          f2_rc7860();
 307   3                                              f2rc7860_wr(F2Dxc_cntr,0xA0);
 308   3                                              start_flg[0] = 0;
 309   3                                              return_value = 0;
 310   3                                      }
 311   2                                      else return_value = 2;
 312   2                                      break;
 313   2                      case 5: P1 = 0x50;
 314   2                                      XBYTE[0xC400] = 0x01;
 315   2                                      XBYTE[0xC400] = 0x00;
 316   2                                      P1 = 0;
 317   2                                      init_7820();
 318   2                                      Encrypt_reg = 0xAA;
 319   2                                      Intmask_reg = 0xFF;
 320   2                                      S_reg = 0xC1;  //set 7820 free run
 321   2                                      //init 7860
 322   2                                      P1 = 0x30;
 323   2                                      XBYTE[0xC400] = 0x01;
 324   2                                      XBYTE[0xC400] = 0x00;
 325   2                                      P1 = 0;
 326   2                                      init_7860();
 327   2                                      Reg_protect                     = 0xAA;
 328   2                                      Dxc_cntr                        = 0xA0;
 329   2                                      return_value = 0;
 330   2                                      break;
 331   2                      default:return_value = 2;
 332   2                                      break;
 333   2              }
 334   1              if (!GetResRdyTbl(1))
 335   1                      SetResRdyTbl(1);                    //置响应事件列表相应位为1
 336   1              return (return_value);                                  //返回函数执行结果
 337   1      }
 338          
 339          
 340          unsigned char check_initializers(void){
 341   1      //C80MCP查询MCU上电初始化状态
 342   1              commandid = 0x00433830;
 343   1              if (!GetResRdyTbl(1))
 344   1                      SetResRdyTbl(1);                    //置响应事件列表相应位为1
 345   1              return (0);                                     //返回函数执行结果
 346   1      }
 347          
 348          void initializers_board(void){
 349   1      //C81初始化某一单盘函数
 350   1      unsigned char xdata btemp;
 351   1      unsigned char xdata temp;
 352   1      unsigned char xdata temp1;
 353   1      
 354   1                      P1 = 0x20;
 355   1                      btemp = XBYTE[0xA400];
 356   1                      P1 = 0xFF;
 357   1                      if ((btemp != 0x51) & (board_type[1][1] == 2)){ //2M盘1不在则置位该盘初始化标志位为1
 358   2                              start_flg[1] = 1;
 359   2                              if (board_flg[1] == 0){                         //2M盘1丢失
 360   3                                      for (temp = 0; temp <= 20; temp++){     
 361   4                                              lparray2m[0][temp] = 0;                 //将2M盘的环回状态复原为无环回
 362   4                                              EB_2M[0][temp] = 0;                             //将2M盘的性能值清0
 363   4                                              REI_2M[0][temp] = 0;
 364   4                                              REI_2M_15min[0][temp] = 0;
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 7   

 365   4                                              PJC_2M[0][temp] = 0;
 366   4                                              PJC_2M_15min[0][temp] = 0;
 367   4                                              NJC_2M[0][temp] = 0;
 368   4                                              NJC_2M_15min[0][temp] = 0;
 369   4                                              timeslot_2M[0][temp] = 0;
 370   4                                      }
 371   3                                      hold_board[1] = 0;
 372   3                                      board_flg[1] = 1;
 373   3                                      if (!GetResRdyTbl(6))
 374   3                                              SetResRdyTbl(6);           //置响应事件列表相应位为1
 375   3                              }
 376   2                      }
 377   1                      else if((btemp != 0x57) & (board_type[1][1] == 3)){
 378   2                              start_flg_EOS[1] = 1;
 379   2                              if (board_flg[1] == 0){                         //EOS盘1丢失
 380   3                                      lparray_EOS[0] = 0;
 381   3                                      hold_board[1] = 0;
 382   3                                      board_flg[1] = 1;
 383   3                                      if (!GetResRdyTbl(6))
 384   3                                              SetResRdyTbl(6);           //置响应事件列表相应位为1
 385   3                              }
 386   2                      }
 387   1                      if (btemp == 0x51 & start_flg[1]){
 388   2                              if (hold_board[1] != 0){                                //一秒以后盘标志位表示该盘还在原位置
 389   3                                      if (hold_board[1] == 1){                        //该盘还未初始化,则进行初始化
 390   4                                              init_se0111(1);
 391   4                                              board_type[1][1] = 2;
 392   4                                              hold_board[1] = 2;                              //表示该盘已经初始化完毕
 393   4                                              start_flg[1] = 0;                                       //
 394   4                                              board_flg[1] = 0;
 395   4                                              if (!GetResRdyTbl(2))
 396   4                                                      SetResRdyTbl(2);                  //置响应事件列表相应位为1
 397   4                                       }
 398   3                                       else hold_board[1] = 2;
 399   3                              }
 400   2                              else hold_board[1] = 1;
 401   2                      }
 402   1                      if (btemp == 0x57 & start_flg_EOS[1]){
 403   2                              if (hold_board[1] != 0){                                //一秒以后盘标志位表示该盘还在原位置
 404   3                                      if (hold_board[1] == 1){                        //该盘还未初始化,则进行初始化
 405   4                                              init_se0121(1);
 406   4                                              board_type[1][1] = 3;
 407   4                                              hold_board[1] = 2;                              //表示该盘已经初始化完毕
 408   4                                              start_flg_EOS[1] = 0;
 409   4                                              board_flg[1] = 0;
 410   4                                              if (!GetResRdyTbl(2))
 411   4                                                      SetResRdyTbl(2);                  //置响应事件列表相应位为1
 412   4                                       }
 413   3                                       else hold_board[1] = 2;
 414   3                              }
 415   2                              else hold_board[1] = 1;
 416   2                      }
 417   1      
 418   1                      P1 = 0x60;
 419   1                      btemp = XBYTE[0xA400];
 420   1                      P1 = 0xFF;
 421   1                      if ((btemp != 0x51) & (board_type[2][1] == 2)){                                         //2M盘2不在则置位该盘初始化标志位为1
 422   2                              start_flg[2] = 1;
 423   2                              if (board_flg[2] == 0){
 424   3                                      for (temp = 0; temp <= 20; temp++){     
 425   4                                              lparray2m[1][temp] = 0;                 //将2M盘的环回状态复原为无环回
 426   4                                              EB_2M[1][temp] = 0;                             //将2M盘的性能值清0
C51 COMPILER V7.50   BOARD_TYPE                                                            03/10/2006 16:35:30 PAGE 8   

 427   4                                              REI_2M[1][temp] = 0;
 428   4                                              REI_2M_15min[1][temp] = 0;
 429   4                                              PJC_2M[1][temp] = 0;
 430   4                                              PJC_2M_15min[1][temp] = 0;
 431   4                                              NJC_2M[1][temp] = 0;
 432   4                                              NJC_2M_15min[1][temp] = 0;
 433   4                                              timeslot_2M[1][temp] = 0;
 434   4                                      }
 435   3                                      hold_board[2] = 0;
 436   3                                      board_flg[2] = 1;
 437   3                                      if (!GetResRdyTbl(7))
 438   3                                              SetResRdyTbl(7);           //置响应事件列表相应位为1
 439   3                              }
 440   2                      }
 441   1                      else if((btemp != 0x57) & (board_type[2][1] == 3)){
 442   2                              start_flg_EOS[2] = 1;
 443   2                              if (board_flg[2] == 0){                         //EOS盘1丢失
 444   3                                      lparray_EOS[1] = 0;
 445   3                                      hold_board[2] = 0;
 446   3                                      board_flg[2] = 1;
 447   3                                      if (!GetResRdyTbl(7))
 448   3                                              SetResRdyTbl(7);           //置响应事件列表相应位为1
 449   3                              }
 450   2                      }
 451   1                      if (btemp == 0x51 & start_flg[2]){
 452   2                              if (hold_board[2] != 0){                                //一秒以后盘标志位表示该盘还在原位置
 453   3                                      if (hold_board[2] == 1){                        //该盘还未初始化,则进行初始化
 454   4                                              init_se0111(2);

⌨️ 快捷键说明

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