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

📄 osc2_0929.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 460   2                  S1CON=0xC5; //STA=0   STO=0    SI=0     AA=1
 461   2                 }
 462   1         if (S1STA==0x20)
 463   1                 {
 464   2                  FF=1;
 465   2                  S1CON=0xD5; //STA=0   STO=1    SI=0     AA=1
 466   2                 }
 467   1         if (S1STA==0x28)
 468   1                 {
 469   2                  S1CON=0xD5; //STA=0   STO=1    SI=0     AA=1
 470   2                  FF=1;
 471   2                 }
 472   1         if (S1STA==0x30)
 473   1                 {
 474   2                  FF=1;
 475   2                  S1CON=0xD5; //STA=0   STO=1    SI=0     AA=1
 476   2                 }
 477   1         if (S1STA==0x38)
 478   1                 {
 479   2                  S1CON=0xE5; //STA=1   STO=0    SI=0     AA=1
 480   2                 }
 481   1         if (S1STA==0x40)
 482   1                 {
 483   2                  S1CON=0xC5; //STA=0   STO=0    SI=0     AA=1
 484   2                 }
 485   1         if (S1STA==0x48)
 486   1                 {
 487   2                  FF=1;
 488   2                  S1CON=0xD5; //STA=0   STO=1    SI=0     AA=1
 489   2                 }
C51 COMPILER V7.06   OSC2_0929                                                             03/27/2006 17:02:25 PAGE 9   

 490   1         if (S1STA==0x50)
 491   1                 {
 492   2                  GET=S1DAT;
 493   2                  S1CON=0xC1; //STA=0   STO=0    SI=0     AA=0
 494   2                 }
 495   1         if (S1STA==0x58)
 496   1                 {
 497   2                      FF=1;
 498   2                      S1CON=0xD5; //STA=0   STO=1   SI=0     AA=1
 499   2                 }
 500   1      }
 501          
 502          void CT0_int (void) interrupt 6                 //横摆中心
 503          {
 504   1              CTI0=0;
 505   1              CTCON=CTCON&0xFC;
 506   1              if(center_change==1)
 507   1              {
 508   2                      IEN1=IEN1&0XFE;
 509   2                      gate=0;
 510   2                      osc_enable=1;
 511   2                      center_excursion=0;
 512   2                      center_change=0;
 513   2              }
 514   1              else
 515   1              {
 516   2                      if(decrease==1)
 517   2                      {
 518   3                              temp_c_decrease++;
 519   3      
 520   3                              if(temp_c_decrease%2==0)
 521   3                                      share_decrease++;
 522   3                              if(share_decrease<c_decrease)
 523   3                              {
 524   4                                      CTCON=CTCON|0x08;
 525   4                                      out0=out0_decrease*c_decrease/(c_decrease-share_decrease);
 526   4                                      out1=out1_decrease*(c_decrease-share_decrease)/c_decrease;
 527   4                                      out2=2*out1;
 528   4                                      COM=0X36;
 529   4                                      COUNT0=out0%256;
 530   4                                      COUNT0=out0/256;
 531   4                                      COM=0X76;
 532   4                                      COUNT1=out1%256;
 533   4                                      COUNT1=out1/256;
 534   4                                      COM=0XB6;
 535   4                                      COUNT2=out1%256;
 536   4                                      COUNT2=out1/256;
 537   4                                      sec_center=1;
 538   4                                      IEN1=IEN1|0x02;
 539   4                              }
 540   3                              else
 541   3                              {
 542   4                                      gate=0;                 //关8254门控信号
 543   4                                      CTCON=CTCON&0XF0;
 544   4                                      IEN1=IEN1&0XFC;         //禁止CT0,CT1
 545   4                                      decrease_ok=1;
 546   4                              }
 547   3                              if(decreased==0)
 548   3                                      decreased=1;
 549   3                      }
 550   2                      else
 551   2                      {
C51 COMPILER V7.06   OSC2_0929                                                             03/27/2006 17:02:25 PAGE 10  

 552   3                              if(osc==1)
 553   3                              {
 554   4      //                              gate=0;                 //关8254门控信号
 555   4      //                              delay(15);
 556   4                                      if(osc_change==1)
 557   4                                      {
 558   5                                              out1=out1+n_da41;
 559   5                                              if(out1<26666)
 560   5                                                      osc_add++;
 561   5                                              else
 562   5                                                      out1=out1-n_da41;
 563   5                                      }
 564   4                                      else
 565   4                                      {
 566   5                                              if(out1>n_da41)
 567   5                                              {
 568   6                                                      out1=out1-n_da41;
 569   6                                                      if(out1>26)
 570   6                                                              osc_dec++;
 571   6                                                      else
 572   6                                                              out1=out1+n_da41;
 573   6                                              }
 574   5                                      }
 575   4                                      out2=out1;
 576   4                                      CTCON=CTCON|0X08;
 577   4                                      COM=0X76;
 578   4                                      COUNT1=out1%256;
 579   4                                      COUNT1=out1/256;
 580   4                                      COM=0XB6;
 581   4                                      COUNT2=out2%256;
 582   4                                      COUNT2=out2/256;
 583   4      //                              IEN1=IEN1|0X02;
 584   4      //                              gate=1;
 585   4                                      sec_center=1;
 586   4                                      osc=0;
 587   4                              }
 588   3                              if(in_sector==1&&K4==ON&&osc_ok==1||in_sector==0)
 589   3                              {
 590   4                                      if(new_sector==1)
 591   4                                      {
 592   5                                              c_t42_l=pp.x[nonce_sec][1]*5;                           //pp.t42_l/10*1000/50
 593   5                                              c_t42_r=pp.x[nonce_sec][2]*5;
 594   5                                              c_change=pp.x[nonce_sec][5]%256;
 595   5                                              temp_out0=900000/pp.x[nonce_sec][3];
 596   5                                              temp_out1=pp.x[nonce_sec][4]*80/3;
 597   5                                              const1=pp.x[nonce_sec][4];                                              
 598   5                                              if(temp_out0!=out0)
 599   5                                              {
 600   6                                                      static_out0=out0;
 601   6                                                      if(temp_out0>static_out0)
 602   6                                                      {
 603   7                                                              delt_out0=temp_out0-static_out0;
 604   7                                                              out0=(static_out0*c_change+delt_out0)/c_change;
 605   7                                                      }
 606   6                                                      else
 607   6                                                      {
 608   7                                                              delt_out0=static_out0-temp_out0;
 609   7                                                              out0=(static_out0*c_change-delt_out0)/c_change;
 610   7                                                      }
 611   6                                                      COM=0X36;
 612   6                                                      COUNT0=out0%256;
 613   6                                                      COUNT0=out0/256;
C51 COMPILER V7.06   OSC2_0929                                                             03/27/2006 17:02:25 PAGE 11  

 614   6                                              }
 615   5                                                      
 616   5                                              if(temp_out1!=out1) 
 617   5                                              {
 618   6                                                      static_out1=out1;
 619   6                                                      if(temp_out1>out1)
 620   6                                                      {
 621   7                                                              delt_out1=temp_out1-out1;
 622   7                                                              out1=static_out1*c_change+delt_out1;
 623   7                                                              out1=out1/c_change;
 624   7                                                      }
 625   6                                                      else
 626   6                                                      {
 627   7                                                              delt_out1=out1-temp_out1;
 628   7                                                              out1=static_out1*c_change-delt_out1;
 629   7                                                              out1=out1/c_change;
 630   7                                                      }
 631   6                                                              
 632   6                                                      COM=0X76;
 633   6                                                      COUNT1=out1%256;
 634   6                                                      COUNT1=out1/256;                                //半个摆宽
 635   6                                                      COM=0XB6;
 636   6                                                      COUNT2=out1%256;
 637   6                                                      COUNT2=out1/256;
 638   6                                              }
 639   5                                              osc_add=0;
 640   5                                              osc_dec=0;
 641   5                                              sec_center=1;
 642   5                                              share=1;
 643   5                                              temp_c_change=0;
 644   5                                      }
 645   4                              
 646   4                                      if(sec_change==1)
 647   4                                      {
 648   5                                              temp_c_change++;
 649   5                                              if(temp_c_change%2==0)
 650   5                                                      share++;
 651   5                                              if(share<=c_change)
 652   5                                              {
 653   6                                                      if(share==c_change||c_change==1)
 654   6                                                      {
 655   7                                                              out0=temp_out0;
 656   7                                                              out1=temp_out1;
 657   7                                                              c_change=0;
 658   7                                                              share=0;
 659   7                                                              temp_c_change=0;
 660   7                                                              sec_change=0;
 661   7                                                      }
 662   6                                                      else
 663   6                                                      {
 664   7                                                              if(temp_out0>static_out0)
 665   7                                                                      out0=static_out0+share*delt_out0/c_change;
 666   7                                                              else if(temp_out0<static_out0)
 667   7                                                                      out0=static_out0-share*delt_out0/c_change;
 668   7                                                              if(temp_out1>static_out1)
 669   7                                                                      out1=static_out1+share*delt_out1/c_change;
 670   7                                                              else if(temp_out1<static_out1)
 671   7                                                                      out1=static_out1-share*delt_out1/c_change;
 672   7                                                      }
 673   6                                                      out2=2*out1;
 674   6                                                      COM=0X36;
 675   6                                                      COUNT0=out0%256;
C51 COMPILER V7.06   OSC2_0929                                                             03/27/2006 17:02:25 PAGE 12  

 676   6                                                      COUNT0=out0/256;
 677   6                                                      COM=0X76;
 678   6                                                      COUNT1=out1%256;
 679   6                                                      COUNT1=out1/256;                                //半个摆宽
 680   6                                                      COM=0XB6;
 681   6                                                      COUNT2=out1%256;
 682   6                                                      COUNT2=out1/256;
 683   6                                                      sec_center=1;
 684   6                                              }
 685   5                                      }
 686   4                              }
 687   3                              else
 688   3                              {
 689   4                                      gate=0;
 690   4                                      CTCON=CTCON&0xF3;
 691   4                                      static_out0=0;
 692   4                                      static_out1=0;

⌨️ 快捷键说明

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