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

📄 serial1.lst

📁 c8051f020实现4个 产UART 口
💻 LST
📖 第 1 页 / 共 3 页
字号:
 419                          }               
 420                           DiZh_TX_is_over_B=0;   //抢到标志,处暑、延时100MS再发, 串间隔
 421                           os_wait2(K_TMO, 50);    //100ms
 422                                    
 423                }
 424          
 425                */
 426          
C51 COMPILER V7.50   SERIAL1                                                               06/10/2007 23:11:20 PAGE 8   

 427          //==============================w2812837@163.com=================================================
 428          
 429          
 430          
 431          
 432          //等待得到控制权
 433          //等待得到控制权
 434          //只有得到权限才能更新缓冲区数据
 435          
 436          /*
 437          void  Get_Fa_Key_buffer_Right( )
 438                {      xdata uchar ttt=0;
 439          
 440                          while(KEY_TX_is_over_B==0)   {     //TX所完标志位,没发完再发时要等待                   
 441                                   os_wait2(K_TMO, 50);   //100ms
 442                                   if(ttt++>90)               //延时5秒  到也认为发送有空
 443                                           break;
 444                          }               
 445                           KEY_TX_is_over_B=0;   //抢到标志,处暑、延时100MS再发, 串间隔
 446                           os_wait2(K_TMO, 50);    //100ms
 447                                    
 448                }
 449          */
 450           /**********************************************************************
 451          **函数原型:   void  Fa_Key_buffer(uint Lenthg)
 452          **入口参数:   无
 453          **出口参数:   无
 454          **返 回 值:   无
 455          **说    明:  将KEY_TX_Buff[]发送子程序。
 456                      // 发送入口,TX_Len:所发送的字节数
 457                      //           KEY_TX_Buff[]: 发送缓冲区
 458                      //           TxIe=1;
 459                      //           KEY_TX_cnt=0;       100MS 串间隔
 460          ************************************************************************/
 461          void  Fa_Key_buffer(uint Lenthg)
 462                { 
 463   1      
 464   1                      // En_FA_485;   //  if use 485 ic
 465   1                    
 466   1      
 467   1                       KEY_TX_cnt=0;    
 468   1                       KEY_TX_Len=Lenthg;       //TX_LEN发送前置好数值
 469   1                     
 470   1                       if(bUartBusy==0){      //判断发送中断是否处于激活状态,若没有激活则:
 471   2                              SCON1|=2;  //TI=1;                      //激活MCU的串口发送程序                 
 472   2                              bUartBusy=1;    //置发送程序已经激活的标志
 473   2                       }
 474   1      
 475   1                 
 476   1            }
 477          //==============================w2812837@163.com=================================================
 478          
 479          
 480          
 481          
 482           /**********************************************************************
 483          **函数原型:   void  Fa_F76_buffer(uint Lenthg)
 484          **入口参数:   无
 485          **出口参数:   无
 486          **返 回 值:   无
 487          **说    明:  将F76_TX_Buff[]发送子程序。
 488                      // 发送入口,TX_Len:所发送的字节数
C51 COMPILER V7.50   SERIAL1                                                               06/10/2007 23:11:20 PAGE 9   

 489                      //           F76_TX_Buff[]: 发送缓冲区
 490                      //           TxIe=1;
 491                      //           F76_TX_cnt=0;       100MS 串间隔
 492          ************************************************************************/
 493          void  Fa_F76_buffer_0xee0xee(uchar Fun,uchar *Poit,uint Lenthg) reentrant 
 494                { 
 495   1                  uchar i,j;
 496   1                      
 497   1                    //Get_Fa_F76_buffer_Right( );
 498   1                      //Clr_F76_RX_Buff();
 499   1                      F76_RX_cnt=0;
 500   1                      Xin_F76_RX_B=0;
 501   1                      //En_FA_485shou;     //  if use 485 ic
 502   1      
 503   1      
 504   1                       F76_TX_Buff[0]=0xEE;;
 505   1                        F76_TX_Buff[1]=0xEE;
 506   1                        F76_TX_Buff[2]=Fun ;
 507   1                        F76_TX_Buff[3]=Lenthg;
 508   1                       for(i=0;i<Lenthg;i++) {
 509   2                             F76_TX_Buff[4+i]=*Poit++;
 510   2                       }
 511   1                        F76_TX_Buff[4+i]=0;
 512   1                       j=0;
 513   1                       for(j=0;j<(Lenthg+2);j++)
 514   1                             F76_TX_Buff[4+i]+= F76_TX_Buff[j+2];
 515   1                        F76_TX_Buff[4+i+1]=0xab;
 516   1      
 517   1                       
 518   1                      
 519   1      
 520   1                       F76_TX_cnt=0;    
 521   1                       F76_TX_Len=Lenthg+6;       //TX_LEN发送前置好数值
 522   1                     
 523   1                       if(bUartBusy==0){      //判断发送中断是否处于激活状态,若没有激活则:
 524   2                              SCON1|=2;  //TI=1;                      //激活MCU的串口发送程序                 
 525   2                              bUartBusy=1;    //置发送程序已经激活的标志
 526   2                       }
 527   1      
 528   1                 
 529   1            }
 530          //==============================w2812837@163.com=================================================
 531          
 532          
 533          
 534          
 535           /**********************************************************************
 536          **函数原型:   void  Fa_F76_buffer(uint Lenthg)
 537          **入口参数:   无
 538          **出口参数:   无
 539          **返 回 值:   无
 540          **说    明:  将F76_TX_Buff[]发送子程序。
 541                      // 发送入口,TX_Len:所发送的字节数
 542                      //           F76_TX_Buff[]: 发送缓冲区
 543                      //           TxIe=1;
 544                      //           F76_TX_cnt=0;       100MS 串间隔
 545          ************************************************************************/
 546          void  Fa_F76_buffer(uchar Fun,uchar *Poit,uint Lenthg) reentrant 
 547                { 
 548   1                  uchar i,j;
 549   1                      
 550   1                  //Get_Fa_F76_buffer_Right( );
C51 COMPILER V7.50   SERIAL1                                                               06/10/2007 23:11:20 PAGE 10  

 551   1                      //Clr_F76_RX_Buff();
 552   1                      F76_RX_cnt=0;
 553   1                      Xin_F76_RX_B=0;
 554   1                      //En_FA_485shou;     //  if use 485 ic
 555   1      
 556   1                      i=0;
 557   1                       F76_TX_Buff[0]=0xEE;;
 558   1                        F76_TX_Buff[1]=0xEE;
 559   1                        F76_TX_Buff[2]=Fun ;
 560   1                        F76_TX_Buff[3]=Lenthg;
 561   1                       for(i=0;i<Lenthg;i++) {
 562   2                             F76_TX_Buff[4+i]=*Poit++;
 563   2                       }
 564   1                        F76_TX_Buff[4+i]=0;
 565   1                       j=0;
 566   1                       for(j=0;j<(Lenthg+2);j++)
 567   1                             F76_TX_Buff[4+i]+= F76_TX_Buff[j+2];
 568   1                        F76_TX_Buff[4+i+1]=0xab;
 569   1      
 570   1                       
 571   1                      
 572   1      
 573   1                       F76_TX_cnt=0;    
 574   1                       F76_TX_Len=Lenthg+6;       //TX_LEN发送前置好数值
 575   1                     
 576   1                       if(bUartBusy==0){      //判断发送中断是否处于激活状态,若没有激活则:
 577   2                              SCON1|=2;  //TI=1;                      //激活MCU的串口发送程序                 
 578   2                              bUartBusy=1;    //置发送程序已经激活的标志
 579   2                       }
 580   1      
 581   1                 
 582   1            }
 583          //==============================w2812837@163.com=================================================
 584          
 585          
 586          //清接收区为0 
 587          void Clr_DiZh_Rx_Buff()  {
 588   1            uint i;
 589   1      
 590   1                for (i=0;i<DiZh_BUFF_MAX;i++)
 591   1                          DiZh_Rx_Buff[i]=0;
 592   1      
 593   1      }
 594          
 595          
 596          //清接收区为0 
 597          void Clr_KEY_RX_Buff()  {
 598   1            uint i;
 599   1      
 600   1                for (i=0;i<KEY_BUFF_MAX;i++)
 601   1                          KEY_RX_Buff[i]=0;
 602   1      
 603   1      }
 604          
 605          
 606          //清接收区为0 
 607          void Clr_F76_RX_Buff()  {
 608   1            uint i;
 609   1      
 610   1                for (i=0;i<F76_BUFF_MAX;i++)
 611   1                          F76_RX_Buff[i]=0;
 612   1      
C51 COMPILER V7.50   SERIAL1                                                               06/10/2007 23:11:20 PAGE 11  

 613   1      }
 614          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1500    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    452    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =     14    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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