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

📄 avc1.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 477   4                              }
 478   3                              else
 479   3                              {
 480   4                                      temp_avc=temp_u51_p;
 481   4                                      c_sample=0;
 482   4                                      CTCON=CTCON|0x20;
 483   4                              }
 484   3                      }
 485   2                      else if(pp.avc_type==SB)
 486   2                      {
 487   3                              if(pulse_base==1)
 488   3                              {
C51 COMPILER V7.06   AVC1                                                                  06/16/2005 14:51:25 PAGE 9   

 489   4                                      gate=0;
 490   4                                      CTCON=CTCON&0xCF;
 491   4                              }
 492   3                              else
 493   3                              {
 494   4                                      temp_avc=temp_u51_b;
 495   4                                      c_sample=0;
 496   4                                      CTCON=CTCON|0x20;
 497   4                              }
 498   3                      }
 499   2                      else
 500   2                      {
 501   3                              gate=0;
 502   3                              CTCON=CTCON&0xCC;
 503   3                              AD1=0;
 504   3                              AD2=0;
 505   3                              AD3=0;
 506   3                              AD4=0;
 507   3                              AD5=0;
 508   3                              new_circle=1;
 509   3                              if(pulse_base==1)
 510   3                                      temp_avc=temp_u51_p;
 511   3                              else
 512   3                                      temp_avc=temp_u51_b;
 513   3                              CTCON=CTCON|0x20;
 514   3                      }
 515   2              }
 516   1      
 517   1      
 518   1              if(pulse_base==1)
 519   1                      CTCON=CTCON|0X80;       //CT3下降沿
 520   1              else
 521   1                      CTCON=CTCON|0X40;       //CT3上升沿
 522   1      }
 523          
 524          void ADC_int (void) interrupt 10
 525          {
 526   1              ADCON=ADCON&0xEF;                       //清ADC中断标志
 527   1              c_sample++;                                                     //2005-3-3
 528   1              adh=ADCH;
 529   1              adl=ADCON&0xC0;
 530   1              adh=adh<<2;
 531   1              adl=adl>>6;
 532   1              ad=adh+adl;
 533   1              da=ad;
 534   1              AD5=(da*5000)/0x3FF;
 535   1              if(new_circle==1)
 536   1              {
 537   2                      new_circle=0;
 538   2                      AD1=AD5;
 539   2                      AD2=AD5;
 540   2                      AD3=AD5;
 541   2                      AD4=AD5;
 542   2              }
 543   1              else
 544   1              {
 545   2                      AD5=(AD5+AD1+AD2+AD3+AD4)/5;
 546   2                      AD1=AD2;
 547   2                      AD2=AD3;
 548   2                      AD3=AD4;
 549   2                      AD4=AD5;
 550   2              }
C51 COMPILER V7.06   AVC1                                                                  06/16/2005 14:51:25 PAGE 10  

 551   1              AD5=AD5*6/100;                          //AD5*30/5
 552   1      
 553   1              if(c_sample%5==0)
 554   1              {
 555   2                      if(AD5>=temp_avc)
 556   2                      {
 557   3                              SENS=AD5-temp_avc;
 558   3                              avc_dir=0;
 559   3                      }
 560   2                      else
 561   2                      {
 562   3                              SENS=temp_avc-AD5;
 563   3                              avc_dir=1;
 564   3                      }
 565   2                      if(SENS>=1)
 566   2                      {
 567   3                              switch(SENS)
 568   3                              {
 569   4                                      case 1: {
 570   5                                                      COM=0X36;
 571   5                                                      COUNT0=8000%256;                //500HZ
 572   5                                                      COUNT0=8000/256;
 573   5                                                      COM=0X76;
 574   5                                                      COUNT1=4;                       //2p,0.0075mm
 575   5                                                      COUNT1=0;
 576   5                                              }break;
 577   4                                      case 2:
 578   4                                      case 3: {
 579   5                                                      COM=0X36;
 580   5                                                      COUNT0=8000%256;                //500HZ
 581   5                                                      COUNT0=8000/256;
 582   5                                                      COM=0X76;
 583   5                                                      COUNT1=10;                      //5p,0.01875mm 0.1v
 584   5                                                      COUNT1=0;
 585   5      
 586   5                                              }break;
 587   4                                      case 4:
 588   4                                      case 5: {
 589   5                                                      COM=0X36;
 590   5                                                      COUNT0=8000%256;                //500HZ
 591   5                                                      COUNT0=8000/256;
 592   5                                                      COM=0X76;
 593   5                                                      COUNT1=20;
 594   5                                                      COUNT1=0;
 595   5                                                      out1=0;                 //10p,0.0375mm 0.2v
 596   5                                              }break;
 597   4                                      case 6:
 598   4                                      case 7: {
 599   5                                                      COM=0X36;
 600   5                                                      COUNT0=6757%256;
 601   5                                                      COUNT0=6757/256;
 602   5                                                      COM=0X76;
 603   5                                                      COUNT1=32;
 604   5                                                      COUNT1=0;
 605   5                                              }break;
 606   4                                      case 8:
 607   4                                      case 9: {
 608   5                                                      COM=0X36;
 609   5                                                      COUNT0=5141%256;        //778hz
 610   5                                                      COUNT0=5141/256;
 611   5                                                      COM=0X76;
 612   5                                                      COUNT1=42;              //0.08mm 0.4v
C51 COMPILER V7.06   AVC1                                                                  06/16/2005 14:51:25 PAGE 11  

 613   5                                                      COUNT1=0;
 614   5                                              }break;
 615   4                                      case 10:{
 616   5                                                      COM=0X36;
 617   5                                                      COUNT0=4000%256;        //1000hz
 618   5                                                      COUNT0=4000/256;
 619   5                                                      COM=0X76;
 620   5                                                      COUNT1=54;              //0.1mm 0.5v
 621   5                                                      COUNT1=0;
 622   5                                              }break;
 623   4                                      default:{
 624   5                                                      COM=0X36;
 625   5                                                      COUNT0=3376%256;        //1185hz
 626   5                                                      COUNT0=3376/256;
 627   5                                                      COM=0X76;
 628   5                                                      COUNT1=64;              //0.12mm 0.6v
 629   5                                                      COUNT1=0;
 630   5                                              }break;
 631   4                              }
 632   3      
 633   3                              CTCON=CTCON|0x02;
 634   3                              IEN1=IEN1|0X01;                 //允许CT0,弧长调整长度
 635   3                              avc_enable=0;
 636   3                              gate=1;
 637   3                      }
 638   2                      c_sample=0;
 639   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)))
 640   2                      {
 641   3                              CTCON=CTCON|0x20;
 642   3      //                      IEN1=IEN1|0X04;         //允许CT2
 643   3                      }
 644   2              }
 645   1              else
 646   1              {
 647   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)))
 648   2                      {
 649   3                              CTCON=CTCON|0x20;
 650   3      //                      IEN1=IEN1|0X04;         //允许CT2
 651   3                      }
 652   2              }
 653   1              ad_finish=1;                            //AD转换及处理完成
 654   1      }
 655          
 656          main()
 657          {
 658   1              TMOD=0x22;                              //定时器1,方式2;定时器0,方式3,两个8位定时器;
 659   1              TL1=0XFD;                               //波特率9600
 660   1              TH1=0XFD;
 661   1              TR1=1;                                  //启动定时器
 662   1              TMOD=0x23;                              //定时器0,方式3,两个8位定时器;
 663   1              TR1=0;
 664   1              TF1=0;
 665   1              S0CON=0XF8;                             //串口方式3,SM2=1,REN=1,TB8=1,RB8=0,TI=0,RI=0
 666   1              IP1=0X01;                               //CT0高优先级
 667   1              IP0=0X98;                               //S0=1,T1=1
 668   1              ES0=1;                                  //开串口中断
 669   1              ET1=1;
 670   1              EAD=1;                                  //AD中断允许
 671   1              EA=1;                                   //中断总允许
 672   1              start_t2();
C51 COMPILER V7.06   AVC1                                                                  06/16/2005 14:51:25 PAGE 12  

 673   1      
 674   1              externel_voltage=0;
 675   1              COM=0XB6;
 676   1              COUNT2=0x00;
 677   1              COUNT2=0x00;
 678   1              AD1=0;
 679   1              AD2=0;
 680   1              AD3=0;
 681   1              AD4=0;
 682   1              AD5=0;
 683   1              U51=0;
 684   1              urgent_stop=0;
 685   1              avc_err=0;
 686   1              err_ok=0;
 687   1              err=0;
 688   1      
 689   1      BEGIN:  if(urgent_stop==1)
 690   1              {
 691   2                      urgent_stop=0;
 692   2                      err_ok=0;
 693   2                      EX1=1;
 694   2                      EX0=1;
 695   2              }
 696   1              CTCON=0X00;
 697   1              IEN1=0x00;
 698   1              COM=0x36;
 699   1              COUNT0=0x00;
 700   1              COUNT0=0x00;
 701   1              COM=0X76;
 702   1              COUNT1=0x00;
 703   1              COUNT1=0x00;
 704   1              gate=0;                 //关门控
 705   1              avc_enable=1;
 706   1              avc_dir=1;
 707   1              work=0;
 708   1              called=0;
 709   1              start=0;
 710   1              pgj=0;
 711   1              sector=0;
 712   1              in_sector=0;
 713   1              start_avc=0;
 714   1              avc_ok=0;
 715   1              new_circle=1;
 716   1              c_sample=0;

⌨️ 快捷键说明

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