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