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

📄 avc3.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   AVC3                                                                  10/27/2005 11:09:51 PAGE 13  

 735   1              ET1=1;
 736   1              EAD=1;                                  //AD中断允许
 737   1              EA=1;                                   //中断总允许
 738   1              start_t2();
 739   1      
 740   1              COM=0XB6;
 741   1              COUNT2=0x00;
 742   1              COUNT2=0x00;
 743   1              AD1=0;
 744   1              AD2=0;
 745   1              AD3=0;
 746   1              AD4=0;
 747   1              AD5=0;
 748   1              U51=0;
 749   1              urgent_stop=0;
 750   1              avc_err=0;
 751   1              err_ok=0;
 752   1              err=0;
 753   1      
 754   1      BEGIN:  if(urgent_stop==1)
 755   1              {
 756   2                      urgent_stop=0;
 757   2                      err_ok=0;
 758   2                      EX1=1;
 759   2                      EX0=1;
 760   2              }
 761   1              CTCON=0X00;
 762   1              IEN1=0x00;
 763   1              COM=0x36;
 764   1              COUNT0=0x00;
 765   1              COUNT0=0x00;
 766   1              COM=0X76;
 767   1              COUNT1=0x00;
 768   1              COUNT1=0x00;
 769   1              gate=0;                 //关门控
 770   1              avc_enable=1;
 771   1              avc_dir=1;
 772   1              externel_voltage=1;
 773   1              temp_voltage=1;
 774   1              work=0;
 775   1              called=0;
 776   1              start=0;
 777   1              pgj=0;
 778   1              in_sector=0;
 779   1              new_sector=0;
 780   1              start_avc=0;
 781   1              avc_ok=0;
 782   1              new_circle=1;
 783   1              c_sample=0;
 784   1              ad_finish=1;                    //AD转换及处理完成标志
 785   1              pulse_base=0;                   //峰、基值标志 0-基值、1-峰值
 786   1              stop_avc=0;
 787   1              decrease=0;
 788   1              lift=0;
 789   1              lift_ok=0;
 790   1              lift_complete=0;
 791   1              to_begin=0;
 792   1      
 793   1              need_para=0;
 794   1              POINTER0=0;
 795   1              SSUM=0;
 796   1              S_ANSW=0;
C51 COMPILER V7.06   AVC3                                                                  10/27/2005 11:09:51 PAGE 14  

 797   1              POINTER1=0;
 798   1              RSUM=0;
 799   1              ans=0;
 800   1              send=0;
 801   1              resend=0;
 802   1              r_byte_nums=4;
 803   1              send_p=0;
 804   1              send_p_ok=0;
 805   1      
 806   1              avc=0;
 807   1              avc_up=0;
 808   1              avc_down=0;
 809   1              motor_stop=0;
 810   1      
 811   1              PWMP=12;                                        //采样保持脉冲,2K
 812   1              PWM0=127;
 813   1              COM=0X36;                                       //弧长点动速度,1K
 814   1              COUNT0=4000%256;
 815   1              COUNT0=4000/256;
 816   1      
 817   1              CML0=TML2+0X20;
 818   1              if(CML0<TML2)
 819   1                      CMH0=TMH2+1+0X4E;
 820   1              else
 821   1                      CMH0=TMH2+0X4E;                         //20ms
 822   1      
 823   1              write_8574(0xF0);
 824   1              while(start==0)                                 //等待过程中,接受点名和参数
 825   1              {
 826   2      
 827   2                      if(called==1)
 828   2                      {
 829   3                              ini_sbuf(M_main,infor,com_calling,S_ANSW,0,0);
 830   3                              s_byte_nums=get_byte_nums(infor);
 831   3                              TR_noans();
 832   3                              called=0;
 833   3                      }
 834   2      
 835   2                      if(send_p==1)
 836   2                      {
 837   3                              while(send_p_ok==0)
 838   3                              {
 839   4                                      if(receive_p_out==1)
 840   4                                      {
 841   5                                              point=&pp.k5;
 842   5                                              for(p_sec=0;p_sec<14;p_sec++)
 843   5                                                      *(point+p_sec)=rbuffer[p_sec*2+2]*256+rbuffer[p_sec*2+3];
 844   5                                              ini_sbuf(M_main,answer,S_ANSW,0,0,0);
 845   5                                              s_byte_nums=4;
 846   5                                              TR_noans();
 847   5                                              c_lift=80*pp.h51/3;
 848   5                                              receive_p_out=0;                
 849   5                                      }
 850   4                      
 851   4                                      if(receive_p_in==1)
 852   4                                      {
 853   5                                              point=&pp.x[nonce_sec][0];
 854   5                                              for(p_sec=0;p_sec<4;p_sec++)
 855   5                                                      *(point+p_sec)=rbuffer[p_sec*2+3]*256+rbuffer[p_sec*2+4];
 856   5                                              ini_sbuf(M_main,answer,S_ANSW,0,0,0);
 857   5                                              s_byte_nums=4;
 858   5                                              TR_noans();
C51 COMPILER V7.06   AVC3                                                                  10/27/2005 11:09:51 PAGE 15  

 859   5                                              receive_p_in=0;
 860   5                                      }
 861   4                              }
 862   3                              send_p_ok=0;
 863   3                              send_p=0;
 864   3                              EX1=1;
 865   3                              EX0=1;
 866   3                      }
 867   2      
 868   2                      if(avc_up==1)
 869   2                      {
 870   3                              avc_dir=1;              //方向——上
 871   3                              avc_enable=0;           //使能
 872   3                              gate=1;
 873   3                              avc_up=0;
 874   3                      }
 875   2                      if(avc_down==1)
 876   2                      {
 877   3                              avc_dir=0;              //方向——下
 878   3                              avc_enable=0;
 879   3                              gate=1;
 880   3                              avc_down=0;
 881   3                      }
 882   2                      if(motor_stop==1)
 883   2                      {
 884   3                              gate=0;                 //关8254门控信号
 885   3                              avc_enable=1;                   //关弧长使能
 886   3                              motor_stop=0;
 887   3                      }
 888   2      
 889   2                      if(lift==1)
 890   2                      {
 891   3                              COM=0X76;
 892   3                              COUNT1=c_lift%256;
 893   3                              COUNT1=c_lift/256;
 894   3                              CTCON=CTCON|0X01;       //CT0下降沿
 895   3                              IEN1=IEN1|0X01;                         //允许CT0
 896   3                              avc_dir=1;                                      //弧长方向——上
 897   3                              externel_voltage=0;
 898   3                              avc_enable=0;                                   //开弧长使能
 899   3                              gate=1;
 900   3                              while(lift_complete==0);
 901   3                              externel_voltage=1;
 902   3                              lift_complete=0;
 903   3                              lift=0;
 904   3                              if(urgent_stop==1)
 905   3                                      goto BEGIN;
 906   3                              EX1=1;
 907   3                      }
 908   2      
 909   2                      if(pgj==1)
 910   2                      {
 911   3                              avc_dir=0;              //方向——下
 912   3                              avc_enable=0;
 913   3                              gate=1;
 914   3                              while(lift==0);
 915   3                              COM=0X76;
 916   3                              COUNT1=c_lift%256;
 917   3                              COUNT1=c_lift/256;
 918   3                              CTCON=CTCON|0X01;       //CT0下降沿
 919   3                              IEN1=IEN1|0X01;                         //允许CT0
 920   3                              avc_dir=1;                                      //弧长方向——上
C51 COMPILER V7.06   AVC3                                                                  10/27/2005 11:09:51 PAGE 16  

 921   3                              externel_voltage=0;
 922   3                              avc_enable=0;                                   //开弧长使能
 923   3                              gate=1;
 924   3      
 925   3                              while(lift_complete==0)
 926   3                              {
 927   4                                      if(urgent_stop==1)
 928   4                                              goto BEGIN;
 929   4                              }
 930   3                              ini_sbuf(M_main,command,com_lift_ok,0,0,0);
 931   3                              s_byte_nums=4;
 932   3                              TR_ans();
 933   3                              externel_voltage=1;
 934   3                              lift_complete=0;
 935   3                              lift=0;
 936   3                              pgj=0;
 937   3                              EX1=1;
 938   3                      }
 939   2                      if(urgent_stop==1)
 940   2                              goto BEGIN;
 941   2              }
 942   1              temp_u51_p=pp.u51_p;
 943   1              temp_u51_b=pp.u51_b;
 944   1              if(pp.k1==DC)
 945   1                      temp_avc=temp_u51_p;
 946   1              work=3;
 947   1              do
 948   1              {
 949   2                      if(start_avc==1)                        //开始弧长
 950   2                      {
 951   3                              ini_sbuf(M_main,answer,S_ANSW,0,0,0);
 952   3                              s_byte_nums=4;
 953   3                              TR_noans();
 954   3                              temp_voltage=0;
 955   3                              c_sample=0;
 956   3                              CTCON=CTCON&0X3F;
 957   3                              if(pp.k1==PDC)
 958   3                              {
 959   4                                      if(pp.avc_type==SP||pp.avc_type==SPB)
 960   4                                      {
 961   5                                              pulse_base=0;
 962   5                                              CTCON=CTCON|0X40;       //CT3上升沿
 963   5                                      }
 964   4                                      else
 965   4                                      {
 966   5                                              pulse_base=1;
 967   5                                              CTCON=CTCON|0X80;       //CT3下降沿
 968   5                                      }
 969   4                                      IEN1=IEN1|0X08;                 //允许CT3
 970   4                              }
 971   3                              else if(pp.k1==DC)
 972   3                              {
 973   4                                      avc_ok=1;
 974   4                                      c_sample=0;
 975   4                                      CTCON=CTCON|0x20;       //CT2下降沿
 976   4                                      IEN1=IEN1|0X04;         //允许CT2,采样保持脉冲
 977   4                              }
 978   3                              start_avc=0;
 979   3                      }
 980   2      
 981   2                      if(urgent_stop==1)
 982   2                              goto BEGIN;

⌨️ 快捷键说明

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