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

📄 test.lst

📁 单片机程序代码,经过很详细的测试.呵呵,硬件相关.
💻 LST
📖 第 1 页 / 共 5 页
字号:
 791                  if (int_reg & 0x0F){
 792                          judge  = Ia0_b;                                 //得出MCB的7860B口IA0中断寄存器值
 793                          judge1 = Ia1_b;         
 794                          judge2 = Ia2_b;
 795                          judge3 = Ia3_b;
 796                          Rdint_clr = 0x40;                                       //清除MCB盘的Ia3_a与Ia3_b中断位
 797                          for (temp = 0; temp <= 7; temp++){                              //取出63个时隙的AIS寄存器值
 798                                  ais_reg[1][temp] |= XBYTE[temp + 0x8AA6];
C51 COMPILER V7.50   TEST                                                                  03/10/2006 16:35:17 PAGE 14  

 799                          }
 800                          if ((judge & 0xDA) | (judge2 & 0xE0) | (judge3 & 0x80)){
 801                                  intflg_MCBB = 1;
 802                          }
 803                          if (judge != 0){
 804                                  Intmask0_b = judge;
 805                                  judge &= 0xD0;                                  //取出可发生自动倒换的bit位
 806                                  if (judge != 0){
 807          //                              SetExtRdyTbl(3);
 808                                          init_recover[1] = 1;
 809                                          path_switch_mcbb();
 810                                  }
 811                          }
 812                          if (judge1 != 0){
 813                                  Intmask1_b = judge1;
 814          //                      judge1 &= 0xF0;
 815          //                      if (judge1 != 0){
 816          //                              SetExtRdyTbl(3);
 817          //                              path_switch_mcbb();
 818          //                      }
 819                          }
 820                          if (judge2 != 0){
 821                                  Intmask2_b = judge2;
 822                                  judge2 &= 0xE0;
 823                                  if (judge2 != 0){
 824          //                              SetExtRdyTbl(3);
 825                                          init_recover[1] = 1;
 826                                          path_switch_mcbb();
 827                                  }
 828                          }
 829                          if (judge3 != 0){
 830          //                      Intmask3_b = judge3;
 831                                  judge3 &= 0x80;
 832                                  if (judge3 != 0){
 833          //                              inb += 1;
 834                                          SetExtRdyTbl(4);
 835                                          init_recover[1] = 1;
 836                                          path_switch_mcbb_tu();
 837                                  }
 838                          }
 839                  }
 840          
 841          //      judge = int_flg & 0x04;
 842          //      if (judge == 0x04){
 843                  if (f2rc7820_rd(F2Int_reg)){
 844                          f2rc7820_wr(F2Encrypt_reg,0xAA);       //open 7820 write reg
 845                          f2rc7820_wr(F2Intmask_reg,0xFF);
 846                  }
 847          
 848          //      judge = int_flg & 0x08;                                                         //取出OTB7860的中断
 849          //      if (judge == 0x08){
 850                  int_reg = f2rc7860_rd(F2Int_vec);
 851                  if (int_reg){
 852                          if (start_flg[0] == 1){
 853                                  f2rc7860_wr(F2Reg_protect,0xAA);       //open 7860 write reg protect
 854                                  f2rc7860_wr(F2Int_mask,0x80);
 855                          }
 856                          else{
 857                          if (int_reg & 0xF0){
 858                                  judge = f2rc7860_rd(F2Ia0_a);                                   //光分支盘A口中断处理
 859                                  judge1 = f2rc7860_rd(F2Ia1_a);
 860                                  judge2 = f2rc7860_rd(F2Ia2_a);
C51 COMPILER V7.50   TEST                                                                  03/10/2006 16:35:17 PAGE 15  

 861                                  judge3 = f2rc7860_rd(F2Ia3_a);
 862                                  f2rc7860_wr(F2Rdint_clr,0x40);          //清除OTB盘的F2Ia3_a与F2Ia3_b中断位
 863                                  for (temp = 0; temp <= 7; temp++){                              //取出63个时隙的AIS寄存器值
 864                                          ais_reg[2][temp] |= f2rc7860_rd(temp + 0x00A6);
 865                                  }
 866                                  if ((judge & 0xDA) | (judge2 & 0xE0) | (judge3 & 0x80)){
 867                                          intflg_OTBA = 1;
 868                                  }
 869                                  if (judge != 0){
 870                                          f2rc7860_wr(F2Intmask0_a,judge);
 871                                          judge &= 0xD0;                                  //取出可发生自动倒换的bit位
 872                                          if (judge != 0){
 873          //                                      SetExtRdyTbl(5);
 874                                                  init_recover[2] = 1;
 875                                                  path_switch_otba();
 876                                          }
 877                                  }
 878                                  if (judge1 != 0){
 879                                          f2rc7860_wr(F2Intmask1_a,judge1);
 880          //                              judge1 &= 0xF0;
 881          //                              if (judge1 != 0){
 882          //                                      SetExtRdyTbl(5);
 883          //                                      path_switch_otba();
 884          //                              }
 885                                  }
 886                                  if (judge2 != 0){
 887                                          f2rc7860_wr(F2Intmask2_a,judge2);
 888                                          judge2 &= 0xE0;
 889                                          if (judge2 != 0){
 890          //                                      SetExtRdyTbl(5);
 891                                                  init_recover[2] = 1;
 892                                                  path_switch_otba();
 893                                          }
 894                                  }
 895                                  if (judge3 != 0){
 896          //                              f2rc7860_wr(F2Intmask3_a,judge3);
 897                                          judge3 &= 0x80;
 898                                          if (judge3 != 0){
 899                                                  SetExtRdyTbl(6);
 900                                                  init_recover[2] = 1;
 901                                                  path_switch_otba_tu();
 902                                          }
 903                                  }
 904                          }
 905          
 906                          if (int_reg & 0x0F){
 907                                  judge = f2rc7860_rd(F2Ia0_b);                                   //光分支盘B口中断处理
 908                                  judge1 = f2rc7860_rd(F2Ia1_b);
 909                                  judge2 = f2rc7860_rd(F2Ia2_b);
 910                                  judge3 = f2rc7860_rd(F2Ia3_b);
 911                                  f2rc7860_wr(F2Rdint_clr,0x40);          //清除OTB盘的F2Ia3_a与F2Ia3_b中断位
 912                                  for (temp = 0; temp <= 7; temp++){                              //取出63个时隙的AIS寄存器值
 913                                          ais_reg[3][temp] |= f2rc7860_rd(temp + 0x02A6);
 914                                  }
 915                                  if ((judge & 0xDA) | (judge2 & 0xE0) | (judge3 & 0x80)){
 916                                          intflg_OTBB = 1;
 917                                  }
 918                                  if (judge != 0){
 919                                          f2rc7860_wr(F2Intmask0_b,judge);
 920                                          judge &= 0xD0;                                  //取出可发生自动倒换的bit位
 921                                          if (judge != 0){
 922          //                                      SetExtRdyTbl(7);
C51 COMPILER V7.50   TEST                                                                  03/10/2006 16:35:17 PAGE 16  

 923                                                  init_recover[3] = 1;
 924                                                  path_switch_otbb();
 925                                          }
 926                                  }
 927                                  if (judge1 != 0){
 928                                          f2rc7860_wr(F2Intmask1_b,judge1);
 929          //                              judge1 &= 0xF0;
 930          //                              if (judge1 != 0){
 931          //                                      SetExtRdyTbl(7);
 932          //                                      path_switch_otbb();
 933          //                              }
 934                                  }
 935                                  if (judge2 != 0){
 936                                          f2rc7860_wr(F2Intmask2_b,judge2);
 937                                          judge2 &= 0xE0;
 938                                          if (judge2 != 0){
 939          //                                      SetExtRdyTbl(7);
 940                                                  init_recover[3] = 1;
 941                                                  path_switch_otbb();
 942                                          }
 943                                  }
 944                                  if (judge3 != 0){
 945          //                              f2rc7860_wr(F2Intmask3_b,judge3);
 946                                          judge3 &= 0x80;
 947                                          if (judge3 != 0){
 948                                                  SetExtRdyTbl(8);
 949                                                  init_recover[3] = 1;
 950                                                  path_switch_otbb_tu();
 951                                          }
 952                                  }
 953                          }
 954                  }
 955                  }
 956          
 957                  SetExtRdyTbl(15);                                       //每秒查询改写2M盘的AIS速率
 958                  Rdint_clr = 0x40;                                       //清除MCB盘的Ia3_a与Ia3_b中断位
 959                  f2rc7860_wr(F2Rdint_clr,0x40);          //清除OTB盘的F2Ia3_a与F2Ia3_b中断位
 960          
 961          }
 962          
 963          /*****************************************************************************/
 964          
 965          timer0 () interrupt 1 using 2{
 966   1      unsigned char xdata btemp;
 967   1              TH0 = -46080/256;
 968   1              TL0 = -46080%256;
 969   1              if (++time3 >= 8){
 970   2                      time3 = 0;
 971   2                      P1_0 = ~P1_0;
 972   2              }
 973   1              time++;
 974   1      //      if (++time == 20){
 975   1      //              time = 0;
 976   1      //              P3_4 =  ~P3_4;
 977   1      //      }       
 978   1              if (++time1 >= 40){
 979   2                      time1 = 0;
 980   2                      if (init_temp){
 981   3                              SetExtRdyTbl(10);                                                       //每秒查询单盘状态
 982   3                              SetExtRdyTbl(11);                                                       //设置每秒钟收集性能与告警函数事件表
 983   3                              SetExtRdyTbl(14);                                                       //设置查询通道倒换函数
 984   3      //                      if (!GetExtRdyTbl(15))                                                  //每秒查询改写2M盘的AIS速率
C51 COMPILER V7.50   TEST                                                                  03/10/2006 16:35:17 PAGE 17  

 985   3      //                              SetExtRdyTbl(15);
 986   3                  

⌨️ 快捷键说明

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