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