📄 avc1.lst
字号:
717 1 ad_finish=1; //AD转换及处理完成标志
718 1 pulse_base=0; //峰、基值标志 0-基值、1-峰值
719 1 stop_avc=0;
720 1 decrease=0;
721 1 lift=0;
722 1 ask_lift_ok=0;
723 1 lift_ok=0;
724 1 lift_complete=0;
725 1 to_begin=0;
726 1
727 1 need_para=0;
728 1 POINTER0=0;
729 1 SSUM=0;
730 1 S_ANSW=0;
731 1 POINTER1=0;
732 1 RSUM=0;
733 1 ans=0;
734 1 // R_ANSW=0;
C51 COMPILER V7.06 AVC1 06/16/2005 14:51:25 PAGE 13
735 1 send=0;
736 1 resend=0;
737 1 r_byte_nums=4;
738 1 demand=0;
739 1
740 1 avc=0;
741 1 avc_up=0;
742 1 avc_down=0;
743 1 motor_stop=0;
744 1
745 1
746 1 PWMP=12; //采样保持脉冲,2K
747 1 PWM0=127;
748 1 COM=0X36; //弧长点动速度,1K
749 1 COUNT0=4000%256;
750 1 COUNT0=4000/256; //弧长采样脉冲,1K
751 1 CML0=TML2+0X20;
752 1 if(CML0<TML2)
753 1 CMH0=TMH2+1+0X4E;
754 1 else
755 1 CMH0=TMH2+0X4E; //20ms
756 1 EX1=1;
757 1 EX0=1;
758 1 while(start==0) //等待过程中,接受点名和参数
759 1 {
760 2 if(called==1)
761 2 {
762 3 ini_sbuf(M_main,infor,S_ANSW,cross_machine,0,0);
763 3 s_byte_nums=get_byte_nums(infor);
764 3 TR_noans();
765 3 called=0;
766 3 }
767 2
768 2 if(receive_p_out==1)
769 2 {
770 3 point=&pp.k5;
771 3 for(p_sec=0;p_sec<14;p_sec++)
772 3 *(point+p_sec)=rbuffer[p_sec*2+2]*256+rbuffer[p_sec*2+3];
773 3 ini_sbuf(M_main,answer,S_ANSW,0,0,0);
774 3 s_byte_nums=4;
775 3 TR_noans();
776 3 // demand=0;
777 3 receive_p_out=0;
778 3 }
779 2
780 2 if(receive_p_in==1)
781 2 {
782 3 point=&pp.x[nonce_sec][0];
783 3 for(p_sec=0;p_sec<4;p_sec++)
784 3 *(point+p_sec)=rbuffer[p_sec*2+3]*256+rbuffer[p_sec*2+4];
785 3 ini_sbuf(M_main,answer,S_ANSW,0,0,0);
786 3 s_byte_nums=4;
787 3 TR_noans();
788 3 // demand=0;
789 3 receive_p_in=0;
790 3 }
791 2
792 2 if(avc_up==1)
793 2 {
794 3 avc_dir=1; //方向——上
795 3 avc_enable=0; //使能
796 3 gate=1;
C51 COMPILER V7.06 AVC1 06/16/2005 14:51:25 PAGE 14
797 3 avc_up=0;
798 3 }
799 2 if(avc_down==1)
800 2 {
801 3 avc_dir=0; //方向——下
802 3 avc_enable=0;
803 3 gate=1;
804 3 avc_down=0;
805 3 }
806 2 if(motor_stop==1)
807 2 {
808 3 gate=0; //关8254门控信号
809 3 avc_enable=1; //关弧长使能
810 3 motor_stop=0;
811 3 }
812 2 if(urgent_stop==1)
813 2 goto BEGIN;
814 2 }
815 1
816 1 temp_u51_p=pp.u51_p;
817 1 temp_u51_b=pp.u51_b;
818 1
819 1 if(pp.k5==OFF)
820 1 {
821 2 COM=0X76;
822 2 COUNT1=10;
823 2 COUNT1=0;
824 2 }
825 1 if(pp.k1==DC)
826 1 temp_avc=temp_u51_p;
827 1 work=3;
828 1 do
829 1 {
830 2 if(start_avc==1) //开始弧长
831 2 {
832 3 ini_sbuf(M_main,answer,S_ANSW,0,0,0);
833 3 s_byte_nums=4;
834 3 TR_noans();
835 3 temp_voltage=0;
836 3 externel_voltage=1;
837 3 c_sample=0;
838 3 CTCON=CTCON&0X3F;
839 3 if(pp.k1==PDC)
840 3 {
841 4 if(pp.avc_type==SP||pp.avc_type==SPB)
842 4 {
843 5 pulse_base=0;
844 5 CTCON=CTCON|0X40; //CT3上升沿
845 5 }
846 4 else
847 4 {
848 5 pulse_base=1;
849 5 CTCON=CTCON|0X80; //CT3下降沿
850 5 }
851 4 IEN1=IEN1|0X08; //允许CT3
852 4 }
853 3 if(pp.k1==DC)
854 3 {
855 4 avc_ok=1;
856 4 c_sample=0;
857 4 CTCON=CTCON|0x20; //CT2下降沿
858 4 IEN1=IEN1|0X04; //允许CT2,采样保持脉冲
C51 COMPILER V7.06 AVC1 06/16/2005 14:51:25 PAGE 15
859 4 }
860 3
861 3 start_avc=0;
862 3 }
863 2
864 2 if(urgent_stop==1)
865 2 goto BEGIN;
866 2
867 2 if(avc_ok==1&&need_para==1) //显示弧压
868 2 {
869 3 U51=AD5;
870 3 ini_sbuf(M_main,parameter1,0,0,0,0);
871 3 sbuffer[2]=U51/256;
872 3 sbuffer[3]=U51%256;
873 3 s_byte_nums=5;
874 3 TR_noans();
875 3 need_para=0;
876 3 }
877 2
878 2 if(urgent_stop==1)
879 2 goto BEGIN;
880 2
881 2 if(avc_up==1)
882 2 {
883 3 if(pp.k5==OFF)
884 3 {
885 4 avc_dir=1; //方向——上
886 4 avc_enable=0; //使能
887 4 CTCON=CTCON|0X02;
888 4 IEN1=IEN1|0X01;
889 4 gate=1;
890 4 }
891 3 else
892 3 {
893 4 if(in_sector==1)
894 4 {
895 5 temp_u51_p=temp_u51_p+pp.x[nonce_sector][29];
896 5 temp_u51_b=temp_u51_b+pp.x[nonce_sector][29];
897 5 }
898 4 else
899 4 {
900 5 temp_u51_p=temp_u51_p+pp.du51;
901 5 temp_u51_b=temp_u51_b+pp.du51;
902 5 }
903 4 if(pp.k1==DC)
904 4 temp_avc=temp_u51_p;
905 4 }
906 3 avc_up=0;
907 3 }
908 2
909 2 if(urgent_stop==1)
910 2 goto BEGIN;
911 2
912 2 if(avc_down==1)
913 2 {
914 3 if(pp.k5==OFF)
915 3 {
916 4 avc_dir=0; //方向——上
917 4 avc_enable=0; //使能
918 4 CTCON=CTCON|0X02;
919 4 IEN1=IEN1|0X01;
920 4 gate=1;
C51 COMPILER V7.06 AVC1 06/16/2005 14:51:25 PAGE 16
921 4 }
922 3 else
923 3 {
924 4 if(in_sector==1)
925 4 {
926 5 temp_u51_p=temp_u51_p-pp.x[nonce_sector][29];
927 5 temp_u51_b=temp_u51_b-pp.x[nonce_sector][29];
928 5 }
929 4 else
930 4 {
931 5 temp_u51_p=temp_u51_p-pp.du51;
932 5 temp_u51_b=temp_u51_b-pp.du51;
933 5 }
934 4 if(pp.k1==DC)
935 4 temp_avc=temp_u51_p;
936 4 }
937 3 avc_down=0;
938 3 }
939 2
940 2 if(urgent_stop==1)
941 2 goto BEGIN;
942 2
943 2 if(sector==1) //进入新区间
944 2 {
945 3 if(avc_ok==1)
946 3 {
947 4 temp_u51_p=pp.x[nonce_sector][26];
948 4 temp_u51_b=pp.x[nonce_sector][27];
949 4 }
950 3 sector=0;
951 3 }
952 2
953 2 if(urgent_stop==1)
954 2 goto BEGIN;
955 2
956 2 if(avc_ok==1&&stop_avc==1)
957 2 {
958 3 ini_sbuf(M_main,answer,S_ANSW,0,0,0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -