📄 plane050930v01.lst
字号:
559 00007A
560 00007A ;***************************************************
561 00007A outtable:
562 00007A dw 058h;4h
563 00007A dw 05fh
564 00007A dw 06ah
565 00007A dw 075h
566 00007A dw 080h
567 00007A dw 08bh
568 00007A dw 096h
569 00007A dw 0a1h
570 00007A dw 0ach
571 00007A dw 0b8h
572 00007A */
573 00007A
574 00007A ;***************************************************
575 00007A include int.asm
576 00007A ;************************************************
577 00007A ;Name :InterruptSub
578 00007A ;Function:
579 00007A ;Input :
580 00007A ;Output :
581 00007A ;Register Used:
582 00007A ;*************************************************
583 00007A InterruptSub:
584 00007A 2C00(1) XCH A,AccBuf
585 00007B 2C86(1) XCH A,PFLAG
586 00007C 2F01(1) B0MOV PflagBuf,A
587 00007D
588 00007D 75C8(1+S) b0bts0 FTC0IRQ ;//Analyse the Interrupt resourc
589 00007E 8087(2) jmp TC0INTR
590 00007F
591 00007F 74C8(1+S) b0bts0 ft0irq
592 000080 80C9(2) jmp t0intr
593 000081
594 000081 70C8(1+S) b0bts0 FP00IRQ
595 000082 80D3(2) jmp P00INTR
596 000083
597 000083 Interrupt90:
598 000083 2C01(1) XCH A,PflagBuf
599 000084 2F86(1) B0MOV PFLAG,A
600 000085 2C00(1) XCH A,AccBuf ;//For release the Acc And Pflag
601 000086 0F00(2) RETI
602 000087 ;--------------------------------------------------------
603 000087 ;--------------------------------------------------------
604 000087 TC0INTR:
605 000087 1622(1+S) incms timer5ms
606 000088 0000(1) nop
607 000089 1E22(1) mov a,timer5ms
608 00008A 2464(1) sub a,#100
609 00008B 5A86(1+S) bts1 fc
610 00008C 808F(2) jmp tc0intr00
611 00008D 2B22(1) clr timer5ms
612 00008E 4F27(1) bset t5msflag
613 00008F tc0intr00:
614 00008F ;----------------------
615 00008F ;左右翼控制
616 00008F 7229(1+S) b0bts0 wingstatflag
617 000090 809A(2) jmp TC0INTR10
618 000091 69D1(1) b0bset ptwing
619 000092 260A(1+S) decms wingbuf
620 000093 809D(2) jmp TC0INTR20
621 000094 61D1(1) b0bclr ptwing
622 000095 6A29(1) b0bset wingstatflag
623 000096 mov_ winglowbuf,lowcontant ;set low level 10ms
624 000096 2DA5(1) mov a, lowcontant
625 000097 1F0D(1) mov winglowbuf, a
626 000098 mov_ wingbuf,wingloadbuf ;set high level
627 000098 1E0C(1) mov a, wingloadbuf
628 000099 1F0A(1) mov wingbuf, a
629 00009A ;-----
630 00009A TC0INTR10:
631 00009A 260D(1+S) decms winglowbuf
632 00009B 809D(2) jmp TC0INTR20
633 00009C 6229(1) b0bclr wingstatflag
634 00009D ;-----------------------
635 00009D TC0INTR20:
636 00009D ;尾翼控制
637 00009D 7329(1+S) b0bts0 empennagestatflag
638 00009E 80A8(2) jmp TC0INTR30
639 00009F 6AD1(1) b0bset ptempennage
640 0000A0 260E(1+S) decms empennagebuf
641 0000A1 80AB(2) jmp TC0INTR40
642 0000A2 62D1(1) b0bclr ptempennage
643 0000A3 6B29(1) b0bset empennagestatflag
644 0000A4 mov_ empennagelowbuf,lowcontant ;set low level 10ms
645 0000A4 2DA5(1) mov a, lowcontant
646 0000A5 1F11(1) mov empennagelowbuf, a
647 0000A6 mov_ empennagebuf,empennageloadbuf ;set high level
648 0000A6 1E10(1) mov a, empennageloadbuf
649 0000A7 1F0E(1) mov empennagebuf, a
650 0000A8 ;-----
651 0000A8 TC0INTR30:
652 0000A8 2611(1+S) decms empennagelowbuf
653 0000A9 80AB(2) jmp TC0INTR40
654 0000AA 6329(1) b0bclr empennagestatflag
655 0000AB ;-----------------------
656 0000AB TC0INTR40:
657 0000AB ;螺旋桨控制
658 0000AB 7429(1+S) b0bts0 screwstatflag
659 0000AC 80B6(2) jmp TC0INTR50
660 0000AD 68D1(1) b0bset ptscrew
661 0000AE 2612(1+S) decms screwbuf
662 0000AF 80B9(2) jmp TC0INTR60
663 0000B0 60D1(1) b0bclr ptscrew
664 0000B1 6C29(1) b0bset screwstatflag
665 0000B2 mov_ screwlowbuf,lowcontant ;set low level 10ms
666 0000B2 2DA5(1) mov a, lowcontant
667 0000B3 1F15(1) mov screwlowbuf, a
668 0000B4 mov_ screwbuf,screwloadbuf ;set high level
669 0000B4 1E14(1) mov a, screwloadbuf
670 0000B5 1F12(1) mov screwbuf, a
671 0000B6 ;-----
672 0000B6 TC0INTR50:
673 0000B6 2615(1+S) decms screwlowbuf
674 0000B7 80B9(2) jmp TC0INTR60
675 0000B8 6429(1) b0bclr screwstatflag
676 0000B9 ;-----------------------
677 0000B9 TC0INTR60:
678 0000B9 ;摆尾控制
679 0000B9 7529(1+S) b0bts0 swingstatflag
680 0000BA 80C4(2) jmp TC0INTR70
681 0000BB 6BD1(1) b0bset ptswing
682 0000BC 2616(1+S) decms swingbuf
683 0000BD 80C7(2) jmp TC0INTR80
684 0000BE 63D1(1) b0bclr ptswing
685 0000BF 6D29(1) b0bset swingstatflag
686 0000C0 mov_ swinglowbuf,lowcontant ;set low level 10ms
687 0000C0 2DA5(1) mov a, lowcontant
688 0000C1 1F19(1) mov swinglowbuf, a
689 0000C2 mov_ swingbuf,swingloadbuf ;set high level
690 0000C2 1E18(1) mov a, swingloadbuf
691 0000C3 1F16(1) mov swingbuf, a
692 0000C4 ;-----
693 0000C4 TC0INTR70:
694 0000C4 2619(1+S) decms swinglowbuf
695 0000C5 80C7(2) jmp TC0INTR80
696 0000C6 6529(1) b0bclr swingstatflag
697 0000C7 ;-----
698 0000C7 TC0INTR80:
699 0000C7 TC0INTR90:
700 0000C7 65C8(1) b0bclr FTC0IRQ
701 0000C8 8083(2) jmp Interrupt90
702 0000C9 ;--------------------------------------------------------
703 0000C9 ;--------------------------------------------------------
704 0000C9 t0intr:
705 0000C9 2D06(1) mov a,#6
706 0000CA 2220(1) sub a,levecount
707 0000CB 5286(1+S) bts0 fc
708 0000CC 80CF(2) jmp t0intr10
709 0000CD 4D28(1) bset errorflag
710 0000CE 80D1(2) jmp t0intr90
711 0000CF t0intr10:
712 0000CF 1620(1+S) incms levecount
713 0000D0 0000(1) nop
714 0000D1 t0intr90:
715 0000D1 44C8(1) bclr ft0irq
716 0000D2 8083(2) jmp interrupt90
717 0000D3 ;--------------------------------------------------------
718 0000D3 ;--------------------------------------------------------
719 0000D3 P00INTR:
720 0000D3 40C8(1) bclr fp00irq
721 0000D4 47D8(1) bclr ft0enb
722 0000D5 1ED9(1) mov a,t0c
723 0000D6 58D0(1+S) bts1 singleflag
724 0000D7 80DA(2) jmp disasm100
725 0000D8 1F1F(1) mov level,a ;上升沿进入
726 0000D9 80DC(2) jmp disasm200
727 0000DA disasm100:
728 0000DA 1F1E(1) mov leveh,a ;下降沿进入
729 0000DB 80DC(2) jmp disasm200
730 0000DC disasm200:
731 0000DC 2BD9(1) clr t0c
732 0000DD 4FD8(1) bset ft0enb
733 0000DE 50D0(1+S) bts0 singleflag
734 0000DF 80EC(2) jmp disasm220
735 0000E0 80E1(2) jmp disasm210
736 0000E1 disasm210:
737 0000E1 @p00_edge 1 ;下降沿进入,设为上升沿中断
738 0000E1 2D08(1) MOV A,#00001000B
739 0000E2 2FBF(1) B0MOV PEDGE,A
740 0000E3 5728(1+S) bts0 firstflag
741 0000E4 80F7(2) jmp disasm221
742 0000E5 1E20(1) mov a,levecount
743 0000E6 5086(1+S) bts0 fz
744 0000E7 80FE(2) jmp disasm80
745 0000E8 4F28(1) bset firstflag
746 0000E9 2B20(1) clr levecount
747 0000EA 2B09(1) clr inputcount
748 0000EB 8105(2) jmp disasm90
749 0000EC disasm220:
750 0000EC @p00_edge 2 ;上升沿进入,设为下降沿中断
751 0000EC 2D10(1) MOV A,#00010000B
752 0000ED 2FBF(1) B0MOV PEDGE,A
753 0000EE 2D23(1) mov a,#35;60;56 ;448us=8x56
754 0000EF 221F(1) sub a,level
755 0000F0 5286(1+S) bts0 fc
756 0000F1 80FE(2) jmp disasm80 ;小于448us,出错
757 0000F2 2D5F(1) mov a,#95;70;75 ;600us=8x75
758 0000F3 221F(1) sub a,level
759 0000F4 5286(1+S) bts0 fc
760 0000F5 8105(2) jmp disasm90 ;小于600us,返回
761 0000F6 80FE(2) jmp disasm80 ;大于600us,出错
762 0000F7 disasm221:
763 0000F7 1609(1+S) incms inputcount
764 0000F8 0000(1) nop
765 0000F9 1E09(1) mov a,inputcount
766 0000FA 2405(1) sub a,#5
767 0000FB 5A86(1+S) bts1 fc
768 0000FC 8104(2) jmp disasm70;chksignaltable
769 0000FD 80FE(2) jmp disasm80
770 0000FE disasm80:
771 0000FE @p00_edge 2 ;出错,设为下降沿中断
772 0000FE 2D10(1) MOV A,#00010000B
773 0000FF 2FBF(1) B0MOV PEDGE,A
774 000100 2B09(1) clr inputcount
775 000101 2B20(1) clr levecount
776 000102 4728(1) bclr firstflag
777 000103 8105(2) jmp disasm90
778 000104 disasm70:
779 000104 4E29(1) bset chksigntableflag
780 000105 disasm90:
781 000105 P00INTR90:
782 000105 8083(2) jmp Interrupt90
783 000106 ;***********************************************
784 000106 mnint:
785 000106 5E29(1+S) bts1 chksigntableflag
786 000107 815D(2) jmp gearempennage60
787 000108 4629(1) bclr chksigntableflag
788 000109 2B21(1) clr tablecount
789 00010A 40C9(1) bclr fp00ien
790 00010B chksignaltable: ;查询控制信号的档位
791 00010B 3401(1) b0mov y,#signaltable$m
792 00010C 33EC(1) b0mov z,#signaltable$l
793 00010D 1E21(1) mov a,tablecount
794 00010E 1383(1) add z,a
795 00010F 2D00(1) mov a,#0
796 000110 1184(1) adc y,a
797 000111 0D00(2) movc
798 000112 221E(1) sub a,leveh
799 000113 5286(1+S) bts0 fc
800 000114 8119(2) jmp chksignaltableend
801 000115 8116(2) jmp signaltableadd
802 000116 signaltableadd:
803 000116 1621(1+S) incms tablecount
804 000117 0000(1) nop
805 000118 810B(2) jmp chksignaltable
806 000119 chksignaltableend:
807 000119 1E21(1) mov a,tablecount
808 00011A 5086(1+S) bts0 fz
809 00011B 81D9(2) jmp mnint008 ;error
810 00011C 2416(1) sub a,#22
811 00011D 5286(1+S) bts0 fc
812 00011E 81D9(2) jmp mnint008 ;error
813 00011F 1E21(1) mov a,tablecount
814 000120 1407(1) add a,zerocontant
815 000121 1F08(1) mov gearbuf,a
816 000122 1E09(1) mov a,inputcount
817 000123 @jmp_a 5
818 000123 13CE(1) add pcl, a
819 000124 81DE(2) jmp mnint00
820 000125 8129(2) jmp gearwing
821 000126 8150(2) jmp gearempennage
822 000127 818B(2) jmp gearscrew
823 000128 81B2(2) jmp gearswing
824 000129 ; jmp mnint00
825 000129 gearwing:
826 000129 1E08(1) mov a,gearbuf
827 00012A 070B(1+S) cmprs a,wingbuf1
828 00012B 814C(2) jmp gearwing10
829 00012C 161A(1+S) incms samebuf1
830 00012D 0000(1) nop
831 00012E 1E1A(1) mov a,samebuf1
832 00012F 2403(1) sub a,samecontant
833 000130 5A86(1+S) bts1 fc
834 000131 81DE(2) jmp mnint00
835 000132
836 000132 5827(1+S) bts1 add1flag
837 000133 813D(2) jmp gearwing001
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -