📄 plane051011v02.lst
字号:
585 000089 dw 058h;4h
586 000089 dw 05fh
587 000089 dw 06ah
588 000089 dw 075h
589 000089 dw 080h
590 000089 dw 08bh
591 000089 dw 096h
592 000089 dw 0a1h
593 000089 dw 0ach
594 000089 dw 0b8h
595 000089 */
596 000089
597 000089 ;***************************************************
598 000089 include int.asm
599 000089 ;************************************************
600 000089 ;Name :InterruptSub
601 000089 ;Function:
602 000089 ;Input :
603 000089 ;Output :
604 000089 ;Register Used:
605 000089 ;*************************************************
606 000089 InterruptSub:
607 000089 2C00(1) XCH A,AccBuf
608 00008A 2C86(1) XCH A,PFLAG
609 00008B 2F01(1) B0MOV PflagBuf,A
610 00008C
611 00008C 75C8(1+S) b0bts0 FTC0IRQ ;//Analyse the Interrupt resourc
612 00008D 8096(2) jmp TC0INTR
613 00008E
614 00008E 74C8(1+S) b0bts0 ft0irq
615 00008F 80D8(2) jmp t0intr
616 000090
617 000090 70C8(1+S) b0bts0 FP00IRQ
618 000091 80E2(2) jmp P00INTR
619 000092
620 000092 Interrupt90:
621 000092 2C01(1) XCH A,PflagBuf
622 000093 2F86(1) B0MOV PFLAG,A
623 000094 2C00(1) XCH A,AccBuf ;//For release the Acc And Pflag
624 000095 0F00(2) RETI
625 000096 ;--------------------------------------------------------
626 000096 ;--------------------------------------------------------
627 000096 TC0INTR:
628 000096 1625(1+S) incms timer5ms
629 000097 0000(1) nop
630 000098 1E25(1) mov a,timer5ms
631 000099 2464(1) sub a,#100
632 00009A 5A86(1+S) bts1 fc
633 00009B 809E(2) jmp tc0intr00
634 00009C 2B25(1) clr timer5ms
635 00009D 4F29(1) bset t5msflag
636 00009E tc0intr00:
637 00009E ;----------------------
638 00009E ;左右翼控制
639 00009E 722B(1+S) b0bts0 wingstatflag
640 00009F 80A9(2) jmp TC0INTR10
641 0000A0 69D1(1) b0bset ptwing
642 0000A1 260D(1+S) decms wingbuf
643 0000A2 80AC(2) jmp TC0INTR20
644 0000A3 61D1(1) b0bclr ptwing
645 0000A4 6A2B(1) b0bset wingstatflag
646 0000A5 mov_ winglowbuf,lowcontant ;set low level 10ms
647 0000A5 2DA5(1) mov a, lowcontant
648 0000A6 1F10(1) mov winglowbuf, a
649 0000A7 mov_ wingbuf,wingloadbuf ;set high level
650 0000A7 1E0F(1) mov a, wingloadbuf
651 0000A8 1F0D(1) mov wingbuf, a
652 0000A9 ;-----
653 0000A9 TC0INTR10:
654 0000A9 2610(1+S) decms winglowbuf
655 0000AA 80AC(2) jmp TC0INTR20
656 0000AB 622B(1) b0bclr wingstatflag
657 0000AC ;-----------------------
658 0000AC TC0INTR20:
659 0000AC ;尾翼控制
660 0000AC 732B(1+S) b0bts0 empennagestatflag
661 0000AD 80B7(2) jmp TC0INTR30
662 0000AE 6AD1(1) b0bset ptempennage
663 0000AF 2611(1+S) decms empennagebuf
664 0000B0 80BA(2) jmp TC0INTR40
665 0000B1 62D1(1) b0bclr ptempennage
666 0000B2 6B2B(1) b0bset empennagestatflag
667 0000B3 mov_ empennagelowbuf,lowcontant ;set low level 10ms
668 0000B3 2DA5(1) mov a, lowcontant
669 0000B4 1F14(1) mov empennagelowbuf, a
670 0000B5 mov_ empennagebuf,empennageloadbuf ;set high level
671 0000B5 1E13(1) mov a, empennageloadbuf
672 0000B6 1F11(1) mov empennagebuf, a
673 0000B7 ;-----
674 0000B7 TC0INTR30:
675 0000B7 2614(1+S) decms empennagelowbuf
676 0000B8 80BA(2) jmp TC0INTR40
677 0000B9 632B(1) b0bclr empennagestatflag
678 0000BA ;-----------------------
679 0000BA TC0INTR40:
680 0000BA ;螺旋桨控制
681 0000BA 742B(1+S) b0bts0 screwstatflag
682 0000BB 80C5(2) jmp TC0INTR50
683 0000BC 68D1(1) b0bset ptscrew
684 0000BD 2615(1+S) decms screwbuf
685 0000BE 80C8(2) jmp TC0INTR60
686 0000BF 60D1(1) b0bclr ptscrew
687 0000C0 6C2B(1) b0bset screwstatflag
688 0000C1 mov_ screwlowbuf,lowcontant ;set low level 10ms
689 0000C1 2DA5(1) mov a, lowcontant
690 0000C2 1F18(1) mov screwlowbuf, a
691 0000C3 mov_ screwbuf,screwloadbuf ;set high level
692 0000C3 1E17(1) mov a, screwloadbuf
693 0000C4 1F15(1) mov screwbuf, a
694 0000C5 ;-----
695 0000C5 TC0INTR50:
696 0000C5 2618(1+S) decms screwlowbuf
697 0000C6 80C8(2) jmp TC0INTR60
698 0000C7 642B(1) b0bclr screwstatflag
699 0000C8 ;-----------------------
700 0000C8 TC0INTR60:
701 0000C8 ;摆尾控制
702 0000C8 752B(1+S) b0bts0 swingstatflag
703 0000C9 80D3(2) jmp TC0INTR70
704 0000CA 6BD1(1) b0bset ptswing
705 0000CB 2619(1+S) decms swingbuf
706 0000CC 80D6(2) jmp TC0INTR80
707 0000CD 63D1(1) b0bclr ptswing
708 0000CE 6D2B(1) b0bset swingstatflag
709 0000CF mov_ swinglowbuf,lowcontant ;set low level 10ms
710 0000CF 2DA5(1) mov a, lowcontant
711 0000D0 1F1C(1) mov swinglowbuf, a
712 0000D1 mov_ swingbuf,swingloadbuf ;set high level
713 0000D1 1E1B(1) mov a, swingloadbuf
714 0000D2 1F19(1) mov swingbuf, a
715 0000D3 ;-----
716 0000D3 TC0INTR70:
717 0000D3 261C(1+S) decms swinglowbuf
718 0000D4 80D6(2) jmp TC0INTR80
719 0000D5 652B(1) b0bclr swingstatflag
720 0000D6 ;-----
721 0000D6 TC0INTR80:
722 0000D6 TC0INTR90:
723 0000D6 65C8(1) b0bclr FTC0IRQ
724 0000D7 8092(2) jmp Interrupt90
725 0000D8 ;--------------------------------------------------------
726 0000D8 ;--------------------------------------------------------
727 0000D8 t0intr:
728 0000D8 2D06(1) mov a,#6
729 0000D9 2223(1) sub a,levecount
730 0000DA 5286(1+S) bts0 fc
731 0000DB 80DE(2) jmp t0intr10
732 0000DC 4D2A(1) bset errorflag
733 0000DD 80E0(2) jmp t0intr90
734 0000DE t0intr10:
735 0000DE 1623(1+S) incms levecount
736 0000DF 0000(1) nop
737 0000E0 t0intr90:
738 0000E0 44C8(1) bclr ft0irq
739 0000E1 8092(2) jmp interrupt90
740 0000E2 ;--------------------------------------------------------
741 0000E2 ;--------------------------------------------------------
742 0000E2 P00INTR:
743 0000E2 40C8(1) bclr fp00irq
744 0000E3 47D8(1) bclr ft0enb
745 0000E4 1ED9(1) mov a,t0c
746 0000E5 58D0(1+S) bts1 singleflag
747 0000E6 80E9(2) jmp disasm100
748 0000E7 1F22(1) mov level,a ;上升沿进入
749 0000E8 80EB(2) jmp disasm200
750 0000E9 disasm100:
751 0000E9 1F21(1) mov leveh,a ;下降沿进入
752 0000EA 80EB(2) jmp disasm200
753 0000EB disasm200:
754 0000EB 2BD9(1) clr t0c
755 0000EC 4FD8(1) bset ft0enb
756 0000ED 50D0(1+S) bts0 singleflag
757 0000EE 80FB(2) jmp disasm220
758 0000EF 80F0(2) jmp disasm210
759 0000F0 disasm210:
760 0000F0 @p00_edge 1 ;下降沿进入,设为上升沿中断
761 0000F0 2D08(1) MOV A,#00001000B
762 0000F1 2FBF(1) B0MOV PEDGE,A
763 0000F2 572A(1+S) bts0 firstflag
764 0000F3 8106(2) jmp disasm221
765 0000F4 1E23(1) mov a,levecount
766 0000F5 5086(1+S) bts0 fz
767 0000F6 810D(2) jmp disasm80
768 0000F7 4F2A(1) bset firstflag
769 0000F8 2B23(1) clr levecount
770 0000F9 2B0C(1) clr inputcount
771 0000FA 8114(2) jmp disasm90
772 0000FB disasm220:
773 0000FB @p00_edge 2 ;上升沿进入,设为下降沿中断
774 0000FB 2D10(1) MOV A,#00010000B
775 0000FC 2FBF(1) B0MOV PEDGE,A
776 0000FD 2D23(1) mov a,#35;60;56 ;448us=8x56
777 0000FE 2222(1) sub a,level
778 0000FF 5286(1+S) bts0 fc
779 000100 810D(2) jmp disasm80 ;小于448us,出错
780 000101 2D5F(1) mov a,#95;70;75 ;600us=8x75
781 000102 2222(1) sub a,level
782 000103 5286(1+S) bts0 fc
783 000104 8114(2) jmp disasm90 ;小于600us,返回
784 000105 810D(2) jmp disasm80 ;大于600us,出错
785 000106 disasm221:
786 000106 160C(1+S) incms inputcount
787 000107 0000(1) nop
788 000108 1E0C(1) mov a,inputcount
789 000109 2405(1) sub a,#5
790 00010A 5A86(1+S) bts1 fc
791 00010B 8113(2) jmp disasm70;chksignaltable
792 00010C 810D(2) jmp disasm80
793 00010D disasm80:
794 00010D @p00_edge 2 ;出错,设为下降沿中断
795 00010D 2D10(1) MOV A,#00010000B
796 00010E 2FBF(1) B0MOV PEDGE,A
797 00010F 2B0C(1) clr inputcount
798 000110 2B23(1) clr levecount
799 000111 472A(1) bclr firstflag
800 000112 8114(2) jmp disasm90
801 000113 disasm70:
802 000113 4E2B(1) bset chksigntableflag
803 000114 disasm90:
804 000114 P00INTR90:
805 000114 8092(2) jmp Interrupt90
806 000115 ;***********************************************
807 000115 mnint:
808 000115 5E2B(1+S) bts1 chksigntableflag
809 000116 8210(2) jmp mnint20
810 000117 462B(1) bclr chksigntableflag
811 000118 2B24(1) clr tablecount
812 000119 40C9(1) bclr fp00ien
813 00011A chksignaltable: ;查询控制信号的档位
814 00011A 3402(1) b0mov y,#signaltable$m
815 00011B 3317(1) b0mov z,#signaltable$l
816 00011C 1E24(1) mov a,tablecount
817 00011D 1383(1) add z,a
818 00011E 2D00(1) mov a,#0
819 00011F 1184(1) adc y,a
820 000120 0D00(2) movc
821 000121 2221(1) sub a,leveh
822 000122 5286(1+S) bts0 fc
823 000123 8128(2) jmp chksignaltableend
824 000124 8125(2) jmp signaltableadd
825 000125 signaltableadd:
826 000125 1624(1+S) incms tablecount
827 000126 0000(1) nop
828 000127 811A(2) jmp chksignaltable
829 000128 chksignaltableend:
830 000128 1E24(1) mov a,tablecount
831 000129 5086(1+S) bts0 fz
832 00012A 81FD(2) jmp mnint008 ;error
833 00012B 2416(1) sub a,#22
834 00012C 5286(1+S) bts0 fc
835 00012D 81FD(2) jmp mnint008 ;error
836 00012E 1E24(1) mov a,tablecount
837 00012F 1407(1) add a,zerocontant
838 000130 1F0B(1) mov gearbuf,a
839 000131 1E0C(1) mov a,inputcount
840 000132 @jmp_a 5
841 000132 13CE(1) add pcl, a
842 000133 8202(2) jmp mnint00
843 000134 8138(2) jmp gearwing
844 000135 8174(2) jmp gearempennage
845 000136 81AF(2) jmp gearscrew
846 000137 81D6(2) jmp gearswing
847 000138 ; jmp mnint00
848 000138 gearwing:
849 000138 1E0B(1) mov a,gearbuf
850 000139 070E(1+S) cmprs a,wingbuf1
851 00013A 8171(2) jmp gearwing10
852 00013B 161D(1+S) incms samebuf1
853 00013C 0000(1) nop
854 00013D 1E1D(1) mov a,samebuf1
855 00013E 2403(1) sub a,samecontant
856 00013F 5A86(1+S) bts1 fc
857 000140 8202(2) jmp mnint00
858 000141 2B1D(1) clr samebuf1
859 000142 C07B(2) call completey
860 000143
861 000143 gearwing50:
862 000143 592A(1+S) bts1 csyenbflag
863 000144 8157(2) jmp gearwing20
864 000145 gearwing60:
865 000145 592A(1+S) bts1 csyenbflag
866 000146 8202(2) jmp mnint00
867 000147 5A2A(1+S) bts1 wingaddflag
868 000148 814F(2) jmp gearwing30
869 000149 422A(1) bclr wingaddflag
870 00014A 2D11(1) mov a,equalcontant
871 00014B 120A(1) add a,csycalibratebuf
872 00014C 120A(1) add a,csycalibratebuf
873 00014D 1F0E(1) mov wingbuf1,a
874 00014E 8157(2) jmp gearwing20
875 00014F
876 00014F gearwing30:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -