📄 dc1.lst
字号:
244 2 case 8: {
245 3 motor_v=6600;
246 3 r=15;
247 3 decrease_rate=549.1;
248 3 }break;
249 2 case 9:
250 2 case 10:{
251 3 motor_v=6600;
252 3 r=16;
253 3 decrease_rate=570;
254 3 }break;
255 2 case 11:
256 2 case 12:
257 2 case 13:{
258 3 motor_v=6600;
259 3 r=176;
260 3 decrease_rate=6329.4;
261 3 }break;
262 2 case 14:{
263 3 motor_v=6600;
264 3 r=55;
265 3 decrease_rate=1972.8;
266 3 }break;
267 2 case 15:{
268 3 motor_v=6600;
269 3 r=103;
270 3 decrease_rate=3699;
271 3 }break;
272 2 case 16:
273 2 case 17:
274 2 case 18:
275 2 case 19:{
276 3 motor_v=6600;
277 3 r=80;
278 3 decrease_rate=2877;
279 3 }break;
280 2 case 20:
281 2 case 21:
282 2 case 22:
283 2 case 23:
284 2 case 24:{
285 3 motor_v=6600;
286 3 r=48;
287 3 decrease_rate=1726.2;
288 3 }break;
289 2 case 25:
290 2 case 26:
291 2 case 27:
292 2 case 28:{
293 3 motor_v=6600;
294 3 r=37;
295 3 decrease_rate=1315.2;
296 3 }break;
297 2 case 29:
298 2 case 30:
299 2 case 31:
300 2 case 32:{
301 3 motor_v=6600;
302 3 r=25;
303 3 decrease_rate=896.8;
C51 COMPILER V7.06 DC1 09/11/2006 08:21:54 PAGE 6
304 3 }break;
305 2 case 33:{
306 3 motor_v=7184;
307 3 r=7;
308 3 decrease_rate=261.2;
309 3 }break;
310 2 case 34:{
311 3 motor_v=7480;
312 3 r=22;
313 3 decrease_rate=783.7;
314 3 }break;
315 2 case 35:{
316 3 motor_v=7440;
317 3 r=18;
318 3 decrease_rate=656.6;
319 3 }break;
320 2 case 36:{
321 3 motor_v=7480;
322 3 r=27;
323 3 decrease_rate=980.28;
324 3 }break;
325 2 case 37:{
326 3 motor_v=6510;
327 3 r=27;
328 3 decrease_rate=980.3;
329 3 }break;
330 2 case 38:{
331 3 motor_v=8380;
332 3 r=131;
333 3 decrease_rate=4700;
334 3 }break;
335 2 default:{
336 3 common=1;
337 3 motor_v=6600;
338 3 r=pp.rn;
339 3 const0=(float)(motor_v)*(float)(tooth_num);
340 3 const0=(float)(const0*3.14);
341 3 const0=(float)(const0/360/r); //motor_v*tooth_num*3.14*pp.d/360/r
342 3 }break;
343 2 }
344 1 }
345
346 unsigned char get_PWM(float aa)
347 {
348 1 unsigned char bb,dd;
349 1 unsigned int cc;
350 1
351 1 cc=(unsigned int)(aa);
352 1 dd=cc;
353 1 bb=(aa-cc)*10;
354 1 if(bb>=5)
355 1 dd=dd+1;
356 1 return dd;
357 1 }
358
359 void EX0_INT (void) interrupt 0 //急停
360 {
361 1 EX1=0;
362 1 send_enable=1; //关发送使能
363 1 POINTER0=0;
364 1 SSUM=0;
365 1 POINTER1=0;
C51 COMPILER V7.06 DC1 09/11/2006 08:21:54 PAGE 7
366 1 RSUM=0;
367 1 r_byte_nums=4;
368 1 PWM0=0;
369 1 PWM1=0;
370 1 wire_back=1;
371 1 wire_front=1;
372 1 rot_right=1;
373 1 rot_left=1;
374 1 while(err_ok==0)
375 1 {
376 2 if(called==1)
377 2 {
378 3 if(rw_err==0)
379 3 {
380 4 ini_sbuf(M_main,answer,OK,0,0,0);
381 4 s_byte_nums=4;
382 4 TR_noans();
383 4 }
384 3 else
385 3 {
386 4 ini_sbuf(M_main,err_infor,M_RW,err,0,0);
387 4 s_byte_nums=5;
388 4 TR_noans();
389 4 rw_err=0;
390 4 err=0;
391 4 stop=1;
392 4 }
393 3 called=0;
394 3 }
395 2 }
396 1 urgent_stop=1;
397 1 }
398
399 void EX1_INT (void) interrupt 2
400 {
401 1 unsigned char get_err;
402 1 EX1=0;
403 1 if(limit==0)
404 1 {
405 2 delay(200);
406 2 if(limit==0)
407 2 err=11; //旋转限位
408 2 else
409 2 err=0;
410 2 }
411 1 else if(wire_over_i==0)
412 1 {
413 2 delay(200);
414 2 if(wire_over_i==0)
415 2 err=10;
416 2 else
417 2 err=0;
418 2 }
419 1 else
420 1 {
421 2 get_err=P5;
422 2 get_err=get_err&0x04;
423 2 if(get_err==0)
424 2 {
425 3 delay(200);
426 3 get_err=P5;
427 3 get_err=get_err&0x04;
C51 COMPILER V7.06 DC1 09/11/2006 08:21:54 PAGE 8
428 3 if(get_err==0)
429 3 err=9;
430 3 else
431 3 err=0;
432 3 }
433 2 }
434 1 if(err!=0)
435 1 {
436 2 rw_err=1;
437 2 stop=0;
438 2 }
439 1 else
440 1 EX1=1;
441 1 }
442
443 void T1_INT (void) interrupt 3
444 {
445 1 c_t1++;
446 1 if(send==1)
447 1 {
448 2 if(c_t1==7)
449 2 {
450 3 S0BUF=sbuffer[POINTER0];
451 3 c_t1=0;
452 3 }
453 2 }
454 1 else
455 1 {
456 2 if(c_t1==100)
457 2 {
458 3 TR1=0;
459 3 overtime=1;
460 3 }
461 2 }
462 1 }
463
464 void TR_INT (void) interrupt 4 //串行口中断
465 {
466 1 EA=0; //关中断
467 1 if(TI==1) //发送完成
468 1 {
469 2 TI=0;
470 2 POINTER0++; //发送缓冲指针加1
471 2 if(POINTER0<s_byte_nums-1)
472 2 SSUM=SSUM+sbuffer[POINTER0]; //6个数据字节求和
473 2 else
474 2 sbuffer[s_byte_nums-1]=SSUM+sbuffer[0]; //数据和加地址生成校验码
475 2 if(POINTER0==s_byte_nums)
476 2 REN=1;
477 2 }
478 1
479 1 if(RI==1) //接收完成
480 1 {
481 2 RI=0;
482 2 POINTER1++; //接收缓冲指针加1
483 2 rbuffer[POINTER1-1]=S0BUF; //从接收缓冲读出数据
484 2 if(rbuffer[0]==M_RW||rbuffer[0]==M_ALL||rbuffer[0]==M_current_RW)
485 2 {
486 3 SM2=0;
487 3 if(POINTER1==2) //获取字节个数
488 3 r_byte_nums=get_byte_nums(rbuffer[1]);
489 3 if(POINTER1<r_byte_nums)
C51 COMPILER V7.06 DC1 09/11/2006 08:21:54 PAGE 9
490 3 RSUM=RSUM+rbuffer[POINTER1-1]; //生成校验码
491 3 else
492 3 {
493 4 SM2=1;
494 4 if(RSUM==rbuffer[r_byte_nums-1])
495 4 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -