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