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

📄 avc_1027.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 504   2                 }
 505   1         if (S1STA==0x40)
 506   1                 {
 507   2                  S1CON=0xC5; //STA=0   STO=0    SI=0     AA=1
 508   2                 }
 509   1         if (S1STA==0x48)
 510   1                 {
 511   2                  FF=1;
 512   2                  S1CON=0xD5; //STA=0   STO=1    SI=0     AA=1
 513   2                 }
 514   1         if (S1STA==0x50)
 515   1                 {
 516   2                  GET=S1DAT;
 517   2                  S1CON=0xC1; //STA=0   STO=0    SI=0     AA=0
 518   2                 }
 519   1         if (S1STA==0x58)
 520   1                 {
 521   2                      FF=1;
 522   2                      S1CON=0xD5; //STA=0   STO=1   SI=0     AA=1
 523   2                 }
 524   1      }
 525          
 526          void CT0_int (void) interrupt 6
 527          {
 528   1              CTI0=0;
 529   1              CTCON=CTCON&0xFC;
 530   1              gate=0;
 531   1              if(lift==1)             //衰减过程
 532   1              {
 533   2                      avc_enable=1;                   //关弧长使能
 534   2                      IEN1=IEN1&0XFE;                 //禁止CT0
 535   2                      lift_complete=1;
 536   2                      lift=0;
 537   2              }
 538   1              else
 539   1              {
 540   2                      if(decrease==0&&pp.k5==ON)
 541   2                      {
 542   3                              if(pp.k1==DC||(pp.k1==PDC&&pp.avc_type==SP&&pulse_base==1))//(pp.avc_type==SP&&pulse_base==1||pp.avc_ty
             -pe==SPB||pp.avc_type==SB&&pulse_base==0)))
 543   3                                      CTCON=CTCON|0x20;
 544   3                      }
 545   2              }
 546   1      
 547   1      }
 548          
 549          void CT2_int (void) interrupt 8                 //电压采样保持脉冲
 550          {
C51 COMPILER V7.06   AVC_1027                                                              09/11/2006 08:22:21 PAGE 10  

 551   1              CTI2=0;
 552   1              CTCON=CTCON&0xCF;
 553   1              if(decrease==0)
 554   1              {
 555   2                      ad_finish=0;                    //AD转换及处理过程
 556   2                      ADCON=0X08;                     //启动AD采样
 557   2              }
 558   1      }
 559          
 560          void CT3_int (void) interrupt 9         //电流脉冲
 561          {
 562   1              CTI3=0;
 563   1              pulse_base=~pulse_base;
 564   1              CTCON=CTCON&0X3F;
 565   1      
 566   1              if(avc_ok==0)                   //开始弧长
 567   1              {
 568   2                      if(pp.avc_type==SB)
 569   2                              temp_avc=temp_u51_b;
 570   2                      else
 571   2                              temp_avc=temp_u51_p;
 572   2                      avc_ok=1;
 573   2                      CTCON=CTCON|0x20;       //CT2下降沿
 574   2                      IEN1=IEN1|0X04;         //允许CT2,采样保持脉冲
 575   2              }
 576   1              else
 577   1              {
 578   2                      if(pp.avc_type==SP)
 579   2                      {
 580   3                              if(pulse_base==0)                       //进入基值
 581   3                              {
 582   4                                      gate=0;
 583   4                                      CTCON=CTCON&0xCF;
 584   4                              }
 585   3                              else
 586   3                              {
 587   4                                      temp_avc=temp_u51_p;
 588   4                                      c_sample=0;
 589   4                                      CTCON=CTCON|0x20;
 590   4                              }
 591   3                      }
 592   2                      else if(pp.avc_type==SB)
 593   2                      {
 594   3                              if(pulse_base==1)
 595   3                              {
 596   4                                      gate=0;
 597   4                                      CTCON=CTCON&0xCF;
 598   4                              }
 599   3                              else
 600   3                              {
 601   4                                      temp_avc=temp_u51_b;
 602   4                                      c_sample=0;
 603   4                                      CTCON=CTCON|0x20;
 604   4                              }
 605   3                      }
 606   2                      else
 607   2                      {
 608   3                              gate=0;
 609   3                              CTCON=CTCON&0xCC;
 610   3                              AD1=0;
 611   3                              AD2=0;
 612   3                              AD3=0;
C51 COMPILER V7.06   AVC_1027                                                              09/11/2006 08:22:21 PAGE 11  

 613   3                              AD4=0;
 614   3                              AD5=0;
 615   3                              new_circle=1;
 616   3                              if(pulse_base==1)
 617   3                                      temp_avc=temp_u51_p;
 618   3                              else
 619   3                                      temp_avc=temp_u51_b;
 620   3                              CTCON=CTCON|0x20;
 621   3                      }
 622   2              }
 623   1      
 624   1      
 625   1              if(pulse_base==1)
 626   1                      CTCON=CTCON|0X80;       //CT3下降沿
 627   1              else
 628   1                      CTCON=CTCON|0X40;       //CT3上升沿
 629   1      }
 630          
 631          void ADC_int (void) interrupt 10
 632          {
 633   1              ADCON=ADCON&0xEF;                       //清ADC中断标志
 634   1              c_sample++;                                                     //2005-3-3
 635   1              adh=ADCH;
 636   1              adl=ADCON&0xC0;
 637   1              adh=adh<<2;
 638   1              adl=adl>>6;
 639   1              ad=adh+adl;
 640   1              da=ad;
 641   1              AD5=(da*5000)/0x3FF;
 642   1              if(new_circle==1)
 643   1              {
 644   2                      new_circle=0;
 645   2                      AD1=AD5;
 646   2                      AD2=AD5;
 647   2                      AD3=AD5;
 648   2                      AD4=AD5;
 649   2              }
 650   1              else
 651   1              {
 652   2                      AD5=(AD5+AD1+AD2+AD3+AD4)/5;
 653   2                      AD1=AD2;
 654   2                      AD2=AD3;
 655   2                      AD3=AD4;
 656   2                      AD4=AD5;
 657   2              }
 658   1              AD5=AD5*6/100;                          //AD5*30/5
 659   1      
 660   1              if(c_sample%5==0)
 661   1              {
 662   2                      if(AD5>=temp_avc)
 663   2                      {
 664   3                              SENS=AD5-temp_avc;
 665   3                              avc_dir=0;
 666   3                      }
 667   2                      else
 668   2                      {
 669   3                              SENS=temp_avc-AD5;
 670   3                              avc_dir=1;
 671   3                      }
 672   2                      if(SENS>=1)
 673   2                      {
 674   3                              switch(SENS)
C51 COMPILER V7.06   AVC_1027                                                              09/11/2006 08:22:21 PAGE 12  

 675   3                              {
 676   4                                      case 1: {
 677   5                                                      COM=0X36;
 678   5                                                      COUNT0=8000%256;                //500HZ
 679   5                                                      COUNT0=8000/256;
 680   5                                                      COM=0X76;
 681   5                                                      COUNT1=4;                       //2p,0.0075mm
 682   5                                                      COUNT1=0;
 683   5                                              }break;
 684   4                                      case 2:
 685   4                                      case 3: {
 686   5                                                      COM=0X36;
 687   5                                                      COUNT0=8000%256;                //500HZ
 688   5                                                      COUNT0=8000/256;
 689   5                                                      COM=0X76;
 690   5                                                      COUNT1=10;                      //5p,0.01875mm 0.1v
 691   5                                                      COUNT1=0;
 692   5      
 693   5                                              }break;
 694   4                                      case 4:
 695   4                                      case 5: {
 696   5                                                      COM=0X36;
 697   5                                                      COUNT0=8000%256;                //500HZ
 698   5                                                      COUNT0=8000/256;
 699   5                                                      COM=0X76;
 700   5                                                      COUNT1=20;
 701   5                                                      COUNT1=0;
 702   5                                                      out1=0;                 //10p,0.0375mm 0.2v
 703   5                                              }break;
 704   4                                      case 6:
 705   4                                      case 7: {
 706   5                                                      COM=0X36;
 707   5                                                      COUNT0=6757%256;
 708   5                                                      COUNT0=6757/256;
 709   5                                                      COM=0X76;
 710   5                                                      COUNT1=32;
 711   5                                                      COUNT1=0;
 712   5                                              }break;
 713   4                                      case 8:
 714   4                                      case 9: {
 715   5                                                      COM=0X36;
 716   5                                                      COUNT0=5141%256;        //778hz
 717   5                                                      COUNT0=5141/256;
 718   5                                                      COM=0X76;
 719   5                                                      COUNT1=42;              //0.08mm 0.4v
 720   5                                                      COUNT1=0;
 721   5                                              }break;
 722   4                                      case 10:{
 723   5                                                      COM=0X36;
 724   5                                                      COUNT0=4000%256;        //1000hz
 725   5                                                      COUNT0=4000/256;
 726   5                                                      COM=0X76;
 727   5                                                      COUNT1=54;              //0.1mm 0.5v
 728   5                                                      COUNT1=0;
 729   5                                              }break;
 730   4                                      default:{
 731   5                                                      COM=0X36;
 732   5                                                      COUNT0=3376%256;        //1185hz
 733   5                                                      COUNT0=3376/256;
 734   5                                                      COM=0X76;
 735   5                                                      COUNT1=64;              //0.12mm 0.6v
 736   5                                                      COUNT1=0;
C51 COMPILER V7.06   AVC_1027                                                              09/11/2006 08:22:21 PAGE 13  

 737   5                                              }break;
 738   4                              }
 739   3      
 740   3                              CTCON=CTCON|0x02;
 741   3                              IEN1=IEN1|0X01;                 //允许CT0,弧长调整长度
 742   3                              avc_enable=0;
 743   3                              gate=1;
 744   3                      }
 745   2                      c_sample=0;
 746   2                      if(pp.k1==DC||(pp.k1==PDC&&(pp.avc_type==SP&&pulse_base==1||pp.avc_type==SP&&pulse_base==1||pp.avc_type=
             -=SPB||pp.avc_type==SB&&pulse_base==0)))
 747   2                              CTCON=CTCON|0x20;
 748   2              }
 749   1              else
 750   1              {
 751   2                      if(pp.k1==DC||(pp.k1==PDC&&(pp.avc_type==SP&&pulse_base==1||pp.avc_type==SP&&pulse_base==1||pp.avc_type=
             -=SPB||pp.avc_type==SB&&pulse_base==0)))
 752   2                              CTCON=CTCON|0x20;
 753   2              }
 754   1              ad_finish=1;                            //AD转换及处理完成
 755   1      }
 756          

⌨️ 快捷键说明

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