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

📄 avc2.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 711   1              new_circle=1;
 712   1              c_sample=0;
 713   1              ad_finish=1;                    //AD转换及处理完成标志
 714   1              pulse_base=0;                   //峰、基值标志 0-基值、1-峰值
 715   1              stop_avc=0;
 716   1              decrease=0;
 717   1              lift=0;
 718   1              ask_lift_ok=0;
 719   1              lift_ok=0;
 720   1              lift_complete=0;
 721   1              to_begin=0;
 722   1      
 723   1              need_para=0;
 724   1              POINTER0=0;
 725   1              SSUM=0;
 726   1              S_ANSW=0;
 727   1              POINTER1=0;
 728   1              RSUM=0;
 729   1              ans=0;
 730   1              send=0;
 731   1              resend=0;
 732   1              r_byte_nums=4;
 733   1              demand=0;
 734   1      
C51 COMPILER V7.06   AVC2                                                                  06/29/2005 10:04:08 PAGE 13  

 735   1              avc=0;
 736   1              avc_up=0;
 737   1              avc_down=0;
 738   1              motor_stop=0;
 739   1      
 740   1              PWMP=12;                                        //采样保持脉冲,2K
 741   1              PWM0=127;
 742   1              COM=0X36;                                       //弧长点动速度,1K
 743   1              COUNT0=4000%256;
 744   1              COUNT0=4000/256;
 745   1              CML0=TML2+0X20;
 746   1              if(CML0<TML2)
 747   1                      CMH0=TMH2+1+0X4E;
 748   1              else
 749   1                      CMH0=TMH2+0X4E;                         //20ms
 750   1              EX1=1;
 751   1              EX0=1;
 752   1              while(start==0)                                 //等待过程中,接受点名和参数
 753   1              {
 754   2                      if(called==1)
 755   2                      {
 756   3                              ini_sbuf(M_main,infor,S_ANSW,cross_machine,0,0);
 757   3                              s_byte_nums=get_byte_nums(infor);
 758   3                              TR_noans();
 759   3                              called=0;
 760   3                      }
 761   2      
 762   2                      if(receive_p_out==1)
 763   2                      {
 764   3                              point=&pp.k5;
 765   3                              for(p_sec=0;p_sec<14;p_sec++)
 766   3                                      *(point+p_sec)=rbuffer[p_sec*2+2]*256+rbuffer[p_sec*2+3];
 767   3                              ini_sbuf(M_main,answer,S_ANSW,0,0,0);
 768   3                              s_byte_nums=4;
 769   3                              TR_noans();
 770   3      //                      demand=0;
 771   3                              receive_p_out=0;
 772   3                      }
 773   2      
 774   2                      if(receive_p_in==1)
 775   2                      {
 776   3                              point=&pp.x[nonce_sec][0];
 777   3                              for(p_sec=0;p_sec<4;p_sec++)
 778   3                                      *(point+p_sec)=rbuffer[p_sec*2+3]*256+rbuffer[p_sec*2+4];
 779   3                              ini_sbuf(M_main,answer,S_ANSW,0,0,0);
 780   3                              s_byte_nums=4;
 781   3                              TR_noans();
 782   3      //                      demand=0;
 783   3                              receive_p_in=0;
 784   3                      }
 785   2      
 786   2                      if(avc_up==1)
 787   2                      {
 788   3                              avc_dir=1;              //方向——上
 789   3                              avc_enable=0;           //使能
 790   3                              gate=1;
 791   3                              avc_up=0;
 792   3                      }
 793   2                      if(avc_down==1)
 794   2                      {
 795   3                              avc_dir=0;              //方向——下
 796   3                              avc_enable=0;
C51 COMPILER V7.06   AVC2                                                                  06/29/2005 10:04:08 PAGE 14  

 797   3                              gate=1;
 798   3                              avc_down=0;
 799   3                      }
 800   2                      if(motor_stop==1)
 801   2                      {
 802   3                              gate=0;                 //关8254门控信号
 803   3                              avc_enable=1;                   //关弧长使能
 804   3                              motor_stop=0;
 805   3                      }
 806   2                      if(urgent_stop==1)
 807   2                              goto BEGIN;
 808   2              }
 809   1      
 810   1              if(pp.k5==OFF)
 811   1              {
 812   2                      COM=0X76;                       
 813   2                      COUNT1=10;
 814   2                      COUNT1=0;
 815   2              }
 816   1              temp_u51_p=pp.u51_p;
 817   1              temp_u51_b=pp.u51_b;
 818   1              if(pp.k1==DC)
 819   1                      temp_avc=temp_u51_p;
 820   1              work=3;
 821   1              do
 822   1              {
 823   2                      if(start_avc==1)                        //开始弧长
 824   2                      {
 825   3                              ini_sbuf(M_main,answer,S_ANSW,0,0,0);
 826   3                              s_byte_nums=4;
 827   3                              TR_noans();
 828   3                              temp_voltage=0;
 829   3                              externel_voltage=1;
 830   3                              c_sample=0;
 831   3                              CTCON=CTCON&0X3F;
 832   3                              if(pp.k1==PDC)
 833   3                              {
 834   4                                      if(pp.avc_type==SP||pp.avc_type==SPB)
 835   4                                      {
 836   5                                              pulse_base=0;
 837   5                                              CTCON=CTCON|0X40;       //CT3上升沿
 838   5                                      }
 839   4                                      else
 840   4                                      {
 841   5                                              pulse_base=1;
 842   5                                              CTCON=CTCON|0X80;       //CT3下降沿
 843   5                                      }
 844   4                                      IEN1=IEN1|0X08;                 //允许CT3
 845   4                              }
 846   3                              else if(pp.k1==DC)
 847   3                              {
 848   4                                      avc_ok=1;
 849   4                                      c_sample=0;
 850   4                                      CTCON=CTCON|0x20;       //CT2下降沿
 851   4                                      IEN1=IEN1|0X04;         //允许CT2,采样保持脉冲
 852   4                              }
 853   3                              start_avc=0;
 854   3                      }
 855   2      
 856   2                      if(urgent_stop==1)
 857   2                              goto BEGIN;
 858   2      
C51 COMPILER V7.06   AVC2                                                                  06/29/2005 10:04:08 PAGE 15  

 859   2                      if(avc_ok==1&&need_para==1)             //显示弧压
 860   2                      {
 861   3                              U51=AD5;
 862   3                              ini_sbuf(M_main,parameter1,0,0,0,0);
 863   3                              sbuffer[2]=U51/256;
 864   3                              sbuffer[3]=U51%256;
 865   3                              s_byte_nums=5;
 866   3                              TR_noans();
 867   3                              need_para=0;
 868   3                      }
 869   2      
 870   2                      if(urgent_stop==1)
 871   2                                      goto BEGIN;
 872   2      
 873   2                      if(avc_up==1)
 874   2                      {
 875   3                              if(pp.k5==OFF||avc_ok==0)
 876   3                              {
 877   4                                      avc_dir=1;              //方向——上
 878   4                                      avc_enable=0;           //使能
 879   4                                      CTCON=CTCON|0X02;
 880   4                                      IEN1=IEN1|0X01;
 881   4                                      gate=1;
 882   4                              }
 883   3                              if(avc_ok==1)
 884   3                              {
 885   4                                      if(in_sector==1)
 886   4                                      {
 887   5                                              temp_u51_p=temp_u51_p+pp.x[nonce_sector][3];
 888   5                                              temp_u51_b=temp_u51_b+pp.x[nonce_sector][3];
 889   5                                      }
 890   4                                      else
 891   4                                      {
 892   5                                              temp_u51_p=temp_u51_p+pp.du51;
 893   5                                              temp_u51_b=temp_u51_b+pp.du51;
 894   5                                      }
 895   4                                      if(pp.k1==DC)
 896   4                                              temp_avc=temp_u51_p;
 897   4                              }
 898   3                              avc_up=0;
 899   3                      }
 900   2      
 901   2                      if(urgent_stop==1)
 902   2                                      goto BEGIN;
 903   2      
 904   2                      if(avc_down==1)
 905   2                      {
 906   3                              if(pp.k5==OFF||avc_ok==0)
 907   3                              {
 908   4                                      avc_dir=0;              //方向——上
 909   4                                      avc_enable=0;           //使能
 910   4                                      CTCON=CTCON|0X02;
 911   4                                      IEN1=IEN1|0X01;
 912   4                                      gate=1;
 913   4                              }
 914   3                              if(avc_ok==1)
 915   3                              {
 916   4                                      if(in_sector==1)
 917   4                                      {
 918   5                                              temp_u51_p=temp_u51_p-pp.x[nonce_sector][3];
 919   5                                              temp_u51_b=temp_u51_b-pp.x[nonce_sector][3];
 920   5                                      }
C51 COMPILER V7.06   AVC2                                                                  06/29/2005 10:04:08 PAGE 16  

 921   4                                      else
 922   4                                      {
 923   5                                              temp_u51_p=temp_u51_p-pp.du51;
 924   5                                              temp_u51_b=temp_u51_b-pp.du51;
 925   5                                      }
 926   4                                      if(pp.k1==DC)
 927   4                                              temp_avc=temp_u51_p;
 928   4                              }
 929   3                              avc_down=0;
 930   3                      }
 931   2      
 932   2                      if(urgent_stop==1)
 933   2                                      goto BEGIN;
 934   2      
 935   2                      if(in_sector==1&&new_sector==1)                         //进入新区间
 936   2                      {
 937   3                              temp_u51_p=pp.x[nonce_sector][0];
 938   3                              temp_u51_b=pp.x[nonce_sector][1];
 939   3                              new_sector=0;
 940   3                      }
 941   2      
 942   2                      if(urgent_stop==1)
 943   2                                      goto BEGIN;
 944   2      
 945   2                      if(avc_ok==1&&stop_avc==1)
 946   2                      {
 947   3                              ini_sbuf(M_main,answer,S_ANSW,0,0,0);
 948   3                              s_byte_nums=4;
 949   3                              TR_noans();
 950   3                              gate=0;

⌨️ 快捷键说明

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