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

📄 osc2.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 449   1                 {
 450   2                  S1DAT=COMM;
 451   2                  S1CON=0xC5; //STA=0   STO=0    SI=0     AA=1
 452   2                 }
 453   1         if (S1STA==0x20)
 454   1                 {
 455   2                  FF=1;
 456   2                  S1CON=0xD5; //STA=0   STO=1    SI=0     AA=1
 457   2                 }
 458   1         if (S1STA==0x28)
 459   1                 {
 460   2                  S1CON=0xD5; //STA=0   STO=1    SI=0     AA=1
 461   2                  FF=1;
 462   2                 }
 463   1         if (S1STA==0x30)
 464   1                 {
 465   2                  FF=1;
 466   2                  S1CON=0xD5; //STA=0   STO=1    SI=0     AA=1
 467   2                 }
 468   1         if (S1STA==0x38)
 469   1                 {
 470   2                  S1CON=0xE5; //STA=1   STO=0    SI=0     AA=1
 471   2                 }
 472   1         if (S1STA==0x40)
 473   1                 {
 474   2                  S1CON=0xC5; //STA=0   STO=0    SI=0     AA=1
 475   2                 }
 476   1         if (S1STA==0x48)
 477   1                 {
 478   2                  FF=1;
 479   2                  S1CON=0xD5; //STA=0   STO=1    SI=0     AA=1
 480   2                 }
 481   1         if (S1STA==0x50)
 482   1                 {
 483   2                  GET=S1DAT;
 484   2                  S1CON=0xC1; //STA=0   STO=0    SI=0     AA=0
 485   2                 }
 486   1         if (S1STA==0x58)
 487   1                 {
 488   2                      FF=1;
C51 COMPILER V7.06   OSC2                                                                  09/21/2005 09:00:12 PAGE 9   

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

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

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

 675   4                              }       
 676   3                      }       

⌨️ 快捷键说明

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