📄 current3.lst
字号:
787 4 IB4=IMMH_ahf;
788 4 UPD=0X00;
789 4 }
790 3 }
791 2 /*
792 2 else
793 2 {
794 2 if(current_out==1)
795 2 {
796 2 IM8=IBL;
797 2 IM4=IBH;
798 2 IB8=IBL;
799 2 IB4=IBH;
C51 COMPILER V7.06 CURRENT3 08/02/2005 11:16:30 PAGE 14
800 2 UPD=0X00;
801 2 }
802 2 else
803 2 {
804 2 IM8=IML;
805 2 IM4=IMH;
806 2 IB8=IML;
807 2 IB4=IMH;
808 2 UPD=0X00;
809 2 }
810 2 }
811 2 */
812 2 current_out=~current_out;
813 2 c_cm1=0;
814 2 }
815 1 CML1=TML2+0XE2; //峰值时间
816 1 if(CML1<TML2)
817 1 CMH1=(TMH2+1)+0X04;
818 1 else
819 1 CMH1=TMH2+0X04;
820 1 }
821
822 void CM2_int (void) interrupt 13 //关水计时
823 {
824 1 CMI2=0;
825 1 c_cm2++;
826 1 if(c_cm2==240)
827 1 {
828 2 con_water=1; //关水
829 2 IEN1=IEN1&0xDF; //禁止CM1
830 2 c_cm2=0;
831 2 }
832 1 CML2=TML2+0x24;
833 1 if(CML2<TML2)
834 1 CMH2=TMH2+1+0xF4;
835 1 else
836 1 CMH2=TMH2+0xF4;
837 1 }
838
839 main()
840 {
841 1 unsigned char k,k1,k2;
842 1 unsigned int temp_delt_p,temp_delt_b;
843 1
844 1 current_enable=0;
845 1 TMOD=0x22; //定时器1,方式2;
846 1 TL1=0XFD; //波特率9600
847 1 TH1=0XFD;
848 1 TR1=1; //启动定时器
849 1 PCON=0X00; //SMOD=1
850 1 TMOD=0x23; //定时器0,方式3,两个8位定时器;
851 1 TR1=0;
852 1 TF1=0;
853 1 S0CON=0XF8; //串口方式3,SM2=0,REN=1,TB8=1,RB8=0,TI=0,RI=0
854 1 IP0=0X98; //S0=1
855 1 IP1=IP1|0X20;
856 1 ES0=1; //开串口中断
857 1 ET0=1;
858 1 ET1=1;
859 1 ES1=1; //I2C
860 1 EAD=1; //AD中断允许
861 1 EA=1; //中断总允许
C51 COMPILER V7.06 CURRENT3 08/02/2005 11:16:30 PAGE 15
862 1 start_t2();
863 1
864 1 urgent_stop=0;
865 1 current_err=0;
866 1 err_ok=0;
867 1 err=0;
868 1 BEGIN:
869 1 if(urgent_stop==1)
870 1 {
871 2 urgent_stop=0;
872 2 err_ok=0;
873 2 // EX1=1;
874 2 EX0=1;
875 2 }
876 1 IEN1=IEN1&0x40;
877 1 COM=0X76;
878 1 COUNT1=0;
879 1 COUNT1=0;
880 1 COM=0XB2;
881 1 COUNT2=0;
882 1 COUNT2=0;
883 1 current_out=1;
884 1 current_enable=0;
885 1 con_hf=1;
886 1 con_gas1=1;
887 1 con_gas2=1;
888 1 work=0; //等待状态
889 1 called=0;
890 1 start=0;
891 1 need_para=0;
892 1 open_gas1=0;
893 1 open_gas2=0;
894 1 ignit_ok=0;
895 1 decrease=0;
896 1 igniting=0;
897 1 pre_melt_ok=0;
898 1 R_ANSW=0;
899 1 S_ANSW=0;
900 1 POINTER1=0;
901 1 RSUM=0;
902 1 POINTER0=0;
903 1 SSUM=0;
904 1 r_byte_nums=4;
905 1 demand=0;
906 1 overtime=0;
907 1 resend=0;
908 1 ans=0;
909 1 receive_p_out=0;
910 1 receive_p_in=0;
911 1 edge=0;
912 1 ad_v=0;
913 1 ad_i=0;
914 1 AD1=0;
915 1 AD2=0;
916 1 AD3=0;
917 1 AD4=0;
918 1 AD5=0;
919 1 tab2=0;
920 1 tab3=0;
921 1 IM8=0;
922 1 IM4=0;
923 1 IB8=0;
C51 COMPILER V7.06 CURRENT3 08/02/2005 11:16:30 PAGE 16
924 1 IB4=0;
925 1 UPD=0;
926 1 ahf_ok=0;
927 1 ad_finish=0;
928 1 i_slope_ok=0;
929 1 nonce_sec=0;
930 1 in_sector=0;
931 1 new_sec=0;
932 1 close_gas1=0;
933 1 close_gas2=0;
934 1 close_gas1_ok=0;
935 1 close_gas2_ok=0;
936 1 close_gas_ok=0;
937 1 c_cm1=0;
938 1 to_begin=0;
939 1
940 1 PWMP=51; //产生采样保持脉冲,1K
941 1 PWM0=128;
942 1 PWM1=128;
943 1 EX0=1;
944 1 while(start==0)
945 1 {
946 2 if(called==1)
947 2 {
948 3 ini_sbuf(M_main,infor,com_calling,S_ANSW,0,0,0);
949 3 s_byte_nums=6;
950 3 TR_noans();
951 3 called=0;
952 3 }
953 2 if(receive_p_out==1)
954 2 {
955 3 point=&pp.t01;
956 3 for(p_sec=0;p_sec<25;p_sec++)
957 3 *(point+p_sec)=rbuffer[p_sec*2+2]*256+rbuffer[p_sec*2+3];
958 3 pp.syn_type=rbuffer[52];
959 3
960 3 ini_sbuf(M_main,answer,OK,0,0,0,0);
961 3 s_byte_nums=4;
962 3 TR_noans();
963 3 demand=0;
964 3 receive_p_out=0;
965 3
966 3 }
967 2
968 2 if(receive_p_in==1)
969 2 {
970 3 point=&pp.x[nonce_sec][0];
971 3 for(p_sec=0;p_sec<10;p_sec++)
972 3 *(point+p_sec)=rbuffer[p_sec*2+3]*256+rbuffer[p_sec*2+4];
973 3
974 3 ini_sbuf(M_main,answer,OK,0,0,0,0);
975 3 s_byte_nums=4;
976 3 TR_noans();
977 3 demand=0;
978 3 receive_p_in=0;
979 3 }
980 2 /*
981 2 if(new_switch==1)
982 2 {
983 2 ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
984 2 s_byte_nums=4;
985 2 TR_noans();
C51 COMPILER V7.06 CURRENT3 08/02/2005 11:16:30 PAGE 17
986 2 new_switch=0;
987 2 }
988 2 */
989 2 if(urgent_stop==1)
990 2 goto BEGIN;
991 2 }
992 1 EX1=1;
993 1 n_pulse=pp.t14%256;
994 1 n_base=pp.t15%256;
995 1 if(pp.k1==PDC&&pp.syn_type==ON)
996 1 {
997 2 CTCON=CTCON|0x02;
998 2 IEN1=IEN1|0x01;
999 2 }
1000 1
1001 1 work=3; //进入焊接过程
1002 1 IEN1=IEN1&0xBF; //禁止CM2,停水计时
1003 1 CML1=TML2+0XE2; //峰值时间
1004 1 if(CML1<TML2)
1005 1 CMH1=(TMH2+1)+0X04;
1006 1 else
1007 1 CMH1=TMH2+0X04;
1008 1 CML2=TML2+0x24;
1009 1 if(CML2<TML2)
1010 1 CMH2=TMH2+1+0xF4;
1011 1 else
1012 1 CMH2=TMH2+0xF4;
1013 1 delt1=(pp.t13*1000000)/(pp.i14-pp.i12);
1014 1 if(delt1%256>=200)
1015 1 delt1=delt1/256+1;
1016 1 else
1017 1 delt1=delt1/256;
1018 1
1019 1 if(YOUHU==1)
1020 1 {
1021 2 while(igniting==0)
1022 2 {
1023 3 if(urgent_stop==1)
1024 3 goto BEGIN;
1025 3 if(open_gas1==1)
1026 3 {
1027 4 ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
1028 4 s_byte_nums=4;
1029 4 TR_noans();
1030 4 con_gas1=0; //开气1
1031 4 con_water=0; //开水
1032 4 open_gas1=0;
1033 4 }
1034 3 if(open_gas2==1)
1035 3 {
1036 4 ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
1037 4 s_byte_nums=4;
1038 4 TR_noans();
1039 4 con_gas2=0; //开气2
1040 4 con_water=0; //开水
1041 4 open_gas2=0;
1042 4 }
1043 3 if(resend==1)
1044 3 {
1045 4 ini_sbuf(M_main,answer,S_ANSW,0,0,0,0);
1046 4 s_byte_nums=4;
1047 4 TR_noans();
C51 COMPILER V7.06 CURRENT3 08/02/2005 11:16:30 PAGE 18
1048 4 resend=0;
1049 4 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -