📄 avc_1027.lst
字号:
504 2 }
505 1 if (S1STA==0x40)
506 1 {
507 2 S1CON=0xC5; //STA=0 STO=0 SI=0 AA=1
508 2 }
509 1 if (S1STA==0x48)
510 1 {
511 2 FF=1;
512 2 S1CON=0xD5; //STA=0 STO=1 SI=0 AA=1
513 2 }
514 1 if (S1STA==0x50)
515 1 {
516 2 GET=S1DAT;
517 2 S1CON=0xC1; //STA=0 STO=0 SI=0 AA=0
518 2 }
519 1 if (S1STA==0x58)
520 1 {
521 2 FF=1;
522 2 S1CON=0xD5; //STA=0 STO=1 SI=0 AA=1
523 2 }
524 1 }
525
526 void CT0_int (void) interrupt 6
527 {
528 1 CTI0=0;
529 1 CTCON=CTCON&0xFC;
530 1 gate=0;
531 1 if(lift==1) //衰减过程
532 1 {
533 2 avc_enable=1; //关弧长使能
534 2 IEN1=IEN1&0XFE; //禁止CT0
535 2 lift_complete=1;
536 2 lift=0;
537 2 }
538 1 else
539 1 {
540 2 if(decrease==0&&pp.k5==ON)
541 2 {
542 3 if(pp.k1==DC||(pp.k1==PDC&&pp.avc_type==SP&&pulse_base==1))//(pp.avc_type==SP&&pulse_base==1||pp.avc_ty
-pe==SPB||pp.avc_type==SB&&pulse_base==0)))
543 3 CTCON=CTCON|0x20;
544 3 }
545 2 }
546 1
547 1 }
548
549 void CT2_int (void) interrupt 8 //电压采样保持脉冲
550 {
C51 COMPILER V7.06 AVC_1027 09/11/2006 08:22:21 PAGE 10
551 1 CTI2=0;
552 1 CTCON=CTCON&0xCF;
553 1 if(decrease==0)
554 1 {
555 2 ad_finish=0; //AD转换及处理过程
556 2 ADCON=0X08; //启动AD采样
557 2 }
558 1 }
559
560 void CT3_int (void) interrupt 9 //电流脉冲
561 {
562 1 CTI3=0;
563 1 pulse_base=~pulse_base;
564 1 CTCON=CTCON&0X3F;
565 1
566 1 if(avc_ok==0) //开始弧长
567 1 {
568 2 if(pp.avc_type==SB)
569 2 temp_avc=temp_u51_b;
570 2 else
571 2 temp_avc=temp_u51_p;
572 2 avc_ok=1;
573 2 CTCON=CTCON|0x20; //CT2下降沿
574 2 IEN1=IEN1|0X04; //允许CT2,采样保持脉冲
575 2 }
576 1 else
577 1 {
578 2 if(pp.avc_type==SP)
579 2 {
580 3 if(pulse_base==0) //进入基值
581 3 {
582 4 gate=0;
583 4 CTCON=CTCON&0xCF;
584 4 }
585 3 else
586 3 {
587 4 temp_avc=temp_u51_p;
588 4 c_sample=0;
589 4 CTCON=CTCON|0x20;
590 4 }
591 3 }
592 2 else if(pp.avc_type==SB)
593 2 {
594 3 if(pulse_base==1)
595 3 {
596 4 gate=0;
597 4 CTCON=CTCON&0xCF;
598 4 }
599 3 else
600 3 {
601 4 temp_avc=temp_u51_b;
602 4 c_sample=0;
603 4 CTCON=CTCON|0x20;
604 4 }
605 3 }
606 2 else
607 2 {
608 3 gate=0;
609 3 CTCON=CTCON&0xCC;
610 3 AD1=0;
611 3 AD2=0;
612 3 AD3=0;
C51 COMPILER V7.06 AVC_1027 09/11/2006 08:22:21 PAGE 11
613 3 AD4=0;
614 3 AD5=0;
615 3 new_circle=1;
616 3 if(pulse_base==1)
617 3 temp_avc=temp_u51_p;
618 3 else
619 3 temp_avc=temp_u51_b;
620 3 CTCON=CTCON|0x20;
621 3 }
622 2 }
623 1
624 1
625 1 if(pulse_base==1)
626 1 CTCON=CTCON|0X80; //CT3下降沿
627 1 else
628 1 CTCON=CTCON|0X40; //CT3上升沿
629 1 }
630
631 void ADC_int (void) interrupt 10
632 {
633 1 ADCON=ADCON&0xEF; //清ADC中断标志
634 1 c_sample++; //2005-3-3
635 1 adh=ADCH;
636 1 adl=ADCON&0xC0;
637 1 adh=adh<<2;
638 1 adl=adl>>6;
639 1 ad=adh+adl;
640 1 da=ad;
641 1 AD5=(da*5000)/0x3FF;
642 1 if(new_circle==1)
643 1 {
644 2 new_circle=0;
645 2 AD1=AD5;
646 2 AD2=AD5;
647 2 AD3=AD5;
648 2 AD4=AD5;
649 2 }
650 1 else
651 1 {
652 2 AD5=(AD5+AD1+AD2+AD3+AD4)/5;
653 2 AD1=AD2;
654 2 AD2=AD3;
655 2 AD3=AD4;
656 2 AD4=AD5;
657 2 }
658 1 AD5=AD5*6/100; //AD5*30/5
659 1
660 1 if(c_sample%5==0)
661 1 {
662 2 if(AD5>=temp_avc)
663 2 {
664 3 SENS=AD5-temp_avc;
665 3 avc_dir=0;
666 3 }
667 2 else
668 2 {
669 3 SENS=temp_avc-AD5;
670 3 avc_dir=1;
671 3 }
672 2 if(SENS>=1)
673 2 {
674 3 switch(SENS)
C51 COMPILER V7.06 AVC_1027 09/11/2006 08:22:21 PAGE 12
675 3 {
676 4 case 1: {
677 5 COM=0X36;
678 5 COUNT0=8000%256; //500HZ
679 5 COUNT0=8000/256;
680 5 COM=0X76;
681 5 COUNT1=4; //2p,0.0075mm
682 5 COUNT1=0;
683 5 }break;
684 4 case 2:
685 4 case 3: {
686 5 COM=0X36;
687 5 COUNT0=8000%256; //500HZ
688 5 COUNT0=8000/256;
689 5 COM=0X76;
690 5 COUNT1=10; //5p,0.01875mm 0.1v
691 5 COUNT1=0;
692 5
693 5 }break;
694 4 case 4:
695 4 case 5: {
696 5 COM=0X36;
697 5 COUNT0=8000%256; //500HZ
698 5 COUNT0=8000/256;
699 5 COM=0X76;
700 5 COUNT1=20;
701 5 COUNT1=0;
702 5 out1=0; //10p,0.0375mm 0.2v
703 5 }break;
704 4 case 6:
705 4 case 7: {
706 5 COM=0X36;
707 5 COUNT0=6757%256;
708 5 COUNT0=6757/256;
709 5 COM=0X76;
710 5 COUNT1=32;
711 5 COUNT1=0;
712 5 }break;
713 4 case 8:
714 4 case 9: {
715 5 COM=0X36;
716 5 COUNT0=5141%256; //778hz
717 5 COUNT0=5141/256;
718 5 COM=0X76;
719 5 COUNT1=42; //0.08mm 0.4v
720 5 COUNT1=0;
721 5 }break;
722 4 case 10:{
723 5 COM=0X36;
724 5 COUNT0=4000%256; //1000hz
725 5 COUNT0=4000/256;
726 5 COM=0X76;
727 5 COUNT1=54; //0.1mm 0.5v
728 5 COUNT1=0;
729 5 }break;
730 4 default:{
731 5 COM=0X36;
732 5 COUNT0=3376%256; //1185hz
733 5 COUNT0=3376/256;
734 5 COM=0X76;
735 5 COUNT1=64; //0.12mm 0.6v
736 5 COUNT1=0;
C51 COMPILER V7.06 AVC_1027 09/11/2006 08:22:21 PAGE 13
737 5 }break;
738 4 }
739 3
740 3 CTCON=CTCON|0x02;
741 3 IEN1=IEN1|0X01; //允许CT0,弧长调整长度
742 3 avc_enable=0;
743 3 gate=1;
744 3 }
745 2 c_sample=0;
746 2 if(pp.k1==DC||(pp.k1==PDC&&(pp.avc_type==SP&&pulse_base==1||pp.avc_type==SP&&pulse_base==1||pp.avc_type=
-=SPB||pp.avc_type==SB&&pulse_base==0)))
747 2 CTCON=CTCON|0x20;
748 2 }
749 1 else
750 1 {
751 2 if(pp.k1==DC||(pp.k1==PDC&&(pp.avc_type==SP&&pulse_base==1||pp.avc_type==SP&&pulse_base==1||pp.avc_type=
-=SPB||pp.avc_type==SB&&pulse_base==0)))
752 2 CTCON=CTCON|0x20;
753 2 }
754 1 ad_finish=1; //AD转换及处理完成
755 1 }
756
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -