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

📄 temposc2.lst

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

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

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

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

 675   4                                      static_out1=0;
 676   4                                      osc_ok=0;
 677   4                              }       
 678   3                      }       
 679   2                      CTCON=CTCON|0x08;

⌨️ 快捷键说明

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