📄 avc2.lst
字号:
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 + -