📄 motor.lst
字号:
159 4 { P1= REV2[m];
160 5 motorstep2++;
161 5 if(motorstep2==1)EX1=1;
162 5 m++;
163 5 if(m==4)m=0;
164 5 delay();
165 5 }
166 4
167 4
168 4 }
169 3
170 3
171 3 else {
172 4
173 4 while(motorstep2<=con_step)
174 4 { P1= FFW2[m];
C51 COMPILER V8.02 MOTOR 04/06/2008 11:49:11 PAGE 4
175 5 motorstep2++;
176 5 if(motorstep2==1)EX1=1;
177 5 m++;
178 5
179 5 if(m==4)m=0;
180 5 delay();
181 5 }
182 4
183 4
184 4 }
185 3
186 3
187 3
188 3 EA=1;
189 3
190 3 //延时1000*10ms=10s
191 3 for(a=0;a<=1000;a++)
192 3 for(b=0;b<=10;b++)
193 3 for(c=0;c<=120;c++);
194 3
195 3
196 3 for(a=0;a<=20;a++) {ET0=0; ET1=0;}
197 3
198 3 //返回致零角度
199 3 if(con_direction==1) {
200 4 while(motorstep2!=0)
201 4 { P1= FFW2[m];
202 5
203 5 motorstep2++;
204 5 if(motorstep2==1)EX1=1;
205 5 m++;
206 5 if(m==4)m=0;
207 5 delay();
208 5 }
209 4 }
210 3
211 3
212 3 else if(con_direction==0) { while(motorstep2!=0)
213 4 { P1= REV2[m];
214 5 motorstep2++;
215 5 if(motorstep2==1)EX1=1;
216 5 m++;
217 5 if(m==4)m=0;
218 5 delay();
219 5 } }
220 3
221 3
222 3 for(a=0;a<=20;a++){ET0=1;ET1=1;}
223 3
224 3
225 3 SingalFlag=0;
226 3
227 3
228 3 }
229 2
230 2 }
231 1
232 1
233 1 }
234
235
236
C51 COMPILER V8.02 MOTOR 04/06/2008 11:49:11 PAGE 5
237
238
239 /********************************************************外部0中断服务——MOTOR1零角度中断****************
-*/
240 int0_srv() interrupt 0 using 0 //电机起始定位ISP
241 {
242 1
243 1 EX0=0; //关中断0
244 1
245 1 StartFlag1^=1;
246 1 motorstep1=0;
247 1 //开中断
248 1
249 1
250 1
251 1 }
252
253
254
255
256
257 /**********************************************************外部中断1服务—— ****************************
-******/
258
259 int1_srv() interrupt 2 using 2
260 {
261 1
262 1
263 1
264 1 EX1=0;
265 1 StartFlag2^=1;
266 1 motorstep2=0;
267 1
268 1
269 1
270 1 }
271
272
273
274
275 /********************************************定时器0中断服务——MOTOR1步进中断****************************
-***********************/
276 void timer0(void) interrupt 1 using 1
277 {
278 1
279 1 TH0=-50000/256;
280 1 TL0=-50000%256;
281 1
282 1
283 1 if( StartFlag1==1)P1 = REV1[j];
284 1 else P1 = FFW1[j];
285 1
286 1 count1++;
287 1 if(count1==10)
288 1 {count1=0;
289 2 motorstep1++;
290 2 if(motorstep1==12)EX0=1;
291 2 j++;
292 2 if(j==4){j=0;}
293 2 }
294 1
295 1 }
C51 COMPILER V8.02 MOTOR 04/06/2008 11:49:11 PAGE 6
296
297
298 /********************************定时器3——热释红外输入服务**************************************/
299 void timer1(void) interrupt 3 using 3
300
301 {
302 1
303 1
304 1 SingalFlag=1;
305 1 con_step=motorstep1;
306 1
307 1
308 1
309 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 427 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
IDATA SIZE = ---- ----
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -