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

📄 current_1027.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 787   1      }
 788          
 789          main()
 790          {
 791   1              unsigned char k,k1,k2;
 792   1              unsigned int temp_delt_p,temp_delt_b;
 793   1              
 794   1              current_enable=0;
 795   1              TMOD=0x22;                      //定时器1,方式2;
 796   1              TL1=0XFD;                       //波特率9600
 797   1              TH1=0XFD;
 798   1              TR1=1;                          //启动定时器
 799   1              PCON=0X00;                      //SMOD=1
C51 COMPILER V7.06   CURRENT_1027                                                          01/13/2006 15:18:05 PAGE 14  

 800   1              TMOD=0x23;                      //定时器0,方式3,两个8位定时器;
 801   1              TR1=0;
 802   1              TF1=0;
 803   1              S0CON=0XF8;                     //串口方式3,SM2=0,REN=1,TB8=1,RB8=0,TI=0,RI=0
 804   1              IP0=0X98;                       //S0=1
 805   1              IP1=IP1|0X20;
 806   1              ES0=1;                          //开串口中断
 807   1              ET0=1;
 808   1              ET1=1;
 809   1              ES1=1;                          //I2C
 810   1              EAD=1;                          //AD中断允许
 811   1              EA=1;                           //中断总允许
 812   1              start_t2();
 813   1              
 814   1              urgent_stop=0;
 815   1              current_err=0;
 816   1              err_ok=0;
 817   1              err=0;
 818   1              gas_stop=0;
 819   1      BEGIN:          
 820   1              if(urgent_stop==1)
 821   1              {
 822   2                      urgent_stop=0;
 823   2                      err_ok=0;
 824   2      //              EX1=1;
 825   2                      EX0=1;
 826   2              }       
 827   1              IEN1=IEN1&0x40; 
 828   1              gate=0;
 829   1              COM=0X76;
 830   1              COUNT1=0;
 831   1              COUNT1=0;
 832   1              COM=0XB2;
 833   1              COUNT2=0;
 834   1              COUNT2=0;
 835   1              current_out=1;
 836   1              current_enable=0;
 837   1              con_hf=1;
 838   1      //      con_gas1=1;
 839   1              con_gas2=1;
 840   1              work=0;                         //等待状态      
 841   1              called=0;
 842   1              start=0;
 843   1              need_para=0;
 844   1              open_gas1=0;
 845   1              open_gas2=0;
 846   1              ignit_ok=0;
 847   1              decrease=0;
 848   1              igniting=0;
 849   1              pre_melt_ok=0;
 850   1              R_ANSW=0;
 851   1              S_ANSW=0;
 852   1              POINTER1=0;
 853   1              RSUM=0;
 854   1              POINTER0=0;
 855   1              SSUM=0;
 856   1              r_byte_nums=4;
 857   1              demand=0;
 858   1              overtime=0;
 859   1              resend=0;
 860   1              ans=0;
 861   1              receive_p_out=0;
C51 COMPILER V7.06   CURRENT_1027                                                          01/13/2006 15:18:05 PAGE 15  

 862   1              receive_p_in=0;
 863   1              edge=0;
 864   1              ad_v=0;
 865   1              ad_i=0;
 866   1              AD1=0;
 867   1              AD2=0;
 868   1              AD3=0;
 869   1              AD4=0;
 870   1              AD5=0;
 871   1              tab2=0;
 872   1              tab3=0;
 873   1              IM8=0;
 874   1              IM4=0;
 875   1              IB8=0;
 876   1              IB4=0;
 877   1              UPD=0;
 878   1              ahf_ok=0;
 879   1              ad_finish=0;
 880   1              i_slope_ok=0;
 881   1              nonce_sec=0;
 882   1              in_sector=0;
 883   1              new_sec=0;
 884   1              close_gas1=0;
 885   1              close_gas2=0;
 886   1              close_gas1_ok=0;
 887   1              close_gas2_ok=0;
 888   1              close_gas_ok=0;
 889   1              c_cm1=0;
 890   1              to_begin=0;
 891   1              tight=0;
 892   1              lose=0;
 893   1              
 894   1      
 895   1              PWMP=51;                        //产生采样保持脉冲,1K
 896   1              PWM0=128;
 897   1              PWM1=128;
 898   1              EX0=1;
 899   1              while(start==0)
 900   1              {
 901   2                      if(called==1)
 902   2                      {
 903   3                              ini_sbuf(M_main,infor,com_calling,S_ANSW,0,0,0);
 904   3                              s_byte_nums=6;
 905   3                              TR_noans();
 906   3                              called=0;
 907   3                      }
 908   2                      if(receive_p_out==1)
 909   2                      {
 910   3                              point=&pp.t01;
 911   3                              for(p_sec=0;p_sec<25;p_sec++)
 912   3                                      *(point+p_sec)=rbuffer[p_sec*2+2]*256+rbuffer[p_sec*2+3];
 913   3                              pp.syn_type=rbuffer[52];
 914   3                              
 915   3                              ini_sbuf(M_main,answer,OK,0,0,0,0);
 916   3                              s_byte_nums=4;
 917   3                              TR_noans();
 918   3                              demand=0;
 919   3                              receive_p_out=0;
 920   3                              
 921   3                      }
 922   2      
 923   2                      if(receive_p_in==1)
C51 COMPILER V7.06   CURRENT_1027                                                          01/13/2006 15:18:05 PAGE 16  

 924   2                      {
 925   3                              point=&pp.x[nonce_sec][0];
 926   3                              for(p_sec=0;p_sec<10;p_sec++)
 927   3                                      *(point+p_sec)=rbuffer[p_sec*2+3]*256+rbuffer[p_sec*2+4];
 928   3      
 929   3                              ini_sbuf(M_main,answer,OK,0,0,0,0);
 930   3                              s_byte_nums=4;
 931   3                              TR_noans();
 932   3                              demand=0;
 933   3                              receive_p_in=0;
 934   3                      }
 935   2                      
 936   2                      if(tight==1)
 937   2                      {
 938   3                              tight_lose=0;
 939   3                              tight=0;
 940   3                      }
 941   2                      if(lose==1)
 942   2                      {
 943   3                              tight_lose=1;
 944   3                              lose=0;
 945   3                      }
 946   2                      if(urgent_stop==1)
 947   2                              goto BEGIN;
 948   2              }
 949   1              EX1=1;
 950   1              n_pulse=pp.t14%256;
 951   1              n_base=pp.t15%256;
 952   1      
 953   1              work=3;                                 //进入焊接过程
 954   1              IEN1=IEN1&0xBF;                         //禁止CM2,停水计时
 955   1              CML1=TML2+0XE2;         //峰值时间
 956   1              if(CML1<TML2)
 957   1                      CMH1=(TMH2+1)+0X04;
 958   1              else
 959   1                      CMH1=TMH2+0X04;
 960   1              CML2=TML2+0x24;
 961   1              if(CML2<TML2)
 962   1                      CMH2=TMH2+1+0xF4;
 963   1              else
 964   1                      CMH2=TMH2+0xF4;
 965   1              if(pp.k1==PDC)                                  //05-12-28
 966   1              {
 967   2                      if(pp.i14>pp.i12)
 968   2                      {
 969   3                              if(pp.i15>=pp.i12)
 970   3                                      delt1=pp.i14-pp.i12;
 971   3                              else if(pp.i14-pp.i12>=pp.i12-pp.i15)
 972   3                                      delt1=pp.i14-pp.i12;
 973   3                              else
 974   3                                      delt1=pp.i12-pp.i15;
 975   3                      }
 976   2                      else if(pp.i14==pp.i12)
 977   2                      {
 978   3                              if(pp.i15>=pp.i12)
 979   3                                      delt1=pp.i15-pp.i12;
 980   3                              else
 981   3                                      delt1=pp.i12-pp.i15;
 982   3                      }
 983   2                      else 
 984   2                      {
 985   3                              if(pp.i15>pp.i12)
C51 COMPILER V7.06   CURRENT_1027                                                          01/13/2006 15:18:05 PAGE 17  

 986   3                              {
 987   4                                      if(pp.i15-pp.i12>=pp.i12-pp.i14)
 988   4                                              delt1=pp.i15-pp.i12;
 989   4                                      else
 990   4                                              delt1=pp.i12-pp.i14; 
 991   4                              }
 992   3                              else if(pp.i15==pp.i12)
 993   3                                      delt1=pp.i12-pp.i14;
 994   3                              else
 995   3                              {
 996   4                                      if(pp.i12-pp.i14>=pp.i12-pp.i15)
 997   4                                              delt1=pp.i12-pp.i14;
 998   4                                      else
 999   4                                              delt1=pp.i12-pp.i15;
1000   4                              }
1001   3                      }                       
1002   2              }
1003   1              if(delt1>0)
1004   1              {
1005   2                      delt1=1000000/delt1;
1006   2                      delt1=delt1*pp.t13;
1007   2              //      delt1=(pp.t13*1000000)/(pp.i14-pp.i12);
1008   2                      if(delt1%256>=200)
1009   2                              delt1=delt1/256+1;
1010   2                      else
1011   2                              delt1=delt1/256;
1012   2              }
1013   1              
1014   1              if(YOUHU==1)
1015   1              {
1016   2                      while(igniting==0)
1017   2                      {
1018   3                              if(urgent_stop==1)
1019   3                                      goto BEGIN;
1020   3                              if(open_gas1==1)
1021   3                              {
1022   4                                      ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
1023   4                                      s_byte_nums=4;
1024   4                                      TR_noans();
1025   4                                      con_gas1=0;             //开气1
1026   4                                      con_water=0;            //开水
1027   4                                      open_gas1=0;
1028   4                              }
1029   3                              if(open_gas2==1)
1030   3                              {
1031   4                                      ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
1032   4                                      s_byte_nums=4;
1033   4                                      TR_noans();
1034   4                                      con_gas2=0;             //开气2
1035   4                                      con_water=0;            //开水
1036   4                                      open_gas2=0;
1037   4                              }
1038   3                              if(resend==1)
1039   3                              {
1040   4                                      ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
1041   4                                      s_byte_nums=4;
1042   4                                      TR_noans();
1043   4                                      resend=0;
1044   4                              }
1045   3                      }
1046   2              }
1047   1              else
C51 COMPILER V7.06   CURRENT_1027                                                          01/13/2006 15:18:05 PAGE 18  

1048   1              {
1049   2                      while(ignit_ok==0)

⌨️ 快捷键说明

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