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

📄 main.lst

📁 基于C8051F310的485集线器
💻 LST
📖 第 1 页 / 共 2 页
字号:
 241          { 
C51 COMPILER V8.16   MAIN                                                                  12/27/2008 15:34:42 PAGE 5   

 242   1              if(RXD1 == 1)
 243   1              {
 244   2                      COM1_OK = 0;
 245   2                      PCA0CPM0 = 0x31;           //开捕捉中断
 246   2              }
 247   1              else 
 248   1              {
 249   2                      if(COM1_OK == 0)
 250   2                      {       
 251   3                              os_wait( K_TMO,20,0);     //延迟约20MS后,判断RXD是否恢复为高电平
 252   3                              if(RXD1 == 1)
 253   3                              { 
 254   4                                      COM1_OK = 0;                      //通道1正常
 255   4                                      PCA0CPM0 = 0x31; 
 256   4                              }
 257   3                              else
 258   3                      {  
 259   4                                      TXD_BUS = 1;
 260   4                                      COM1_OK = 1;             //通道1不正常
 261   4                                      PCA0CPM0 = 0x30;        //禁止PCA捕捉模块0中断产生
 262   4                                      TXD_BUS = 1;
 263   4                                      P2 = 0xff;
 264   4                              }
 265   3                       }
 266   2                 }
 267   1      }
 268          /***************************************************************************
 269          函数名称:ComDisplay()
 270          简要描述:RXD通道运行状态显示,COMn_OK = 0正常,1不正常
 271          输入:    无
 272          输出:    无
 273          修改日志:
 274          ***************************************************************************/
 275          void Com2Display()
 276          {       
 277   1              if(RXD2 == 1)
 278   1              {
 279   2                      COM2_OK = 0;
 280   2                      PCA0CPM1 = 0x31;         //开捕捉中断
 281   2              }
 282   1              else 
 283   1              {
 284   2                      if(COM2_OK == 0)
 285   2                      {
 286   3                              os_wait( K_TMO,20,0);
 287   3                              if(RXD2 == 1)
 288   3                              {
 289   4                              COM2_OK = 0;
 290   4                                      PCA0CPM1 = 0x31;
 291   4                              }
 292   3                              else
 293   3                      {
 294   4                                      TXD_BUS = 1;
 295   4                              COM2_OK = 1;             
 296   4                              PCA0CPM1 = 0x30;         //禁止PCA捕捉模块1中断产生
 297   4                                      TXD_BUS = 1;
 298   4                              P2 = 0xff;
 299   4                              }
 300   3                       } 
 301   2                 }    
 302   1      }
 303          /***************************************************************************
C51 COMPILER V8.16   MAIN                                                                  12/27/2008 15:34:42 PAGE 6   

 304          函数名称:ComDisplay()
 305          简要描述:RXD通道运行状态显示,COMn_OK = 0正常,1不正常
 306          输入:    无
 307          输出:    无
 308          修改日志:
 309          ***************************************************************************/
 310          void Com3Display()      
 311          {
 312   1              if(RXD3 == 1)
 313   1              {
 314   2                      COM3_OK = 0;
 315   2                      PCA0CPM2 = 0x31;
 316   2              }
 317   1              else 
 318   1              {
 319   2                      if(COM3_OK == 0)
 320   2                      {
 321   3                              os_wait( K_TMO,20,0);
 322   3                              if(RXD3 == 1)
 323   3                              { 
 324   4                                      COM3_OK = 0;
 325   4                                      PCA0CPM2 = 0x31;
 326   4                              }
 327   3                               else
 328   3                              {  
 329   4                                      TXD_BUS = 1;
 330   4                                      COM3_OK = 1;             
 331   4                                      PCA0CPM2 = 0x30;          //禁止PCA捕捉模块2中断产生
 332   4                                      TXD_BUS = 1;
 333   4                                      P2 = 0xff;
 334   4                              }
 335   3                      }       
 336   2                 }
 337   1      }
 338          /***************************************************************************
 339          函数名称:ComDisplay()
 340          简要描述:RXD通道运行状态显示,COMn_OK = 0正常,1不正常
 341          输入:    无
 342          输出:    无
 343          修改日志:
 344          ***************************************************************************/
 345          void Com4Display()
 346          {       
 347   1              if(RXD4 == 1)
 348   1              {
 349   2                      COM4_OK = 0;
 350   2                      PCA0CPM3 = 0x31;
 351   2              }
 352   1              else 
 353   1              {
 354   2                      if(COM4_OK == 0)
 355   2              {
 356   3                              os_wait( K_TMO,20,0);
 357   3                              if(RXD4 == 1)
 358   3                              { 
 359   4                                      COM4_OK = 0;
 360   4                                      PCA0CPM3 = 0x31;        //开捕捉中断
 361   4                              }
 362   3                              else
 363   3                      { 
 364   4                                      TXD_BUS = 1;
 365   4                                      COM4_OK = 1;            
C51 COMPILER V8.16   MAIN                                                                  12/27/2008 15:34:42 PAGE 7   

 366   4                                      PCA0CPM3 = 0x30;        //禁止PCA捕捉模块3中断产生
 367   4                                      TXD_BUS = 1;
 368   4                                      P2 = 0xff;                              
 369   4                              }
 370   3                      }       
 371   2               }
 372   1      }
 373          /***************************************************************************
 374          函数名称:ComDisplay()
 375          简要描述:RXD通道运行状态显示,COMn_OK = 0正常,1不正常
 376          输入:    无
 377          输出:    无
 378          修改日志:
 379          ***************************************************************************/    
 380          void Com5Display()
 381          {       
 382   1              if(RXD5 == 1)
 383   1              {
 384   2                      COM5_OK = 0;
 385   2                      PCA0CPM4 = 0x31;
 386   2              }
 387   1              else 
 388   1              {
 389   2                      if(COM5_OK == 0)
 390   2                      {
 391   3                              os_wait( K_TMO,20,0);
 392   3                              if(RXD5 == 1)
 393   3                              {
 394   4                              PCA0CPM4 = 0x31; 
 395   4                                      COM5_OK = 0;
 396   4                              }
 397   3                              else
 398   3                      {  
 399   4                                      TXD_BUS = 1;
 400   4                                      COM5_OK = 1;            
 401   4                                      PCA0CPM4 = 0x30;         //禁止PCA捕捉模块4中断产生
 402   4                                      TXD_BUS = 1;
 403   4                                      P2 = 0xff;
 404   4                      }
 405   3                  }
 406   2              }
 407   1      }
 408          /***************************************************************************
 409          函数名称:Task0()
 410          简要描述:任务0,初始化,建立任务1,2
 411          输入:    无
 412          输出:    无
 413          修改日志:
 414          ***************************************************************************/
 415          void Task0() _task_ 0
 416          { 
 417   1              EA=0;
 418   1              Init_Device();
 419   1              EA = 1; 
 420   1          os_create_task(1);
 421   1          os_create_task(2);
 422   1              os_create_task(3);
 423   1              os_create_task(4);
 424   1              os_create_task(5);
 425   1              os_create_task(6);
 426   1              os_delete_task(0);
 427   1      }
