📄 step.lst
字号:
202 4 ZLG7290_SendBuf(Place,8);
203 4 delay10ms(1);
204 4 while(1)
205 4 {
206 5 KEY=0; //清键值
207 5 FLAG=1; //数码管闪烁标志位1(第1位闪烁)
208 5 if(KEY==6)
209 5 {
210 6 KEY=0; //清键值
211 6 Place[0]+=1;
212 6 while(Place[0]>9)
213 6 Place[0]=0;
214 6 }
215 5 else if(KEY==4)
216 5 break;
217 5 }
218 4 while(1)
219 4 {
220 5 KEY=0; //清键值
221 5 FLAG=2; //数码管闪烁标志位2(第2位闪烁)
222 5 if(KEY==6)
223 5 {
224 6 KEY=0; //清键值
225 6 Place[1]+=1;
226 6 while(Place[1]>9)
227 6 Place[1]=0;
228 6 }
229 5 else if(KEY==4)
230 5 break;
231 5 }
232 4 while(1)
233 4 {
234 5 KEY=0; //清键值
235 5 FLAG=5; //数码管闪烁标志位5(第5位闪烁)
236 5 if(KEY==6)
237 5 {
238 6 KEY=0; //清键值
239 6 Place[4]+=1;
240 6 while(Place[4]>9)
241 6 Place[4]=0;
C51 COMPILER V7.07 STEP 11/14/2007 10:28:44 PAGE 5
242 6 }
243 5 else if(KEY==4)
244 5 break;
245 5 }
246 4 while(1)
247 4 {
248 5 KEY=0; //清键值
249 5 FLAG=6; //数码管闪烁标志位6(第6位闪烁)
250 5 if(KEY==6)
251 5 {
252 6 KEY=0; //清键值
253 6 Place[5]+=1;
254 6 while(Place[5]>9)
255 6 Place[5]=0;
256 6 }
257 5 else if(KEY==4)
258 5 break;
259 5 }
260 4 KEY=0; //清键值
261 4 FLAG=0; //数码管闪烁标志位0(无闪烁)
262 4 Xe=Place[1]*10+Place[0];//Led2[3]*1000+Led2[2]*100+Led2[1]*10+Led2[0];//计算并存储所设坐标
263 4 Ye=Place[5]*10+Place[4];//Led2[7]*1000+Led2[6]*100+Led2[5]*10+Led2[4];
264 4 }
265 3 while(KEY==7) //电机X单独运行
266 3 {
267 4 Speed[4]=0;Speed[5]=0;Speed[6]=0;Speed[7]=0;
268 4 Speed[0]=SpeedX%10;Speed[1]=(SpeedX%100)/10;Speed[2]=SpeedX/100;Speed[3]=10;//显示X电机速度
269 4 ZLG7290_SendBuf(Speed,8);
270 4 delay10ms(1);
271 4 for(i=0;i<8;i++)
272 4 {
273 5 P1=StepX1[i];
274 5 // time1_int(Tx);
275 5 delay10ms(6000/SpeedX);
276 5 }
277 4 }
278 3 while(KEY==8) //电机Y单独运行
279 3 {
280 4 Speed[4]=0;Speed[5]=0;Speed[6]=0;Speed[7]=0;
281 4 Speed[0]=SpeedY%10;Speed[1]=(SpeedY%100)/10;Speed[2]=SpeedY/100;Speed[3]=10;//显示X电机速度
282 4 ZLG7290_SendBuf(Speed,8);
283 4 delay10ms(1);
284 4 for(i=0;i<8;i++)
285 4 {
286 5 P1=StepY1[i];
287 5 // time1_int(Tx);
288 5 delay10ms(6000/SpeedY);
289 5 }
290 4 }
291 3 }
292 2 }
293 1 }
294 //------------------------------------------------------------------------------------
295 // 函数名称:Go_line()
296 // 函数功能:直线差补算法---前进
297 //------------------------------------------------------------------------------------
298 void Go_line(void)
299 {
300 1 unsigned int i,j;
301 1 // time0_tmp=0x4000; //改变定时显示初值
302 1 Nxy=Xe+Ye; //计算总步数
303 1 if(FLAG2==1) //电机正反转切换标志位1(让电机仅正转1次)
C51 COMPILER V7.07 STEP 11/14/2007 10:28:44 PAGE 6
304 1 return;
305 1
306 1 while(Nxy!=0) //差补算法
307 1 {
308 2 if(Fm>=0)
309 2 {
310 3 for(j=0;j<circle;j++)
311 3 {
312 4 for(i=0;i<8;i++)
313 4 {
314 5 P1=StepX1[i];
315 5 delay10ms(6000/SpeedX);
316 5 // time1_int(Tx);
317 5 }
318 4 }
319 3 Xi+=1;
320 3 Fm-=Ye;
321 3 }
322 2 else
323 2 {
324 3 for(j=0;j<circle;j++)
325 3 {
326 4 for(i=0;i<8;i++)
327 4 {
328 5 P1=StepY1[i];
329 5 delay10ms(6000/SpeedY);
330 5 // time1_int(Ty);
331 5 }
332 4 }
333 3 Yi+=1;
334 3 Fm+=Xe;
335 3 }
336 2 Nxy--;
337 2 FLAG2=1; //电机正反转切换标志位1(正转)
338 2 Place[3]=Xi/1000;Place[2]=(Xi%1000)/100;Place[1]=(Xi%100)/10;Place[0]=Xi%10;//显示当前坐标
339 2 Place[7]=Yi/1000;Place[6]=(Yi%1000)/100;Place[5]=(Yi%100)/10;Place[4]=Yi%10;
340 2 ZLG7290_SendBuf(Place,8);
341 2 delay10ms(1);
342 2 }
343 1 }
344 //------------------------------------------------------------------------------------
345 // 函数名称:Back_line()
346 // 函数功能:直线差补算法---回零
347 //------------------------------------------------------------------------------------
348 void Back_line(void)
349 {
350 1 unsigned int i,j;
351 1 // time0_tmp=0x4000; //改变定时显示初值
352 1 Nxy=Xe+Ye; //计算总步数
353 1 Fm=0; //加工点偏差置0
354 1 if(FLAG2==0) //电机正反转切换标志位0(让电机仅反转1次)
355 1 return;
356 1
357 1 while(Nxy!=0)
358 1 {
359 2 if(Fm>=0)
360 2 {
361 3 for(j=0;j<circle;j++)
362 3 {
363 4 for(i=0;i<8;i++)
364 4 {
365 5 P1=StepX2[i];
C51 COMPILER V7.07 STEP 11/14/2007 10:28:44 PAGE 7
366 5 // time1_int(Tx);
367 5 delay10ms(6000/SpeedX);
368 5 }
369 4 }
370 3 Xi-=1;
371 3 Fm-=Ye;
372 3 }
373 2 else
374 2 {
375 3 for(j=0;j<circle;j++)
376 3 {
377 4 for(i=0;i<8;i++)
378 4 {
379 5 P1=StepY2[i];
380 5 // time1_int(Ty);
381 5 delay10ms(6000/SpeedY);
382 5 }
383 4 }
384 3 Yi-=1;
385 3 Fm+=Xe;
386 3 }
387 2 Nxy--;
388 2 FLAG2=0; //电机正反转切换标志位0(反转)
389 2 Place[3]=Xi/1000;Place[2]=(Xi%1000)/100;Place[1]=(Xi%100)/10;Place[0]=Xi%10;//显示当前坐标
390 2 Place[7]=Yi/1000;Place[6]=(Yi%1000)/100;Place[5]=(Yi%100)/10;Place[4]=Yi%10;
391 2 ZLG7290_SendBuf(Place,8);
392 2 delay10ms(1);
393 2 }
394 1 }
395 //------------------------------------------------------------------------------------
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1977 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 74 9
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -