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

📄 osc3.lst

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

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

 552   5                                              temp_c_change++;
 553   5                                              if(temp_c_change%2==0)
 554   5                                                      share++;
 555   5                                              if(share<=c_change)
 556   5                                              {
 557   6                                                      if(share==c_change||c_change==1)
 558   6                                                      {
 559   7                                                              out0=temp_out0;
 560   7                                                              out1=temp_out1;
 561   7                                                              c_change=0;
 562   7                                                              share=0;
 563   7                                                              temp_c_change=0;
 564   7                                                              sec_change=0;
 565   7                                                              IEN1=IEN1&0XFE; //CT0
 566   7                                                      }
 567   6                                                      else
 568   6                                                      {
 569   7                                                              if(temp_out0>static_out0)
 570   7                                                                      out0=static_out0+share*delt_out0/c_change;
 571   7                                                              else if(temp_out0<static_out0)
 572   7                                                                      out0=static_out0-share*delt_out0/c_change;
 573   7                                                              if(temp_out1>static_out1)
 574   7                                                                      out1=static_out1+share*delt_out1/c_change;
 575   7                                                              else if(temp_out1<static_out1)
 576   7                                                                      out1=static_out1-share*delt_out1/c_change;
 577   7                                                      }
 578   6                                                      out2=2*out1;
 579   6                                                      COM=0X36;
 580   6                                                      COUNT0=out0%256;
 581   6                                                      COUNT0=out0/256;
 582   6                                                      COM=0X76;
 583   6                                                      COUNT1=out1%256;
 584   6                                                      COUNT1=out1/256;                                //半个摆宽
 585   6                                                      COM=0XB6;
 586   6                                                      COUNT2=out1%256;
 587   6                                                      COUNT2=out1/256;
 588   6                                                      sec_center=1;
 589   6                                              }
 590   5                                      }
 591   4                                      if(new_sector==1)
 592   4                                      {
 593   5                                              c_t42_l=pp.x[nonce_sec][1]*5;                           //pp.t42_l/10*1000/50
 594   5                                              c_t42_r=pp.x[nonce_sec][2]*5;
 595   5                                              c_change=pp.x[nonce_sec][5]%256;
 596   5                                              temp_out0=900000/pp.x[nonce_sec][3];
 597   5                                              temp_out1=pp.x[nonce_sec][4]*80/3;
 598   5                                              const1=pp.x[nonce_sec][4];                                              
 599   5                                              if(temp_out0!=out0)
 600   5                                              {
 601   6                                                      static_out0=out0;
 602   6                                                      if(temp_out0>static_out0)
 603   6                                                      {
 604   7                                                              delt_out0=temp_out0-static_out0;
 605   7                                                              out0=(static_out0*c_change+delt_out0)/c_change;
 606   7                                                      }
 607   6                                                      else
 608   6                                                      {
 609   7                                                              delt_out0=static_out0-temp_out0;
 610   7                                                              out0=(static_out0*c_change-delt_out0)/c_change;
 611   7                                                      }
 612   6                                                      COM=0X36;
 613   6                                                      COUNT0=out0%256;
C51 COMPILER V7.06   OSC3                                                                  09/27/2005 14:37:42 PAGE 11  

 614   6                                                      COUNT0=out0/256;
 615   6                                              }
 616   5                                                      
 617   5                                              if(temp_out1!=out1) 
 618   5                                              {
 619   6                                                      static_out1=out1;
 620   6                                                      if(temp_out1>out1)
 621   6                                                      {
 622   7                                                              delt_out1=temp_out1-out1;
 623   7                                                              out1=static_out1*c_change+delt_out1;
 624   7                                                              out1=out1/c_change;
 625   7                                                      }
 626   6                                                      else
 627   6                                                      {
 628   7                                                              delt_out1=out1-temp_out1;
 629   7                                                              out1=static_out1*c_change-delt_out1;
 630   7                                                              out1=out1/c_change;
 631   7                                                      }
 632   6                                                              
 633   6                                                      COM=0X76;
 634   6                                                      COUNT1=out1%256;
 635   6                                                      COUNT1=out1/256;                                //半个摆宽
 636   6                                                      COM=0XB6;
 637   6                                                      COUNT2=out1%256;
 638   6                                                      COUNT2=out1/256;
 639   6                                              }
 640   5                                              osc_add=0;
 641   5                                              osc_dec=0;
 642   5                                              sec_center=1;
 643   5                                              share=1;
 644   5                                              temp_c_change=0;
 645   5                                      }
 646   4                                      c_t2=0;
 647   4                              }
 648   3                              else
 649   3                              {
 650   4                                      gate=0;
 651   4                                      CTCON=CTCON&0xF3;
 652   4                                      static_out0=0;
 653   4                                      static_out1=0;
 654   4                                      osc_ok=0;
 655   4                              }
 656   3                              if(osc==1)
 657   3                              {
 658   4                                      gate=0;                 //关8254门控信号
 659   4                                      delay(15);
 660   4                                      if(osc_change==1)
 661   4                                      {
 662   5                                              out1=out1+pp.da41*80/3;
 663   5                                              osc_add++;
 664   5                                      }
 665   4                                      else
 666   4                                      {
 667   5                                              out1=out1-pp.da41*80/3;
 668   5                                              osc_dec++;
 669   5                                      }
 670   4                                      out2=out1;
 671   4                                      CTCON=CTCON|0X08;
 672   4                                      COM=0X76;
 673   4                                      COUNT1=out1%256;
 674   4                                      COUNT1=out1/256;
 675   4                                      COM=0XB6;
C51 COMPILER V7.06   OSC3                                                                  09/27/2005 14:37:42 PAGE 12  

 676   4                                      COUNT2=out2%256;
 677   4                                      COUNT2=out2/256;
 678   4                                      IEN1=IEN1|0X02;
 679   4                                      gate=1;
 680   4                                      osc=0;
 681   4                              }       
 682   3                      }       
 683   2      //              CTCON=CTCON|0x08;
 684   2      //              IEN1=IEN1|0x02;
 685   2              }
 686   1      }

⌨️ 快捷键说明

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