C51 COMPILER V8.16   MAIN                                                                  12/27/2008 15:34:42 PAGE 8   

 428          /*******************任务1 通道状态灯显示****************************/
 429          void Task1() _task_ 1
 430          {  while(1)
 431   1       {
 432   2       Com1Display();
 433   2        }
 434   1      }
 435          /*******************任务2 通道状态灯显示****************************/
 436          void Task2() _task_ 2
 437          {  while(1)
 438   1       {
 439   2       Com2Display();
 440   2        }
 441   1      }
 442          /*******************任务3 通道状态灯显示****************************/
 443          void Task3() _task_ 3
 444          {  while(1)
 445   1       {
 446   2       Com3Display();
 447   2        }
 448   1      }
 449          /*******************任务4 通道状态灯显示****************************/
 450          void Task4() _task_ 4
 451          {  while(1)
 452   1       {
 453   2       Com4Display();
 454   2        }
 455   1      }
 456          /*******************任务5 通道状态灯显示****************************/
 457          void Task5() _task_ 5
 458          {  while(1)
 459   1       {
 460   2       Com5Display();
 461   2        }
 462   1      }
 463          /*******************任务6 系统状态灯显示****************************/
 464          void Task6() _task_ 6
 465          {       
 466   1        while(1)
 467   1        {
 468   2          os_wait( K_TMO,500,0);   //延时500MS                
 469   2              SYS_RUNNING = ~SYS_RUNNING;     
 470   2              }
 471   1      }


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


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

⌨️ 快捷键说明

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