📄 osc3.lst
字号:
920 3 }
921 2
922 2 if(receive_p_out==1)
923 2 {
C51 COMPILER V7.06 OSC3 09/27/2005 14:37:42 PAGE 16
924 3 point=&pp.k4;
925 3 for(p_sec=0;p_sec<14;p_sec++)
926 3 *(point+p_sec)=rbuffer[p_sec*2+2]*256+rbuffer[p_sec*2+3];
927 3 ini_sbuf(M_main,answer,S_ANSW,0,0,0);
928 3 s_byte_nums=4;
929 3 TR_noans();
930 3 receive_p_out=0;
931 3 }
932 2
933 2 if(receive_p_in==1)
934 2 {
935 3 point=&pp.x[nonce_sec][0];
936 3 for(p_sec=0;p_sec<6;p_sec++)
937 3 *(point+p_sec)=rbuffer[p_sec*2+3]*256+rbuffer[p_sec*2+4];
938 3
939 3 ini_sbuf(M_main,answer,S_ANSW,0,0,0);
940 3 s_byte_nums=4;
941 3 TR_noans();
942 3 receive_p_in=0;
943 3 }
944 2
945 2 if(osc_l==1)
946 2 {
947 3 gate=1; //给出横摆脉冲
948 3 osc_dir=0; //左
949 3 osc_enable=0; //开使能
950 3 osc_l=0;
951 3 }
952 2
953 2 if(osc_r==1)
954 2 {
955 3 gate=1; //开8254门控信号
956 3 osc_dir=1; //右
957 3 osc_enable=0; //开使能
958 3 osc_r=0;
959 3 }
960 2
961 2 if(motor_stop==1)
962 2 {
963 3 gate=0; //关横摆脉冲
964 3 osc_enable=1;
965 3 motor_stop=0;
966 3 }
967 2
968 2 if(urgent_stop==1)
969 2 goto BEGIN;
970 2 }
971 1
972 1 if(pp.k4==ON)
973 1 {
974 2 const1=pp.a41;
975 2 c_t42_l=pp.t42_l*5; //pp.t42_l/10*1000/50
976 2 c_t42_r=pp.t42_r*5;
977 2 c_change=pp.t43%256;
978 2
979 2 temp_out0=900000/pp.v41; //横摆脉冲, 时钟4M,4*60*0.01*1000000
980 2 static_out0=900000/start_v;
981 2 if(temp_out0>=static_out0)
982 2 delt_out0=temp_out0-static_out0;
983 2 else
984 2 delt_out0=static_out0-temp_out0;
985 2
C51 COMPILER V7.06 OSC3 09/27/2005 14:37:42 PAGE 17
986 2 temp_out1=pp.a41*80/3; //横摆半宽脉冲
987 2 delt_out1=temp_out1;
988 2
989 2 out0=static_out0;
990 2 out1=delt_out1/c_change;
991 2 out2=2*out1; //横摆整宽脉冲
992 2 COM=0X36;
993 2 COUNT0=out0%256;
994 2 COUNT0=out0/256;
995 2 COM=0X76;
996 2 COUNT1=out1%256;
997 2 COUNT1=out1/256; //半个摆宽
998 2 COM=0XB6;
999 2 COUNT2=out1%256;
1000 2 COUNT2=out1/256; //整个摆宽
1001 2 }
1002 1 work=3; //关8254门控信号
1003 1 nonce_sec=0;
1004 1 do
1005 1 {
1006 2 if(start_osc==1) //开始横摆
1007 2 {
1008 3 ini_sbuf(M_main,answer,S_ANSW,0,0,0);
1009 3 s_byte_nums=4;
1010 3 TR_noans();
1011 3 osc_dir=0; //方向——左
1012 3 osc_enable=0; //开横摆使能
1013 3 CTCON=CTCON|0x08; //CT1下降沿
1014 3 IEN1=IEN1|0X02; //允许CT1
1015 3 sec_center=1;
1016 3 sec_change=1;
1017 3 temp_c_change=0;
1018 3 share=1;
1019 3 osc_ok=1;
1020 3 osc_started=1;
1021 3 start_osc=0;
1022 3 gate=1;
1023 3 osc_out=1;
1024 3 }
1025 2
1026 2 if(in_sector==1&&new_sector==1&&osc_ok==0)
1027 2 {
1028 3 c_t42_l=pp.x[nonce_sec][1]*5; //pp.t42_l/10*1000/50
1029 3 c_t42_r=pp.x[nonce_sec][2]*5;
1030 3 c_change=pp.x[nonce_sec][5]%256;
1031 3 const1=pp.x[nonce_sec][4];
1032 3 temp_out0=900000/pp.x[nonce_sec][3]; //横摆脉冲, 时钟4M,4*60*0.01*1000000
1033 3 static_out0=900000/start_v;
1034 3 if(temp_out0>=static_out0)
1035 3 delt_out0=temp_out0-static_out0;
1036 3 else
1037 3 delt_out0=static_out0-temp_out0;
1038 3
1039 3 temp_out1=pp.x[nonce_sec][4]*80/3;
1040 3 delt_out1=temp_out1;
1041 3
1042 3 out0=static_out0;
1043 3 out1=delt_out1/c_change;
1044 3 out2=2*out1; //横摆整宽脉冲
1045 3 COM=0X36;
1046 3 COUNT0=out0%256;
1047 3 COUNT0=out0/256;
C51 COMPILER V7.06 OSC3 09/27/2005 14:37:42 PAGE 18
1048 3 COM=0X76;
1049 3 COUNT1=out1%256;
1050 3 COUNT1=out1/256; //半个摆宽
1051 3 COM=0XB6;
1052 3 COUNT2=out1%256;
1053 3 COUNT2=out1/256; //整个摆宽
1054 3 if(K4==ON&&osc_started==1)
1055 3 {
1056 4 osc_dir=0; //方向——左
1057 4 osc_enable=0; //开横摆使能
1058 4 CTCON=CTCON|0x08; //CT1下降沿
1059 4 IEN1=IEN1|0X02; //允许CT1
1060 4 osc_ok=1;
1061 4 sec_center=1;
1062 4 sec_change=1;
1063 4 temp_c_change=0;
1064 4 share=1;
1065 4 osc_add=0;
1066 4 osc_dec=0;
1067 4 gate=1;
1068 4 osc_out=1;
1069 4 }
1070 3 }
1071 2 if(urgent_stop==1)
1072 2 goto BEGIN;
1073 2 if(osc_ok==0&¢er_excursion==1) //未开自动横摆时的左右调整
1074 2 {
1075 3 if(excursion_dir==0)
1076 3 osc_dir=0; //左
1077 3 else
1078 3 osc_dir=1;
1079 3 CTCON=CTCON|0X02;
1080 3 COM=0X76;
1081 3 COUNT1=10;
1082 3 COUNT1=0;
1083 3 IEN1=IEN1|0X01;
1084 3 gate=1;
1085 3 osc_enable=0; //开横摆使能
1086 3 center_excursion=0;
1087 3 center_change=1;
1088 3 }
1089 2
1090 2 if(urgent_stop==1)
1091 2 goto BEGIN;
1092 2 }while(decrease==0);
1093 1
1094 1 while(to_begin==0)
1095 1 {
1096 2 if(urgent_stop==1)
1097 2 goto BEGIN;
1098 2 }
1099 1 goto BEGIN;
1100 1 }
C51 COMPILER V7.06 OSC3 09/27/2005 14:37:42 PAGE 19
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
K4 . . . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
osc_out. . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C6H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
osc_ok . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0001H 1
temp_c_t2. . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
P4 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C0H 1
resend . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0002H 1
c_decrease . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0001H 1
P5 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C4H 1
err_ok . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0003H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
sec_change . . . . . . . . . . . . . . PUBLIC DATA BIT 0004H 1
excursion_dir. . . . . . . . . . . . . PUBLIC DATA BIT 0005H 1
CMH0 . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C9H 1
out0 . . . . . . . . . . . . . . . . . PUBLIC XDATA U_INT 0000H 2
CMI0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1
out1 . . . . . . . . . . . . . . . . . PUBLIC XDATA U_INT 0002H 2
out2 . . . . . . . . . . . . . . . . . PUBLIC XDATA U_INT 0004H 2
FF . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0002H 1
p_sec. . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0003H 1
CML0 . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A9H 1
IEN1 . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E8H 1
osc_change . . . . . . . . . . . . . . PUBLIC DATA BIT 0006H 1
CTI0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1
osc_enable . . . . . . . . . . . . . . ABSBIT ----- BIT 00C4H 1
CTI1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1
osc_l. . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0007H 1
CTI2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CAH 1
delt_out0. . . . . . . . . . . . . . . PUBLIC DATA U_INT 0004H 2
share. . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0006H 1
delt_out1. . . . . . . . . . . . . . . PUBLIC DATA U_INT 0007H 2
P1_6 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0096H 1
P1_7 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0097H 1
osc_r. . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0008H 1
EX0_INT. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
EX1_INT. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
get_err. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
PROGRAM. . . . . . . . . . . . . . . . TYPEDEF ----- STRUCT ----- 148
k4 . . . . . . . . . . . . . . . . . MEMBER ----- U_INT 0000H 2
syn_type . . . . . . . . . . . . . . MEMBER ----- U_INT 0002H 2
t41. . . . . . . . . . . . . . . . . MEMBER ----- U_INT 0004H 2
t41_sd . . . . . . . . . . . . . . . MEMBER ----- U_INT 0006H 2
t42_l. . . . . . . . . . . . . . . . MEMBER ----- U_INT 0008H 2
t42_r. . . . . . . . . . . . . . . . MEMBER ----- U_INT 000AH 2
v41. . . . . . . . . . . . . . . . . MEMBER ----- U_IN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -