📄 osc2_0929.lst
字号:
460 2 S1CON=0xC5; //STA=0 STO=0 SI=0 AA=1
461 2 }
462 1 if (S1STA==0x20)
463 1 {
464 2 FF=1;
465 2 S1CON=0xD5; //STA=0 STO=1 SI=0 AA=1
466 2 }
467 1 if (S1STA==0x28)
468 1 {
469 2 S1CON=0xD5; //STA=0 STO=1 SI=0 AA=1
470 2 FF=1;
471 2 }
472 1 if (S1STA==0x30)
473 1 {
474 2 FF=1;
475 2 S1CON=0xD5; //STA=0 STO=1 SI=0 AA=1
476 2 }
477 1 if (S1STA==0x38)
478 1 {
479 2 S1CON=0xE5; //STA=1 STO=0 SI=0 AA=1
480 2 }
481 1 if (S1STA==0x40)
482 1 {
483 2 S1CON=0xC5; //STA=0 STO=0 SI=0 AA=1
484 2 }
485 1 if (S1STA==0x48)
486 1 {
487 2 FF=1;
488 2 S1CON=0xD5; //STA=0 STO=1 SI=0 AA=1
489 2 }
C51 COMPILER V7.06 OSC2_0929 03/27/2006 17:02:25 PAGE 9
490 1 if (S1STA==0x50)
491 1 {
492 2 GET=S1DAT;
493 2 S1CON=0xC1; //STA=0 STO=0 SI=0 AA=0
494 2 }
495 1 if (S1STA==0x58)
496 1 {
497 2 FF=1;
498 2 S1CON=0xD5; //STA=0 STO=1 SI=0 AA=1
499 2 }
500 1 }
501
502 void CT0_int (void) interrupt 6 //横摆中心
503 {
504 1 CTI0=0;
505 1 CTCON=CTCON&0xFC;
506 1 if(center_change==1)
507 1 {
508 2 IEN1=IEN1&0XFE;
509 2 gate=0;
510 2 osc_enable=1;
511 2 center_excursion=0;
512 2 center_change=0;
513 2 }
514 1 else
515 1 {
516 2 if(decrease==1)
517 2 {
518 3 temp_c_decrease++;
519 3
520 3 if(temp_c_decrease%2==0)
521 3 share_decrease++;
522 3 if(share_decrease<c_decrease)
523 3 {
524 4 CTCON=CTCON|0x08;
525 4 out0=out0_decrease*c_decrease/(c_decrease-share_decrease);
526 4 out1=out1_decrease*(c_decrease-share_decrease)/c_decrease;
527 4 out2=2*out1;
528 4 COM=0X36;
529 4 COUNT0=out0%256;
530 4 COUNT0=out0/256;
531 4 COM=0X76;
532 4 COUNT1=out1%256;
533 4 COUNT1=out1/256;
534 4 COM=0XB6;
535 4 COUNT2=out1%256;
536 4 COUNT2=out1/256;
537 4 sec_center=1;
538 4 IEN1=IEN1|0x02;
539 4 }
540 3 else
541 3 {
542 4 gate=0; //关8254门控信号
543 4 CTCON=CTCON&0XF0;
544 4 IEN1=IEN1&0XFC; //禁止CT0,CT1
545 4 decrease_ok=1;
546 4 }
547 3 if(decreased==0)
548 3 decreased=1;
549 3 }
550 2 else
551 2 {
C51 COMPILER V7.06 OSC2_0929 03/27/2006 17:02:25 PAGE 10
552 3 if(osc==1)
553 3 {
554 4 // gate=0; //关8254门控信号
555 4 // delay(15);
556 4 if(osc_change==1)
557 4 {
558 5 out1=out1+n_da41;
559 5 if(out1<26666)
560 5 osc_add++;
561 5 else
562 5 out1=out1-n_da41;
563 5 }
564 4 else
565 4 {
566 5 if(out1>n_da41)
567 5 {
568 6 out1=out1-n_da41;
569 6 if(out1>26)
570 6 osc_dec++;
571 6 else
572 6 out1=out1+n_da41;
573 6 }
574 5 }
575 4 out2=out1;
576 4 CTCON=CTCON|0X08;
577 4 COM=0X76;
578 4 COUNT1=out1%256;
579 4 COUNT1=out1/256;
580 4 COM=0XB6;
581 4 COUNT2=out2%256;
582 4 COUNT2=out2/256;
583 4 // IEN1=IEN1|0X02;
584 4 // gate=1;
585 4 sec_center=1;
586 4 osc=0;
587 4 }
588 3 if(in_sector==1&&K4==ON&&osc_ok==1||in_sector==0)
589 3 {
590 4 if(new_sector==1)
591 4 {
592 5 c_t42_l=pp.x[nonce_sec][1]*5; //pp.t42_l/10*1000/50
593 5 c_t42_r=pp.x[nonce_sec][2]*5;
594 5 c_change=pp.x[nonce_sec][5]%256;
595 5 temp_out0=900000/pp.x[nonce_sec][3];
596 5 temp_out1=pp.x[nonce_sec][4]*80/3;
597 5 const1=pp.x[nonce_sec][4];
598 5 if(temp_out0!=out0)
599 5 {
600 6 static_out0=out0;
601 6 if(temp_out0>static_out0)
602 6 {
603 7 delt_out0=temp_out0-static_out0;
604 7 out0=(static_out0*c_change+delt_out0)/c_change;
605 7 }
606 6 else
607 6 {
608 7 delt_out0=static_out0-temp_out0;
609 7 out0=(static_out0*c_change-delt_out0)/c_change;
610 7 }
611 6 COM=0X36;
612 6 COUNT0=out0%256;
613 6 COUNT0=out0/256;
C51 COMPILER V7.06 OSC2_0929 03/27/2006 17:02:25 PAGE 11
614 6 }
615 5
616 5 if(temp_out1!=out1)
617 5 {
618 6 static_out1=out1;
619 6 if(temp_out1>out1)
620 6 {
621 7 delt_out1=temp_out1-out1;
622 7 out1=static_out1*c_change+delt_out1;
623 7 out1=out1/c_change;
624 7 }
625 6 else
626 6 {
627 7 delt_out1=out1-temp_out1;
628 7 out1=static_out1*c_change-delt_out1;
629 7 out1=out1/c_change;
630 7 }
631 6
632 6 COM=0X76;
633 6 COUNT1=out1%256;
634 6 COUNT1=out1/256; //半个摆宽
635 6 COM=0XB6;
636 6 COUNT2=out1%256;
637 6 COUNT2=out1/256;
638 6 }
639 5 osc_add=0;
640 5 osc_dec=0;
641 5 sec_center=1;
642 5 share=1;
643 5 temp_c_change=0;
644 5 }
645 4
646 4 if(sec_change==1)
647 4 {
648 5 temp_c_change++;
649 5 if(temp_c_change%2==0)
650 5 share++;
651 5 if(share<=c_change)
652 5 {
653 6 if(share==c_change||c_change==1)
654 6 {
655 7 out0=temp_out0;
656 7 out1=temp_out1;
657 7 c_change=0;
658 7 share=0;
659 7 temp_c_change=0;
660 7 sec_change=0;
661 7 }
662 6 else
663 6 {
664 7 if(temp_out0>static_out0)
665 7 out0=static_out0+share*delt_out0/c_change;
666 7 else if(temp_out0<static_out0)
667 7 out0=static_out0-share*delt_out0/c_change;
668 7 if(temp_out1>static_out1)
669 7 out1=static_out1+share*delt_out1/c_change;
670 7 else if(temp_out1<static_out1)
671 7 out1=static_out1-share*delt_out1/c_change;
672 7 }
673 6 out2=2*out1;
674 6 COM=0X36;
675 6 COUNT0=out0%256;
C51 COMPILER V7.06 OSC2_0929 03/27/2006 17:02:25 PAGE 12
676 6 COUNT0=out0/256;
677 6 COM=0X76;
678 6 COUNT1=out1%256;
679 6 COUNT1=out1/256; //半个摆宽
680 6 COM=0XB6;
681 6 COUNT2=out1%256;
682 6 COUNT2=out1/256;
683 6 sec_center=1;
684 6 }
685 5 }
686 4 }
687 3 else
688 3 {
689 4 gate=0;
690 4 CTCON=CTCON&0xF3;
691 4 static_out0=0;
692 4 static_out1=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -