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

📄 1503cs.lst

📁 完整的TCS控制系统原程序.包含系统检测
💻 LST
📖 第 1 页 / 共 5 页
字号:
  13      =1  //串口0中断 
  14      =1  void serial_0(void) interrupt 4 using 2{ 
  15   1  =1  //******************发送数据******************
  16   1  =1     if(TI){ 
  17   2  =1       TI=0;
  18   2  =1      if(fjsq>0){
  19   3  =1            SBUF=*(fsj++);
  20   3  =1           fjsq--; 
  21   3  =1         }
  22   2  =1         else sjyfs=1;
  23   2  =1     }
  24   1  =1  //*******************接收数据***************
  25   1  =1     if(RI){
  26   2  =1       RI=0; 
  27   2  =1       BUFF1 = BUFF2;
  28   2  =1       BUFF2 = BUFF3;
  29   2  =1       BUFF3 = BUFF4;
  30   2  =1       BUFF4 = BUFF5;
  31   2  =1       BUFF5 = BUFF6;
  32   2  =1       BUFF6 = BUFF7;
  33   2  =1       BUFF7 = BUFF8;
  34   2  =1       BUFF8 = SBUF ; 
  35   2  =1       
  36   2  =1             if( BUFF1 == 0XEB ){ 
  37   3  =1       if( BUFF8 == sums( BUFF )  ) {   //校验正确
  38   4  =1       if( sjyfs ) { //正在处理其它通信数据  通信请求无效 !
  39   5  =1         switch ( BUFF2) {
  40   6  =1                  
  41   6  =1          case  0x01:// 电源变压器参数控制
  42   6  =1                           if ( (BUFF5 == 0xff )&&(!zbh)){
  43   7  =1                     ykz = 1 ;
  44   7  =1                     ykml = 0xA5 ; 
  45   7  =1                     zjcsml = 0 ; 
  46   7  =1                     sjyfs = 0 ; fjsq = 8 ; fsj = BUFF ; SBUF = 0XFA ;
  47   7  =1                     }  
  48   6  =1                     break ;
  49   6  =1          case  0x02:// 控制回路检测
  50   6  =1                           if ( (BUFF5 == 0xff )&&(!zbh) ){
  51   7  =1                     ykz = 2;
  52   7  =1                     ykml = 0xA5 ;
  53   7  =1                     zjcsml = 0 ; 
  54   7  =1                     sjyfs = 0  ; fjsq = 8 ; fsj = BUFF ; SBUF = 0XFA ;
  55   7  =1                     }
  56   6  =1                     break ;      
  57   6  =1          case  0x03:// 通信回路和接点检测
  58   6  =1                           if ( (BUFF5 == 0xff )&&(!zbh)){
  59   7  =1                           ykz = 3 ;
  60   7  =1                     ykml = 0xA5 ;
  61   7  =1                     zjcsml = 0 ; 
  62   7  =1                     sjyfs = 0 ; fjsq = 8 ; fsj = BUFF ; SBUF = 0XFA;
  63   7  =1                     }
  64   6  =1                     break ;      
  65   6  =1          case  0x04: //停止测试 回到初始测试状态
  66   6  =1                           if ( BUFF5 == 0x00 ){
  67   7  =1                           zbh = 0 ;
  68   7  =1                           ykz = 4 ; 
  69   7  =1                     ykml = 0xA5 ;
  70   7  =1                     zjcsml = 0 ; 
  71   7  =1                     sjyfs = 0 ; fjsq = 8 ; fsj = BUFF ; SBUF = 0XFA ;
C51 COMPILER V7.50   1503CS                                                                12/31/2005 10:44:49 PAGE 15  

  72   7  =1                     }
  73   6  =1                     break ;  
  74   6  =1   
  75   6  =1          case  0x05: // 手动控制                 
  76   6  =1                            if( zbh == 0 ){ // 自控时不手控
  77   7  =1                            if( BUFF5 != 0XFF ){ ykz = 5 ; ykz1 = BUFF5 ; ykml = 0xA5 ; }  
  78   7  =1                      sjyfs = 0 ; fjsq = 8 ; fsj = BUFF ; SBUF = 0XFA ; 
  79   7  =1                            } 
  80   6  =1                            else if( BUFF5 ==0XFF ){ BUFF5 = 0XFE ; BUFF6  =  csbz  ; sjyfs = 0 ; fjsq = 8 ; fsj = 
             -BUFF ; SBUF = 0XFA ;} //状态查询
  81   6  =1                            break;   
  82   6  =1          case  0x06: //整机测试命令  
  83   6  =1                           if ( (BUFF5 == 0xff )&&(!zbh)){
  84   7  =1                           ykz = 1 ;  
  85   7  =1                     ykml = 0xA5 ; 
  86   7  =1                     zjcsml = 1  ; 
  87   7  =1                     sjyfs = 0 ; fjsq = 8 ; fsj = BUFF ; SBUF = 0XFA;
  88   7  =1                     }
  89   6  =1                     break ;  
  90   6  =1                  
  91   6  =1          case  0x07: 
  92   6  =1                           if( txsjcxsj1() == 0 )  break ; 
  93   6  =1                             SBUF = 0XFA ; break ;    
  94   6  =1          case  0x08:
  95   6  =1                           if( txsjcxsj2() == 0 ) break ; 
  96   6  =1                       SBUF = 0XFA ; break ; 
  97   6  =1          case  0x09:
  98   6  =1                           if( txsjcxsj3() == 0 ) break ; 
  99   6  =1                             SBUF = 0XFA ; break ;
 100   6  =1          
 101   6  =1          case  0x0A: break ;//保留 装置自检
 102   6  =1                                      
 103   6  =1          case  0x0B:  //实时数据查询
 104   6  =1                           if(!sjcjbz)  break ;
 105   6  =1                           if(  cssjcx() == 0 ) break ; 
 106   6  =1                             SBUF = 0XFA ; break ;                   
 107   6  =1         //       case  0x0a ~ 0x0F:sjyfs = 0 ; fjsq = 8 ; fsj = BUFF ; SBUF = 0XFA ; break ; //备用命令         
 108   6  =1                      case  0x10:if ( (BUFF5 == 0xaa)&&(!zbh) ){
 109   7  =1                                AD_N = BUFF6 ;
 110   7  =1                                ykz1 = BUFF7 ;
 111   7  =1                                ykz  = 0x10 ; 
 112   7  =1                          ykml = 0xA5 ;  
 113   7  =1                               }
 114   6  =1                                break;
 115   6  =1                                                                                                  
 116   6  =1          }   
 117   5  =1         }
 118   4  =1        }
 119   3  =1       }
 120   2  =1      }
 121   1  =1  }
 122      =1  
 123      =1  //**************************************函数*********************************** 
 124      =1   
 125      =1  //数据发送时使用SUMF  *dzp 数据首址  sjgs 校验数据个数  处理的SUM值
 126      =1  
 127      =1  void  sumf(unsigned char *dpp,unsigned char  sjgs){
 128   1  =1      unsigned char i,temp ;
 129   1  =1      unsigned int sum ;
 130   1  =1      sum = 0xfa ;
 131   1  =1      for(i = 0 ; i<sjgs ;i++)
 132   1  =1        {
C51 COMPILER V7.50   1503CS                                                                12/31/2005 10:44:49 PAGE 16  

 133   2  =1         temp = *dpp ;
 134   2  =1         sum = sum + temp ;
 135   2  =1         dpp++ ;
 136   2  =1        } 
 137   1  =1         *dpp=(char)sum ;  // SUML  
 138   1  =1       }
 139      =1  
 140      =1  //数据接收时使用SUMS  *dzp 数据首址  sjgs 校验数据个数  处理的SUM值
 141      =1  
 142      =1  unsigned char  sums( unsigned char  *dpp){
 143   1  =1      unsigned char i,temp ;
 144   1  =1      unsigned int sum ;
 145   1  =1      sum = 0;
 146   1  =1      for(i=0 ; i<7 ;i++)
 147   1  =1        {
 148   2  =1         temp = *dpp ;
 149   2  =1         sum = sum + temp ;
 150   2  =1         dpp++ ;
 151   2  =1        }
 152   1  =1        return (char)sum ; 
 153   1  =1       }   
 154      =1  /***************************命令发送***************************/    
 155      =1  bit txsjcxsj1(void){    
 156   1  =1  unsigned char  i ;
 157   1  =1  unsigned char   (*dpp)[32] ; 
 158   1  =1          fshc[0] = BUFF5 ;
 159   1  =1    switch ( BUFF5 ) {
 160   2  =1          case 0XA0:  
 161   2  =1      case 0XA1: dpp = dyjcsj     ; break ;
 162   2  =1      case 0XA2:  
 163   2  =1      case 0XA3: dpp = dyjcsj + 1 ; break ;
 164   2  =1      case 0XA4:  
 165   2  =1      case 0XA5: dpp = dyjcsj + 2 ; break ;
 166   2  =1      case 0XA6:  
 167   2  =1      case 0XA7: dpp = dyjcsj + 3 ; break ; 
 168   2  =1      default  : return 0 ;
 169   2  =1          }
 170   1  =1          i = ( BUFF5 & 0x0f ) % 2 ; 
 171   1  =1          if( i == 0 ){
 172   2  =1            for (i = 0 ; i < 16 ;i++ ) 
 173   2  =1            fshc[i+1] = *((*dpp)+i) ;       
 174   2  =1            }
 175   1  =1          else {
 176   2  =1            for (i = 0 ; i < 16 ;i++ ) 
 177   2  =1            fshc[i+1] = *((*dpp)+16+i ) ;
 178   2  =1               }
 179   1  =1           fshc[17]= 0 ;    
 180   1  =1     sumf(fshc,18 );
 181   1  =1     sjyfs = 0 ; 
 182   1  =1     fjsq = 19 ; 
 183   1  =1     fsj = fshc ;
 184   1  =1     return 1 ;       
 185   1  =1  }
 186      =1  
 187      =1  bit txsjcxsj2(void){    
 188   1  =1  unsigned char  i ;
 189   1  =1  unsigned char (*dpp)[74] ; 
 190   1  =1          fshc[0] = BUFF5 ;
 191   1  =1    switch ( BUFF5 ) { 
 192   2  =1      case 0XFB: dpp = kzjcsj     ; break ;
 193   2  =1      case 0XB0: dpp = kzjcsj + 1 ; break ;
 194   2  =1      case 0XB1: dpp = kzjcsj + 2 ; break ; 
C51 COMPILER V7.50   1503CS                                                                12/31/2005 10:44:49 PAGE 17  

 195   2  =1      case 0XB2: dpp = kzjcsj + 3 ; break ;  
 196   2  =1      case 0XB3: dpp = kzjcsj + 4 ; break ;  
 197   2  =1      case 0XB4: dpp = kzjcsj + 5 ; break ; 
 198   2  =1      case 0XB5: dpp = kzjcsj + 6 ; break ;
 199   2  =1      case 0XB6: dpp = kzjcsj + 7 ; break ;
 200   2  =1      case 0XB7: dpp = kzjcsj + 8 ; break ; 
 201   2  =1            default  : return 0 ;
 202   2  =1            } 
 203   1  =1   for ( i = 0 ; i < 74 ; i++ ) 
 204   1  =1           fshc[i+1] = *((*dpp)+i) ;        
 205   1  =1     sumf( fshc , 75 );
 206   1  =1     sjyfs = 0   ;
 207   1  =1     fjsq  = 76   ; 
 208   1  =1     fsj   = fshc ;
 209   1  =1     return 1;        
 210   1  =1  } 
 211      =1  
 212      =1  bit  txsjcxsj3(void){    
 213   1  =1  unsigned char  i ;
 214   1  =1  unsigned char  (*dpp)[16] ;      
 215   1  =1          fshc[0]=BUFF5;
 216   1  =1    switch ( BUFF5 ) { 
 217   2  =1            case 0XC0:  dpp = otjcsj  ; break;
 218   2  =1            case 0XC1:  dpp = otjcsj+1; break; 
 219   2  =1            default  : return 0; 
 220   2  =1            }  
 221   1  =1          for (i = 0 ; i < 16 ;i++ ) 
 222   1  =1          fshc[i+1] = *((*dpp)+i) ; 
 223   1  =1    fshc[17]= 0; 
 224   1  =1    sumf( fshc , 18 ); 
 225   1  =1    sjyfs = 0 ; 
 226   1  =1    fjsq=19; 
 227   1  =1    fsj=fshc;     
 228   1  =1    return 1 ;    
 229   1  =1  }
 230      =1  
 231      =1  bit cssjcx(void){
 232   1  =1  unsigned char  i ,*dpp ; 
 233   1  =1  if(BUFF5 == 0XE0){
 234   2  =1          dpp = sssjbuf ;
 235   2  =1    fshc[0]=BUFF5;
 236   2  =1    for (i = 0 ; i < 84  ;i ++ ) 
 237   2  =1          fshc[i+1] = *(dpp+i) ;   
 238   2  =1    sumf( fshc , 85 ); 
 239   2  =1    sjyfs = 0 ; 
 240   2  =1    fjsq = 86 ; 
 241   2  =1    fsj = fshc;   
 242   2  =1    return 1 ;    
 243   2  =1   }
 244   1  =1   return 0 ;   
 245   1  =1  
 246   1  =1  } 
  17          //****************************函数定义************************************
  18          
  19          void cdog(void);//看门狗  
  20          void H450V(void);//空载 
  21          void H380V(void);
  22          void H330V(void);
  23          void H450V1(void);//带负载
  24          void H380V1(void);
  25          void H330V1(void);
  26          void FDY(void)   ;
C51 COMPILER V7.50   1503CS                                                                12/31/2005 10:44:49 PAGE 18  

  27          void FDY2(void)  ;//分负载,电源不分 
  28          unsigned char  DYPD (void) ;// 返回当前合闸电源序号 
  29           
  30          void KZHZ6(unsigned char DYXZ);
  31          void KZHZ70(void); //分负载
  32          void KZHZ10(void);
  33          
  34          void KZHLHZ(void); //合负载
  35           
  36          void r_2543( unsigned char val ) ; 
  37          void rd2543(void) ;//延时采集 8路
  38          void rd2543_8(void);//直接采集8路 
  39          void rd2543_1(unsigned char temp);//采集指定一路数据
  40           
  41          void CSTZ(void) ;
  42          
  43          /********************定时器中断*******************************************/
  44          void INT0int (void) interrupt 0  using 2   //外部中断0
  45            { 
  46   1         cxwbz = 1 ;
  47   1         tjs = 0 ;
  48   1         txch1 = TH0;
  49   1         txcl1 = TL0;
  50   1        }
  51           void INT1int (void) interrupt 2  using 2   //外部中断1
  52            {

⌨️ 快捷键说明

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