📄 pid.lst
字号:
454 2 POINTER1=0;
455 2 }
456 1 EA=1; //开中断
457 1 }
458
459 void CT0_int (void) interrupt 6 //焊接角度
460 {
461 1 CTI0=0;
462 1 rot_num++;
463 1 if(auto_return==0)
464 1 {
465 2 if(FINISH<=50000)
466 2 {
467 3 temp_pulse_num++;
468 3 temp_pulse_num1++;
469 3 if(temp_pulse_num1==pulse_num1)
470 3 {
471 4 temp_FINISH++;
472 4 FINISH=temp_FINISH*10;
473 4 temp_pulse_num1=0;
474 4 }
475 3
476 3 if(temp_pulse_num==pulse_num)
477 3 {
478 4 FINISH++;
479 4 temp_pulse_num=0;
480 4 }
481 3 }
482 2 else
483 2 {
484 3 IEN1=IEN1&0XFE; //CT0
485 3 temp_pulse_num=0;
486 3 }
487 2 }
488 1 else
489 1 {
C51 COMPILER V7.06 PID 09/08/2005 15:02:37 PAGE 9
490 2 if(FINISH>10)
491 2 {
492 3 temp_pulse_num++;
493 3 if(temp_pulse_num==pulse_num1)
494 3 {
495 4 FINISH=FINISH-10;
496 4 temp_pulse_num=0;
497 4 }
498 3 }
499 2 else
500 2 {
501 3 if(FINISH>0)
502 3 {
503 4 temp_pulse_num++;
504 4 if(temp_pulse_num>=pulse_num)
505 4 {
506 5 FINISH--;
507 5 temp_pulse_num=0;
508 5 }
509 4 }
510 3 else
511 3 {
512 4 PWM0=0;
513 4 rot_enable=0;
514 4 IEN1=IEN1&0XFE; //CT0
515 4 }
516 3 }
517 2 }
518 1 }
519
520 void CT1_int (void) interrupt 7
521 {
522 1 CTI1=0;
523 1 wire_pid_num++;
524 1 }
525
526 void CT3_int (void) interrupt 9 //电流脉冲
527 {
528 1 CTI3=0;
529 1 CTCON=CTCON&0X3F;
530 1 IEN1=IEN1&0XF7; //CT3
531 1 p_b=~p_b;
532 1 if(p_b==1) //峰值
533 1 {
534 2 if(rot_ok==1&&K21==ON)
535 2 PWM0=temp_rot_vp;
536 2 if(wire_ok==1&&WIRE==ON&&K31==ON)
537 2 PWM1=temp_wire_vp;
538 2 CTCON=CTCON|0X80; //CT3捕捉上升沿
539 2 }
540 1 else
541 1 {
542 2 if(rot_ok==1&&K21==ON)//&&r_slope_ok==1)
543 2 PWM0=temp_rot_vb;
544 2 if(wire_ok==1&&WIRE==ON&&K31==ON)//&&w_slope_ok==1)
545 2 PWM1=temp_wire_vb;
546 2 CTCON=CTCON|0X40; //CT3捕捉下降沿
547 2 }
548 1 IEN1=IEN1|0X08; //CT3
549 1 }
550
551 void CM0_INT (void) interrupt 11 //送丝速度变化时间/抽丝时间
C51 COMPILER V7.06 PID 09/08/2005 15:02:37 PAGE 10
552 {
553 1 CMI0=0;
554 1 c_cm0++;
555 1 if(retract==1)
556 1 {
557 2 if(c_cm0==n_cm0)
558 2 {
559 3 IEN1=IEN1&0XEF; //CM0
560 3 PWM1=0;
561 3 wire_enable=0;
562 3 retract_ok=1;
563 3 c_cm0=0;
564 3 }
565 2 CML0=TML2+0X50; //100ms
566 2 if(CML0<TML2)
567 2 CMH0=TMH2+1+0XC3;
568 2 else
569 2 CMH0=TMH2+0XC3;
570 2 }
571 1 else
572 1 {
573 2 if(c_cm0==n_cm0)
574 2 {
575 3 IEN1=IEN1&0xEF; //CM0
576 3 if(temp_wire_vp<wire_vp)
577 3 {
578 4 if(temp_wire_vp+1==wire_vp)
579 4 temp_wire_vp=wire_vp;
580 4 else
581 4 temp_wire_vp=temp_wire_vp+1;
582 4 }
583 3
584 3 if(temp_wire_vp>wire_vp)
585 3 {
586 4 if(temp_wire_vp==wire_vp+1)
587 4 temp_wire_vp=wire_vp;
588 4 else
589 4 temp_wire_vp=temp_wire_vp-1;
590 4 }
591 3 if(K31==ON)
592 3 {
593 4 if(temp_wire_vb<wire_vb)
594 4 {
595 5 if(temp_wire_vb+1==wire_vb)
596 5 temp_wire_vb=wire_vb;
597 5 else
598 5 temp_wire_vb=temp_wire_vb+1;
599 5 }
600 4 if(temp_wire_vb>wire_vb)
601 4 {
602 5 if(temp_wire_vb==wire_vb+1)
603 5 temp_wire_vb=wire_vb;
604 5 else
605 5 temp_wire_vb=temp_wire_vb-1;
606 5 }
607 4 }
608 3 c_cm0=0;
609 3 if(K31==OFF)
610 3 {
611 4 PWM1=temp_wire_vp;
612 4 if(temp_wire_vp==wire_vp)
613 4 {
C51 COMPILER V7.06 PID 09/08/2005 15:02:37 PAGE 11
614 5 if(wire_ok==0)
615 5 wire_ok=1;
616 5 else
617 5 w_slope_ok=1;
618 5 }
619 4 else
620 4 IEN1=IEN1|0x10; //CM0
621 4 }
622 3 else
623 3 {
624 4 if(temp_wire_vp==wire_vp&&temp_wire_vb==wire_vb)
625 4 {
626 5 PWM1=temp_wire_vb;
627 5 if(wire_ok==0)
628 5 wire_ok=1;
629 5 else
630 5 w_slope_ok=1;
631 5 }
632 4 else
633 4 IEN1=IEN1|0x10; //CM0
634 4 }
635 3
636 3 }
637 2 CML0=TML2+0xC8;
638 2 if(CML0<TML2)
639 2 CMH0=TMH2+1+0X00;
640 2 else
641 2 CMH0=TMH2+0X00;
642 2 }
643 1 }
644
645 void CM1_INT (void) interrupt 12 //旋转速度变化
646 {
647 1 CMI1=0;
648 1 if(rot_ok==0||r_slope_ok==0)
649 1 {
650 2 c_cm1++;
651 2 if(c_cm1==n_cm1)
652 2 {
653 3 IEN1=IEN1&0xDF; //CM1
654 3 if(temp_rot_vp<rot_vp)
655 3 {
656 4 if(temp_rot_vp+1==rot_vp)
657 4 temp_rot_vp=rot_vp;
658 4 else
659 4 temp_rot_vp=temp_rot_vp+1;
660 4 }
661 3
662 3 if(temp_rot_vp>rot_vp)
663 3 {
664 4 if(temp_rot_vp==rot_vp+1)
665 4 temp_rot_vp=rot_vp;
666 4 else
667 4 temp_rot_vp=temp_rot_vp-1;
668 4 }
669 3 if(K21==ON)
670 3 {
671 4 if(temp_rot_vb<rot_vb)
672 4 {
673 5 if(temp_rot_vb+1==rot_vb)
674 5 temp_rot_vb=rot_vb;
675 5 else
C51 COMPILER V7.06 PID 09/08/2005 15:02:37 PAGE 12
676 5 temp_rot_vb=temp_rot_vb+1;
677 5 }
678 4 if(temp_rot_vb>rot_vb)
679 4 {
680 5 if(temp_rot_vb==rot_vb+1)
681 5 temp_rot_vb=rot_vb;
682 5 else
683 5 temp_rot_vb=temp_rot_vb-1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -