📄 plane050930v01.lst
字号:
329 000053 2D9C(1) mov A,#156;206;
330 000054
331 000054 ; MOV A,#01100100B
332 000054 ; B0MOV TC0M,A ; Set the TC0 rate=Fcpu/64
333 000054 ; mov A,#206 ;200us
334 000054 2FDB(1) b0mov TC0C,A ; Set the TC0 timer
335 000055 2FCD(1) b0mov tc0r,a
336 000056 ; bclr fpwm0out
337 000056 6FDA(1) b0bset FTC0ENB ; Enable TIMER0
338 000057 4DC9(1) bset FTC0IEN ; Enable TC0 interrupt
339 000058 45C8(1) bclr ftc0irq ; CLEAR TIMER0 INTERRUPT FLAG
340 000059
341 000059 ; Enable P00 interrup
342 000059 @P00_EDGE 2 ;@P00_EDGE=1-->Rising Edge ,=2-->falling EDg,=3-->bi-direction;
343 000059 2D10(1) MOV A,#00010000B
344 00005A 2FBF(1) B0MOV PEDGE,A
345 00005B 60C8(1) b0bclr FP00IRQ
346 00005C 68C9(1) b0bset FP00IEN
347 00005D
348 00005D 6FDF(1) b0bset FGIE ;//enable Interrupt gain
349 00005E 0E00(2) ret
350 00005F
351 00005F ;***********************************************
352 00005F Pdelay100ms:
353 00005F 2D64(1) mov a,#100
354 000060 1F26(1) mov r2,a
355 000061 Pdelay1ms:
356 000061 2D64(1) mov a,#100
357 000062 1F25(1) mov r1,a
358 000063 Pdelay10us:
359 000063 8064(2) jmp $+1
360 000064 8065(2) jmp $+1
361 000065 8066(2) jmp $+1
362 000066 2625(1+S) decms r1
363 000067 8063(2) jmp Pdelay10us
364 000068 2626(1+S) decms r2
365 000069 8061(2) jmp Pdelay1ms
366 00006A Pdelay90:
367 00006A 0E00(2) ret
368 00006B
369 00006B
370 00006B include app.asm
371 00006B mnapp:
372 00006B ; call complete
373 00006B ; call wing
374 00006B ; call empennage
375 00006B ; call screw
376 00006B ; call swing
377 00006B ; call output
378 00006B
379 00006B mnapp90:
380 00006B 0E00(2) ret
381 00006C ;*********************************************
382 00006C complete:
383 00006C 1E0F(1) mov a,empennagebuf1
384 00006D 061F(1+S) cmprs a,#01fh
385 00006E 8070(2) jmp complete10
386 00006F 8078(2) jmp complete80
387 000070 complete10:
388 000070 0620(1+S) cmprs a,#020h
389 000071 8073(2) jmp complete20
390 000072 8078(2) jmp complete80
391 000073 complete20:
392 000073 0621(1+S) cmprs a,#021h
393 000074 8076(2) jmp complete800
394 000075 8078(2) jmp complete80
395 000076 complete800:
396 000076 4028(1) bclr csxenbflag
397 000077 807A(2) jmp complete90
398 000078 complete80:
399 000078 4828(1) bset csxenbflag
400 000079 807A(2) jmp complete90
401 00007A complete90:
402 00007A 0E00(2) ret
403 00007B ;**********************************************
404 00007B /*wing:
405 00007B bts1 t5msflag1
406 00007B jmp wing90
407 00007B bclr t5msflag1
408 00007B incms timerwing
409 00007B nop
410 00007B mov a,timerwing
411 00007B sub a,#200
412 00007B bts0 fc
413 00007B clr timerwing
414 00007B
415 00007B b0mov y,#outtable$m
416 00007B b0mov z,#outtable$l
417 00007B mov a,wingbuf
418 00007B add z,a
419 00007B mov a,#0
420 00007B adc y,a
421 00007B movc
422 00007B mov r1,a
423 00007B mov a,timerwing
424 00007B sub a,r1
425 00007B bts1 fc
426 00007B jmp wing10
427 00007B bclr winghighflag
428 00007B jmp wing90
429 00007B wing10:
430 00007B bset winghighflag
431 00007B jmp wing90
432 00007B wing90:
433 00007B ret
434 00007B
435 00007B ;*********************************************
436 00007B empennage:
437 00007B bts1 t5msflag2
438 00007B jmp empennage90
439 00007B bclr t5msflag2
440 00007B incms timerempennage
441 00007B nop
442 00007B mov a,timerempennage
443 00007B sub a,#200
444 00007B bts0 fc
445 00007B clr timerempennage
446 00007B
447 00007B b0mov y,#outtable$m
448 00007B b0mov z,#outtable$l
449 00007B mov a,empennagebuf
450 00007B add z,a
451 00007B mov a,#0
452 00007B adc y,a
453 00007B movc
454 00007B mov r1,a
455 00007B mov a,timerempennage
456 00007B sub a,r1
457 00007B bts1 fc
458 00007B jmp empennage10
459 00007B bclr empennagehighflag
460 00007B jmp empennage90
461 00007B empennage10:
462 00007B bset empennagehighflag
463 00007B jmp empennage90
464 00007B empennage90:
465 00007B ret
466 00007B ;*********************************************
467 00007B screw:
468 00007B bts1 t5msflag3
469 00007B jmp screw90
470 00007B bclr t5msflag3
471 00007B incms timerscrew
472 00007B nop
473 00007B mov a,timerscrew
474 00007B sub a,#200
475 00007B bts0 fc
476 00007B clr timerscrew
477 00007B
478 00007B b0mov y,#outtable$m
479 00007B b0mov z,#outtable$l
480 00007B mov a,screwbuf
481 00007B add z,a
482 00007B mov a,#0
483 00007B adc y,a
484 00007B movc
485 00007B mov r1,a
486 00007B mov a,timerscrew
487 00007B sub a,r1
488 00007B bts1 fc
489 00007B jmp screw10
490 00007B bclr screwhighflag
491 00007B jmp screw90
492 00007B screw10:
493 00007B bset screwhighflag
494 00007B jmp screw90
495 00007B screw90:
496 00007B ret
497 00007B ;*********************************************
498 00007B swing:
499 00007B bts1 t5msflag4
500 00007B jmp swing90
501 00007B bclr t5msflag4
502 00007B incms timerswing
503 00007B nop
504 00007B mov a,timerswing
505 00007B sub a,#200
506 00007B bts0 fc
507 00007B clr timerswing
508 00007B
509 00007B b0mov y,#outtable$m
510 00007B b0mov z,#outtable$l
511 00007B mov a,swingbuf
512 00007B add z,a
513 00007B mov a,#0
514 00007B adc y,a
515 00007B movc
516 00007B mov r1,a
517 00007B mov a,timerswing
518 00007B sub a,r1
519 00007B bts1 fc
520 00007B jmp swing10
521 00007B bclr swinghighflag
522 00007B jmp swing90
523 00007B swing10:
524 00007B bset swinghighflag
525 00007B jmp swing90
526 00007B swing90:
527 00007B ret
528 00007B
529 00007B ;***************************************************
530 00007B output: ;给步进电机发送信号
531 00007B bts1 winghighflag
532 00007B jmp output80
533 00007B bts1 ptwing
534 00007B jmp outputwing
535 00007B bts1 t1800usflag
536 00007B jmp outputwing
537 00007B bclr t1800usflag
538 00007B bclr ptwing
539 00007B jmp output90
540 00007B outputwing:
541 00007B bts1 t18msflag
542 00007B jmp output90
543 00007B bclr t18msflag
544 00007B bset ptwing
545 00007B jmp output90
546 00007B outputempennage:
547 00007B bts1 empennagehighflag
548 00007B jmp outputempennage10
549 00007B bset ptempennage
550 00007B jmp outputscrew
551 00007B outputempennage10:
552 00007B bclr ptempennage
553 00007B jmp outputscrew
554 00007B outputscrew:
555 00007B bts1 screwhighflag
556 00007B jmp outputscrew10
557 00007B bset ptscrew
558 00007B jmp outputswing
559 00007B outputscrew10:
560 00007B bclr ptscrew
561 00007B jmp outputswing
562 00007B outputswing:
563 00007B bts1 swinghighflag
564 00007B jmp outputswing10
565 00007B bset ptswing
566 00007B jmp output90
567 00007B outputswing10:
568 00007B bclr ptswing
569 00007B jmp output90
570 00007B output80:
571 00007B bclr ptwing
572 00007B bclr ptempennage
573 00007B bclr ptscrew
574 00007B bclr ptswing
575 00007B output90:
576 00007B ret
577 00007B
578 00007B ;***************************************************
579 00007B outtable:
580 00007B dw 058h;4h
581 00007B dw 05fh
582 00007B dw 06ah
583 00007B dw 075h
584 00007B dw 080h
585 00007B dw 08bh
586 00007B dw 096h
587 00007B dw 0a1h
588 00007B dw 0ach
589 00007B dw 0b8h
590 00007B */
591 00007B
592 00007B ;***************************************************
593 00007B include int.asm
594 00007B ;************************************************
595 00007B ;Name :InterruptSub
596 00007B ;Function:
597 00007B ;Input :
598 00007B ;Output :
599 00007B ;Register Used:
600 00007B ;*************************************************
601 00007B InterruptSub:
602 00007B 2C00(1) XCH A,AccBuf
603 00007C 2C86(1) XCH A,PFLAG
604 00007D 2F01(1) B0MOV PflagBuf,A
605 00007E
606 00007E 75C8(1+S) b0bts0 FTC0IRQ ;//Analyse the Interrupt resourc
607 00007F 8088(2) jmp TC0INTR
608 000080
609 000080 74C8(1+S) b0bts0 ft0irq
610 000081 80CA(2) jmp t0intr
611 000082
612 000082 70C8(1+S) b0bts0 FP00IRQ
613 000083 80D4(2) jmp P00INTR
614 000084
615 000084 Interrupt90:
616 000084 2C01(1) XCH A,PflagBuf
617 000085 2F86(1) B0MOV PFLAG,A
618 000086 2C00(1) XCH A,AccBuf ;//For release the Acc And Pflag
619 000087 0F00(2) RETI
620 000088 ;--------------------------------------------------------
621 000088 ;--------------------------------------------------------
622 000088 TC0INTR:
623 000088 1622(1+S) incms timer5ms
624 000089 0000(1) nop
625 00008A 1E22(1) mov a,timer5ms
626 00008B 2464(1) sub a,#100
627 00008C 5A86(1+S) bts1 fc
628 00008D 8090(2) jmp tc0intr00
629 00008E 2B22(1) clr timer5ms
630 00008F 4F27(1) bset t5msflag
631 000090 tc0intr00:
632 000090 ;----------------------
633 000090 ;左右翼控制
634 000090 7229(1+S) b0bts0 wingstatflag
635 000091 809B(2) jmp TC0INTR10
636 000092 69D1(1) b0bset ptwing
637 000093 260A(1+S) decms wingbuf
638 000094 809E(2) jmp TC0INTR20
639 000095 61D1(1) b0bclr ptwing
640 000096 6A29(1) b0bset wingstatflag
641 000097 mov_ winglowbuf,lowcontant ;set low level 10ms
642 000097 2DFA(1) mov a, lowcontant
643 000098 1F0D(1) mov winglowbuf, a
644 000099 mov_ wingbuf,wingloadbuf ;set high level
645 000099 1E0C(1) mov a, wingloadbuf
646 00009A 1F0A(1) mov wingbuf, a
647 00009B ;-----
648 00009B TC0INTR10:
649 00009B 260D(1+S) decms winglowbuf
650 00009C 809E(2) jmp TC0INTR20
651 00009D 6229(1) b0bclr wingstatflag
652 00009E ;-----------------------
653 00009E TC0INTR20:
654 00009E ;尾翼控制
655 00009E 7329(1+S) b0bts0 empennagestatflag
656 00009F 80A9(2) jmp TC0INTR30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -