📄 avc1.lst
字号:
477 4 }
478 3 else
479 3 {
480 4 temp_avc=temp_u51_p;
481 4 c_sample=0;
482 4 CTCON=CTCON|0x20;
483 4 }
484 3 }
485 2 else if(pp.avc_type==SB)
486 2 {
487 3 if(pulse_base==1)
488 3 {
C51 COMPILER V7.06 AVC1 06/16/2005 14:51:25 PAGE 9
489 4 gate=0;
490 4 CTCON=CTCON&0xCF;
491 4 }
492 3 else
493 3 {
494 4 temp_avc=temp_u51_b;
495 4 c_sample=0;
496 4 CTCON=CTCON|0x20;
497 4 }
498 3 }
499 2 else
500 2 {
501 3 gate=0;
502 3 CTCON=CTCON&0xCC;
503 3 AD1=0;
504 3 AD2=0;
505 3 AD3=0;
506 3 AD4=0;
507 3 AD5=0;
508 3 new_circle=1;
509 3 if(pulse_base==1)
510 3 temp_avc=temp_u51_p;
511 3 else
512 3 temp_avc=temp_u51_b;
513 3 CTCON=CTCON|0x20;
514 3 }
515 2 }
516 1
517 1
518 1 if(pulse_base==1)
519 1 CTCON=CTCON|0X80; //CT3下降沿
520 1 else
521 1 CTCON=CTCON|0X40; //CT3上升沿
522 1 }
523
524 void ADC_int (void) interrupt 10
525 {
526 1 ADCON=ADCON&0xEF; //清ADC中断标志
527 1 c_sample++; //2005-3-3
528 1 adh=ADCH;
529 1 adl=ADCON&0xC0;
530 1 adh=adh<<2;
531 1 adl=adl>>6;
532 1 ad=adh+adl;
533 1 da=ad;
534 1 AD5=(da*5000)/0x3FF;
535 1 if(new_circle==1)
536 1 {
537 2 new_circle=0;
538 2 AD1=AD5;
539 2 AD2=AD5;
540 2 AD3=AD5;
541 2 AD4=AD5;
542 2 }
543 1 else
544 1 {
545 2 AD5=(AD5+AD1+AD2+AD3+AD4)/5;
546 2 AD1=AD2;
547 2 AD2=AD3;
548 2 AD3=AD4;
549 2 AD4=AD5;
550 2 }
C51 COMPILER V7.06 AVC1 06/16/2005 14:51:25 PAGE 10
551 1 AD5=AD5*6/100; //AD5*30/5
552 1
553 1 if(c_sample%5==0)
554 1 {
555 2 if(AD5>=temp_avc)
556 2 {
557 3 SENS=AD5-temp_avc;
558 3 avc_dir=0;
559 3 }
560 2 else
561 2 {
562 3 SENS=temp_avc-AD5;
563 3 avc_dir=1;
564 3 }
565 2 if(SENS>=1)
566 2 {
567 3 switch(SENS)
568 3 {
569 4 case 1: {
570 5 COM=0X36;
571 5 COUNT0=8000%256; //500HZ
572 5 COUNT0=8000/256;
573 5 COM=0X76;
574 5 COUNT1=4; //2p,0.0075mm
575 5 COUNT1=0;
576 5 }break;
577 4 case 2:
578 4 case 3: {
579 5 COM=0X36;
580 5 COUNT0=8000%256; //500HZ
581 5 COUNT0=8000/256;
582 5 COM=0X76;
583 5 COUNT1=10; //5p,0.01875mm 0.1v
584 5 COUNT1=0;
585 5
586 5 }break;
587 4 case 4:
588 4 case 5: {
589 5 COM=0X36;
590 5 COUNT0=8000%256; //500HZ
591 5 COUNT0=8000/256;
592 5 COM=0X76;
593 5 COUNT1=20;
594 5 COUNT1=0;
595 5 out1=0; //10p,0.0375mm 0.2v
596 5 }break;
597 4 case 6:
598 4 case 7: {
599 5 COM=0X36;
600 5 COUNT0=6757%256;
601 5 COUNT0=6757/256;
602 5 COM=0X76;
603 5 COUNT1=32;
604 5 COUNT1=0;
605 5 }break;
606 4 case 8:
607 4 case 9: {
608 5 COM=0X36;
609 5 COUNT0=5141%256; //778hz
610 5 COUNT0=5141/256;
611 5 COM=0X76;
612 5 COUNT1=42; //0.08mm 0.4v
C51 COMPILER V7.06 AVC1 06/16/2005 14:51:25 PAGE 11
613 5 COUNT1=0;
614 5 }break;
615 4 case 10:{
616 5 COM=0X36;
617 5 COUNT0=4000%256; //1000hz
618 5 COUNT0=4000/256;
619 5 COM=0X76;
620 5 COUNT1=54; //0.1mm 0.5v
621 5 COUNT1=0;
622 5 }break;
623 4 default:{
624 5 COM=0X36;
625 5 COUNT0=3376%256; //1185hz
626 5 COUNT0=3376/256;
627 5 COM=0X76;
628 5 COUNT1=64; //0.12mm 0.6v
629 5 COUNT1=0;
630 5 }break;
631 4 }
632 3
633 3 CTCON=CTCON|0x02;
634 3 IEN1=IEN1|0X01; //允许CT0,弧长调整长度
635 3 avc_enable=0;
636 3 gate=1;
637 3 }
638 2 c_sample=0;
639 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)))
640 2 {
641 3 CTCON=CTCON|0x20;
642 3 // IEN1=IEN1|0X04; //允许CT2
643 3 }
644 2 }
645 1 else
646 1 {
647 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)))
648 2 {
649 3 CTCON=CTCON|0x20;
650 3 // IEN1=IEN1|0X04; //允许CT2
651 3 }
652 2 }
653 1 ad_finish=1; //AD转换及处理完成
654 1 }
655
656 main()
657 {
658 1 TMOD=0x22; //定时器1,方式2;定时器0,方式3,两个8位定时器;
659 1 TL1=0XFD; //波特率9600
660 1 TH1=0XFD;
661 1 TR1=1; //启动定时器
662 1 TMOD=0x23; //定时器0,方式3,两个8位定时器;
663 1 TR1=0;
664 1 TF1=0;
665 1 S0CON=0XF8; //串口方式3,SM2=1,REN=1,TB8=1,RB8=0,TI=0,RI=0
666 1 IP1=0X01; //CT0高优先级
667 1 IP0=0X98; //S0=1,T1=1
668 1 ES0=1; //开串口中断
669 1 ET1=1;
670 1 EAD=1; //AD中断允许
671 1 EA=1; //中断总允许
672 1 start_t2();
C51 COMPILER V7.06 AVC1 06/16/2005 14:51:25 PAGE 12
673 1
674 1 externel_voltage=0;
675 1 COM=0XB6;
676 1 COUNT2=0x00;
677 1 COUNT2=0x00;
678 1 AD1=0;
679 1 AD2=0;
680 1 AD3=0;
681 1 AD4=0;
682 1 AD5=0;
683 1 U51=0;
684 1 urgent_stop=0;
685 1 avc_err=0;
686 1 err_ok=0;
687 1 err=0;
688 1
689 1 BEGIN: if(urgent_stop==1)
690 1 {
691 2 urgent_stop=0;
692 2 err_ok=0;
693 2 EX1=1;
694 2 EX0=1;
695 2 }
696 1 CTCON=0X00;
697 1 IEN1=0x00;
698 1 COM=0x36;
699 1 COUNT0=0x00;
700 1 COUNT0=0x00;
701 1 COM=0X76;
702 1 COUNT1=0x00;
703 1 COUNT1=0x00;
704 1 gate=0; //关门控
705 1 avc_enable=1;
706 1 avc_dir=1;
707 1 work=0;
708 1 called=0;
709 1 start=0;
710 1 pgj=0;
711 1 sector=0;
712 1 in_sector=0;
713 1 start_avc=0;
714 1 avc_ok=0;
715 1 new_circle=1;
716 1 c_sample=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -