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

📄 zijian_task.lst

📁 c8051f020实现4个 产UART 口
💻 LST
📖 第 1 页 / 共 2 页
字号:
 241          
 242          uchar   ZiJian_DiZhenYi_Once()  {
 243   1              
 244   1                    bit okbb=0;
 245   1      
 246   1                    MoveByte(DiZh_Tx_Buff, (uchar *)Dizh_ZiJian_Command, 8);
 247   1                     Xin_DiZh_RX_B=0;
 248   1      
 249   1                       //FA_DiZhen_Buff();
 250   1                       DiZh_TX_Len=4;  // DiZh_Tx_Buff[3]+6;          
 251   1                       DiZh_TX_cnt=0;                
 252   1                       if(bUartBusy==0){      //判断发送中断是否处于激活状态,若没有激活则:
 253   2                                      SCON1|=2;  //TI=1;                      //激活MCU的串口发送程序                 
 254   2                                      bUartBusy=1;    //置发送程序已经激活的标志
 255   2                       }
 256   1                      //FA_DiZhen_Buff();
 257   1      
 258   1                       okbb=0;
 259   1                       os_wait2(K_TMO,60);    
 260   1                       if(Xin_DiZh_RX_B)  {
 261   2                                    Xin_DiZh_RX_B=0;
 262   2                                    if(strstr(DiZh_Rx_Buff,"TU \r")!=0) {
 263   3                                      
 264   3                                               //如果收到确ok
 265   3                                                 okbb=1;
 266   3                                              
 267   3                                      }
 268   2                      }       
 269   1                    else {
 270   2                               Para_all_True.DiZhenYi_status[0]=0;  //不正常
 271   2                           Para_all_True.Is_DiZhenYi_Ok=0;     //不正常
 272   2                           return(0);
 273   2                      } 
 274   1                       
 275   1                      if(okbb==1)  {
 276   2                                  Para_all_True.DiZhenYi_status[0]=1;  //正常
 277   2                                  Para_all_True.Is_DiZhenYi_Ok=1;   //正常
 278   2                      }
 279   1                      else  {
 280   2                               Para_all_True.DiZhenYi_status[0]=0;  //不正常
 281   2                               Para_all_True.Is_DiZhenYi_Ok=0;     //不正常
 282   2      
 283   2                      }
 284   1                       return(1);
 285   1      }
 286                                                                                                  
 287          /*
 288           2字节数据 (Byte1Byte2)
 289            Byte1:  0:地震仪发生故障,1:地震仪正常工作
 290          Byte2:  (备用)
 291          
 292          */
 293          
 294          
 295          
 296          
 297          
 298          /**********************************************************************
 299          **函数原型:   void Attand_485(void)
 300          **入口参数:     Xin_F76_RX_B=1
 301          **出口参数:   无
C51 COMPILER V7.50   ZIJIAN_TASK                                                           06/10/2007 23:11:23 PAGE 6   

 302          **返 回 值:   无
 303          **说    明:  处理报警板  485   命令之子程序。
 304          ************************************************************************/
 305          
 306          /*
 307          void F76_Attand_485(void)         //注:中断里面使用寄存器组0,??是否与主程序有冲突
 308            {  unsigned int i;     //     不用寄存器组0的话,RW24XX不能正常读写时钟
 309               uchar j;  //,Mlen;
 310               uchar fun;
 311               //uchar Tem_lei;
 312               uchar sum;
 313              // uchar *Poit;
 314              //uchar Tem_nuff[32];
 315             
 316              fun=0;
 317              if(  Xin_F76_RX_B==1)
 318                  {
 319                    //Wait(250);
 320                      Xin_F76_RX_B=0;
 321                    i=F76_RX_Buff[1];
 322                    i=i+2;
 323                    sum=0;
 324                    //goto dddd;
 325                    for(j=0;j<i;j++)
 326                       {
 327                         sum=sum+F76_RX_Buff[j];                  //  求代数和
 328                       }
 329                    if(sum==F76_RX_Buff[i]&&F76_RX_Buff[i+1]==0xab)  //校验和等且最后的字节为0XAB
 330                       {
 331          
 332                           switch (F76_RX_Buff[0])
 333                              {
 334                                        case 0:      //接收到error ********************************************************
             -***************
 335          
 336                                         break;
 337                                         case 1:      //接收到OK **********************************************************
             -*************
 338                                                            
 339                                         break;
 340                                         case 2:      //***********************************************************
 341          
 342                                            
 343                                        break;
 344                                          case 3:      //**********************************************************
 345                                          
 346                                         break;
 347                                            case 4:      //********************************************************
 348                                            
 349                                         break;                   
 350                                            case 5:      //************* 查询所返回数据:Byte2 Byte1 Byte0**************************************
             -*****
 351                                                    
 352          
 353                                                             Ying_da_ok(5);         
 354                                         break;     
 355                                            case 6:      //接收警情的功能码子程序************************************************************
 356                                               
 357                                                                    
 358                                         break;           
 359          
 360                                                             //状态上传
C51 COMPILER V7.50   ZIJIAN_TASK                                                           06/10/2007 23:11:23 PAGE 7   

 361                                                            //  10:发生 车辆熄火
 362                                                                  //11:发生 车辆点火
 363          
 364                                            case 7:    //***********************************
 365                                                
 366                                        break;
 367                                                          
 368                                             //车辆的当前状态(布防,撤防, 修车)变化上传送
 369                                            case 8:    //***********************************
 370                                               
 371                                        break;
 372                                        case 16:    //***********************************
 373                                                   Ying_da_ok(16);
 374                                        break;
 375                                        case 17:   //********************************
 376                                                   Ying_da_ok(17);
 377                                        break;
 378                                        case 18:    //****************************
 379                                                 
 380                                         break;
 381                                        default:  ;
 382          
 383                                         break;
 384                              }     // switch (GPRS_F76_RX_Buff[0])   de
 385                       } //if de
 386                       else   {
 387          
 388                                Ying_da_error(F76_RX_Buff[0]);
 389          
 390                        }
 391             }
 392          }
 393          
 394          
 395          */
 396          
 397          
 398          
 399          //=====================================================================================
 400             //------以上是对上位机的485命令进行处理------------------------------
 401          //=====================================================================================
 402          
 403          
 404          
 405          
 406          
 407          
 408          
 409          
 410          
 411          
 412          
 413          
 414          
 415          
 416          
 417          
 418          
 419          
 420          
 421          /**********************************************************************
 422          **函数原型:   void  Ying_da_error(uchar)
C51 COMPILER V7.50   ZIJIAN_TASK                                                           06/10/2007 23:11:23 PAGE 8   

 423          **入口参数:   485的功能码uchar fun
 424          **出口参数:   无
 425          **返 回 值:   无
 426          **说    明:  485应答出错信息的子程序。
 427          ************************************************************************/
 428          void  Ying_da_error(uchar fun)
 429                {
 430   1             
 431   1                  //========== get fa 232 right=============================   
 432   1                    while(F76_TX_is_over_B==0)   {     //TX所完标志位,没发完再发时要等待                     
 433   2                               os_wait2(K_TMO, 25);   //50ms                  
 434   2                      }               
 435   1                       F76_TX_is_over_B=0;   //抢到标志,处暑、延时100MS再发, 串间隔
 436   1                       os_wait2(K_TMO, 5);    //10ms 
 437   1                  //==========get fa 232 right=============================   
 438   1                   Fa_F76_buffer(0,&fun,1);
 439   1            }
 440           //===============================================================================
 441          
 442          
 443          
 444          
 445          
 446          /**********************************************************************
 447          **函数原型:   void   Ying_da_ok(uchar fun)
 448          **入口参数:   485的功能码uchar fun
 449          **出口参数:   无
 450          **返 回 值:   无
 451          **说    明:  485应答正确信息的子程序。
 452          ************************************************************************/
 453          void   Ying_da_ok(uchar fun)
 454               {
 455   1              
 456   1                        
 457   1                  //========== get fa 232 right=============================   
 458   1                    while(F76_TX_is_over_B==0)   {     //TX所完标志位,没发完再发时要等待                     
 459   2                               os_wait2(K_TMO, 25);   //50ms                  
 460   2                      }               
 461   1                       F76_TX_is_over_B=0;   //抢到标志,处暑、延时100MS再发, 串间隔
 462   1                       os_wait2(K_TMO, 5);    //10ms 
 463   1                  //==========get fa 232 right=============================   
 464   1                   Fa_F76_buffer(1,&fun,1);
 465   1                 
 466   1           }
 467           //===============================================================================
 468          
 469          
 470          
 471          
 472          
 473          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    544    ----
   CONSTANT SIZE    =     71    ----
   XDATA SIZE       =      2       2
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2       2
END OF MODULE INFORMATION.

C51 COMPILER V7.50   ZIJIAN_TASK                                                           06/10/2007 23:11:23 PAGE 9   


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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