📄 dc1_test.lst
字号:
C51 COMPILER V7.06 DC1_TEST 09/14/2005 10:00:17 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DC1_TEST
OBJECT MODULE PLACED IN E:\NEWMAC~1\050808\DC\DC1_TEST.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E:\NEWMAC~1\050808\DC\DC1_TEST.C DB SB OE
stmt level source
1 #include <dc.h>
2
3 sbit stop=P3^5;
4 sbit wire_back=P4^4;
5 sbit wire_front=P4^5;
6 sbit rot_right=P4^6;
7 sbit rot_left=P4^7;
8 sbit send_enable=P3^4;
9 sbit limit=P4^3;
10 sbit wire_over_i=P1^2;
11 xdata unsigned char rbuffer[55],sbuffer[6];
12 unsigned char COMM,SLA,FF,GET,POINTER0,SSUM,POINTER1,RSUM,c_t1,s_byte_nums,r_byte_nums,pulse_num,
13 err,WIRE,S_ANSW,nonce_sec,work,p_sec,K21,K3,K31,tooth_num,
14 temp_pulse_num,pulse_num1,temp_pulse_num1,delt_state,rot_slope_delt,wire_slope_delt;
15
16 unsigned int *point,rot_vp,temp_rot_vp,rot_vb,temp_rot_vb,wire_vp,temp_wire_vp,wire_vb,
17 temp_wire_vb,n_cm0,c_cm0,n_cm1,c_cm1,n_cm2,c_cm2,FINISH,temp_FINISH,delt_rot,delt_wire,motor_v;
18 unsigned int r;
19 unsigned long const1;
20 float temp_data0,const0,temp_data00;
21 bit send,overtime,start,decrease,urgent_stop,rot_front,rot_reverse,wire_add,
22 wire_dec,rot_ok,wire_ok,in_sector,receive_p_out,receive_p_in,demand,need_para,
23 rot_stop,rot_stop_ok,called,p_b,new_sector,start_rot,start_wire,stop_wire,r_slope_ok,
24 w_slope_ok,retract,return_ok,retract_ok,motor_stop,auto_return,resend,ans,
25 to_begin,noans_ok,ask_return_ok,k_r_p_add,k_r_b_add,k_r_p_dec,k_r_b_dec,k22,k33,k44;
26 bit kk,rw_err,err_ok;
27
28 void start_t2()
29 {
30 1 TM2CON=0x85; //16位溢出,分频系数2,f/12
31 1 EA=1;
32 1 TM2IR=0;
33 1 }
34
35 void ini_sbuf(unsigned char a,b,c,d,e,f)
36 {
37 1 sbuffer[0]=a;
38 1 sbuffer[1]=b;
39 1 sbuffer[2]=c;
40 1 sbuffer[3]=d;
41 1 sbuffer[4]=e;
42 1 sbuffer[5]=f;
43 1 }
44
45 unsigned char get_byte_nums(unsigned char type)
46 {
47 1 unsigned char numbers;
48 1 switch(type)
49 1 {
50 2 case infor_sec:
51 2 case command:
52 2 case program:
53 2 case answer: numbers=4;
54 2 break;
55 2 case err_infor:
C51 COMPILER V7.06 DC1_TEST 09/14/2005 10:00:17 PAGE 2
56 2 case parameter1: numbers=5;
57 2 break;
58 2 case parameter:
59 2 case infor: numbers=6;
60 2 break;
61 2 case parameter2: numbers=7;
62 2 break;
63 2 case call_result: numbers=8;
64 2 break;
65 2 case p_out_sec: numbers=55;
66 2 break;
67 2 case p_in_sec: numbers=24;
68 2 break;
69 2 case edit_sec: numbers=64;
70 2 break;
71 2 default: break;
72 2 }
73 1 return numbers;
74 1 }
75
76 void TR_noans()
77 {
78 1 noans_ok=0;
79 1 POINTER0=0;
80 1 SSUM=0;
81 1 send=1;
82 1 c_t1=0;
83 1 send_enable=0; //开发送使能
84 1 TR1=1;
85 1 while(POINTER0<s_byte_nums);
86 1 TR1=0;
87 1 send_enable=1; //关发送使能
88 1 noans_ok=1;
89 1 }
90
91 void delay(unsigned char num)
92 {
93 1 unsigned char i,ii;
94 1 for(i=0;i<num;i++)
95 1 {
96 2 for(ii=0;ii<255;ii++);
97 2 }
98 1 }
99
100 void TR_ans()
101 {
102 1 ans=1;
103 1 REN=0;
104 1 POINTER1=0;
105 1 RSUM=0;
106 1 TB8=1;
107 1 POINTER0=0;
108 1 SSUM=0;
109 1 send=1;
110 1 c_t1=0;
111 1 send_enable=0; //开发送使能
112 1 TR1=1;
113 1 while(POINTER0<s_byte_nums);
114 1 TR1=0;
115 1 send_enable=1; //关发送使能
116 1
117 1 REN=1;
C51 COMPILER V7.06 DC1_TEST 09/14/2005 10:00:17 PAGE 3
118 1 send=0;
119 1 c_t1=0;
120 1 // TR1=1;
121 1 while(POINTER1<r_byte_nums&&overtime==0);
122 1 TR1=0;
123 1 if(overtime==1)
124 1 {
125 2 err=2; //通信出错
126 2 overtime=0;
127 2 }
128 1 ans=0;
129 1 }
130
131 void com_type()
132 {
133 1 switch(rbuffer[2])
134 1 {
135 2 case com_calling: called=1;break;
136 2 case com_demand: {
137 3 if(demand==0)
138 3 demand=1;
139 3 }break;
140 2 case com_need_para: need_para=1;break;
141 2 case com_start: start=1;break;
142 2 case com_rot_front: { //正转
143 3 if(rot_front==0)
144 3 rot_front=1;
145 3 }break;
146 2 case com_rot_reverse: { //反转
147 3 if(rot_reverse==0)
148 3 rot_reverse=1;
149 3 }break;
150 2 case com_wire_add: { //送丝
151 3 if(work==0)
152 3 {
153 4 // if(wire_add==0&&WIRE==ON)
154 4 wire_add=1;
155 4 }
156 3 if(work==3)
157 3 {
158 4 if(wire_add==0&&WIRE==ON&&pp.k3==ON)
159 4 wire_add=1;
160 4 }
161 3 }break;
162 2 case com_wire_dec: { //抽丝
163 3 if(work==0)
164 3 {
165 4 // if(wire_dec==0&&WIRE==ON)
166 4 wire_dec=1;
167 4 }
168 3 if(work==3)
169 3 {
170 4 if(wire_dec==0&&WIRE==ON&&pp.k3==ON)
171 4 wire_dec=1;
172 4 }
173 3 }break;
174 2 case com_motor_stop: { //停止点动
175 3 if(motor_stop==0)
176 3 motor_stop=1;
177 3 }break;
178 2 case com_pre_melt_ok: start_rot=1;break;
179 2 case com_decrease: decrease=1;break;
C51 COMPILER V7.06 DC1_TEST 09/14/2005 10:00:17 PAGE 4
180 2 case com_decrease_ok: rot_stop=1;break;
181 2 case com_wire: start_wire=1;break;
182 2 case com_stopW: {
183 3 stop_wire=1;
184 3
185 3 }break;
186 2 case com_return: auto_return=1;break;
187 2 case com_return_ok: return_ok=1;break;
188 2 case com_goto_begin: to_begin=1;break;
189 2 case com_err_ok: err_ok=1;break;
190 2 default: break;
191 2 }
192 1 }
193
194 void data_type() //对接收到的数据分辨类型
195 {
196 1 switch(rbuffer[1])
197 1 {
198 2 case command: com_type();break;
199 2 // case answer: R_ANSW=rbuffer[2];break;
200 2 case infor: {
201 3 switch(rbuffer[2])
202 3 {
203 4 case com_sector: {
204 5 nonce_sec=rbuffer[3];
205 5 in_sector=1;
206 5 new_sector=1;
207 5 }break;
208 4 case com_wire_on_off: WIRE=rbuffer[3];break;//送丝开关
209 4 case com_delt_switch: delt_state=rbuffer[3];break;
210 4 default: break;
211 4 }
212 3 }break;
213 2 case p_out_sec: receive_p_out=1;break;
214 2 case p_in_sec: {
215 3 nonce_sec=rbuffer[2];
216 3 receive_p_in=1;
217 3 }break;
218 2 case parameter1:FINISH=rbuffer[2]*256+rbuffer[3];break;
219 2 default: break;
220 2 }
221 1 }
222
223 void get_v_r()
224 {
225 1 switch(pp.rn/256)
226 1 {
227 2 case 1: {
228 3 motor_v=6600;
229 3 r=25;
230 3 }break;
231 2 case 2:
232 2 case 3:
233 2 case 4:
234 2 case 5:
235 2 case 6: {
236 3 motor_v=6600;
237 3 r=28;
238 3 }break;
239 2 case 7: {
240 3 motor_v=6600;
241 3 r=25;
C51 COMPILER V7.06 DC1_TEST 09/14/2005 10:00:17 PAGE 5
242 3 }break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -