📄 plane050930v01.lst
字号:
320 000029 0E00(2) ret
321 00002A ;***********************************************
322 00002A PortInitial:
323 00002A 2BD0(1) clr p0
324 00002B 2BD1(1) clr p1
325 00002C 2BD5(1) clr p5
326 00002D
327 00002D 2D00(1) mov A,#00h ;//don't Pull up p5,p1,p0 port
328 00002E 2FE0(1) b0mov p0ur,a
329 00002F 2FE1(1) b0mov P1UR,A
330 000030 2DFF(1) mov A,#0ffh
331 000031 2FE5(1) b0mov P5UR,A
332 000032
333 000032 2DFE(1) mov A,#0feh
334 000033 1FB8(1) mov p0m,a
335 000034 2DFF(1) mov A,#0ffh
336 000035 1FC1(1) mov P1M,A
337 000036 2DFF(1) mov A,#0ffh
338 000037 1FC5(1) mov P5M,A
339 000038
340 000038 0000(1) nop
341 000039 0000(1) nop
342 00003A 0000(1) nop
343 00003B 2BD0(1) clr p0
344 00003C 2BD1(1) clr p1
345 00003D 2BD5(1) clr p5
346 00003E 0E00(2) ret
347 00003F ;***********************************************
348 00003F ;**********************************************
349 00003F ;Name :SysInitial
350 00003F ;Function:
351 00003F ;Input :
352 00003F ;Output :
353 00003F ;Register Used:
354 00003F ;***********************************************
355 00003F SysInitial:
356 00003F 2B86(1) clr PFLAG ;pflag = x,x,x,x,x,c,dc,z
357 000040 2D00(1) mov A,#00h ;Clear watchdog timer and initial system mode
358 000041 2FCA(1) b0mov OSCM,A
359 000042
360 000042 2D50(1) mov A,#01010000B
361 000043 2FD8(1) b0mov T0M,A ;Set the T0 rate=Fcpu/64
362 000044 2D00(1) mov A,#0h
363 000045 2FD9(1) b0mov T0C,A
364 000046 47D8(1) bclr FT0enb ;Enable TIMER0
365 000047 4CC9(1) bset ft0ien ;Enable T0 interrupt
366 000048 44C8(1) bclr ft0irq ;CLEAR TIMER0 INTERRUPT FLAG
367 000049 ;------
368 000049 ;控制脚输出
369 000049 2D74(1) MOV A,#01110100B
370 00004A 2FDA(1) B0MOV TC0M,A ;Set the TC0 rate=Fcpu/2
371 00004B 2D9C(1) mov A,#156;206; ;50us//100us
372 00004C 2FDB(1) b0mov TC0C,A ;Set the TC0 timer,Fcpu=4mips
373 00004D 2FCD(1) b0mov tc0r,a
374 00004E 6FDA(1) b0bset FTC0ENB ;Enable TIMER0
375 00004F 4DC9(1) bset FTC0IEN ;Enable TC0 interrupt
376 000050 45C8(1) bclr ftc0irq ;CLEAR TIMER0 INTERRUPT FLAG
377 000051
378 000051 ; Enable P00 interrup
379 000051 @P00_EDGE 2 ;@P00_EDGE=1-->Rising Edge ,=2-->falling EDg,=3-->bi-direction;
380 000051 2D10(1) MOV A,#00010000B
381 000052 2FBF(1) B0MOV PEDGE,A
382 000053 60C8(1) b0bclr FP00IRQ
383 000054 68C9(1) b0bset FP00IEN
384 000055
385 000055 6FDF(1) b0bset FGIE ;//enable Interrupt gain
386 000056 0E00(2) ret
387 000057
388 000057 ;***********************************************
389 000057 Pdelay100us:
390 000057 2D05(1) mov a,#5
391 000058 1F1F(1) mov r1,a
392 000059 Pdelay10us:
393 000059 805A(2) jmp $+1
394 00005A 805B(2) jmp $+1
395 00005B ;// jmp $+1
396 00005B 261F(1+S) decms r1
397 00005C 8059(2) jmp Pdelay10us
398 00005D 2620(1+S) decms r2
399 00005E 8057(2) jmp Pdelay100us
400 00005F Pdelay90:
401 00005F 0E00(2) ret
402 000060
403 000060
404 000060
405 000060 include app.asm
406 000060 mnapp:
407 000060 C067(2) call complete
408 000061 C073(2) call wing
409 000062 C08D(2) call empennage
410 000063 C0A7(2) call screw
411 000064 C0C1(2) call swing
412 000065 C0DB(2) call output
413 000066
414 000066 mnapp90:
415 000066 0E00(2) ret
416 000067 ;*********************************************
417 000067 complete:
418 000067 1E25(1) mov a,empennagebuf
419 000068 0605(1+S) cmprs a,#5
420 000069 806C(2) jmp complete10
421 00006A 4822(1) bset csxenbflag
422 00006B 8072(2) jmp complete90
423 00006C complete10:
424 00006C 0606(1+S) cmprs a,#6
425 00006D 8070(2) jmp complete20
426 00006E 4822(1) bset csxenbflag
427 00006F 8072(2) jmp complete90
428 000070 complete20:
429 000070 4022(1) bclr csxenbflag
430 000071 8072(2) jmp complete90
431 000072 complete90:
432 000072 0E00(2) ret
433 000073 ;**********************************************
434 000073 wing:
435 000073 5821(1+S) bts1 t5msflag1
436 000074 808C(2) jmp wing90
437 000075 4021(1) bclr t5msflag1
438 000076 1617(1+S) incms timerwing
439 000077 0000(1) nop
440 000078 1E17(1) mov a,timerwing
441 000079 24C8(1) sub a,#200
442 00007A 5286(1+S) bts0 fc
443 00007B 2B17(1) clr timerwing
444 00007C
445 00007C 3401(1) b0mov y,#outtable$m
446 00007D 3300(1) b0mov z,#outtable$l
447 00007E 1E24(1) mov a,wingbuf
448 00007F 1383(1) add z,a
449 000080 2D00(1) mov a,#0
450 000081 1184(1) adc y,a
451 000082 0D00(2) movc
452 000083 1F1F(1) mov r1,a
453 000084 1E17(1) mov a,timerwing
454 000085 221F(1) sub a,r1
455 000086 5A86(1+S) bts1 fc
456 000087 808A(2) jmp wing10
457 000088 4122(1) bclr winghighflag
458 000089 808C(2) jmp wing90
459 00008A wing10:
460 00008A 4922(1) bset winghighflag
461 00008B 808C(2) jmp wing90
462 00008C wing90:
463 00008C 0E00(2) ret
464 00008D
465 00008D ;*********************************************
466 00008D empennage:
467 00008D 5921(1+S) bts1 t5msflag2
468 00008E 80A6(2) jmp empennage90
469 00008F 4121(1) bclr t5msflag2
470 000090 1616(1+S) incms timerempennage
471 000091 0000(1) nop
472 000092 1E16(1) mov a,timerempennage
473 000093 24C8(1) sub a,#200
474 000094 5286(1+S) bts0 fc
475 000095 2B16(1) clr timerempennage
476 000096
477 000096 3401(1) b0mov y,#outtable$m
478 000097 3300(1) b0mov z,#outtable$l
479 000098 1E25(1) mov a,empennagebuf
480 000099 1383(1) add z,a
481 00009A 2D00(1) mov a,#0
482 00009B 1184(1) adc y,a
483 00009C 0D00(2) movc
484 00009D 1F1F(1) mov r1,a
485 00009E 1E16(1) mov a,timerempennage
486 00009F 221F(1) sub a,r1
487 0000A0 5A86(1+S) bts1 fc
488 0000A1 80A4(2) jmp empennage10
489 0000A2 4222(1) bclr empennagehighflag
490 0000A3 80A6(2) jmp empennage90
491 0000A4 empennage10:
492 0000A4 4A22(1) bset empennagehighflag
493 0000A5 80A6(2) jmp empennage90
494 0000A6 empennage90:
495 0000A6 0E00(2) ret
496 0000A7 ;*********************************************
497 0000A7 screw:
498 0000A7 5A21(1+S) bts1 t5msflag3
499 0000A8 80C0(2) jmp screw90
500 0000A9 4221(1) bclr t5msflag3
501 0000AA 1618(1+S) incms timerscrew
502 0000AB 0000(1) nop
503 0000AC 1E18(1) mov a,timerscrew
504 0000AD 24C8(1) sub a,#200
505 0000AE 5286(1+S) bts0 fc
506 0000AF 2B18(1) clr timerscrew
507 0000B0
508 0000B0 3401(1) b0mov y,#outtable$m
509 0000B1 3300(1) b0mov z,#outtable$l
510 0000B2 1E26(1) mov a,screwbuf
511 0000B3 1383(1) add z,a
512 0000B4 2D00(1) mov a,#0
513 0000B5 1184(1) adc y,a
514 0000B6 0D00(2) movc
515 0000B7 1F1F(1) mov r1,a
516 0000B8 1E18(1) mov a,timerscrew
517 0000B9 221F(1) sub a,r1
518 0000BA 5A86(1+S) bts1 fc
519 0000BB 80BE(2) jmp screw10
520 0000BC 4322(1) bclr screwhighflag
521 0000BD 80C0(2) jmp screw90
522 0000BE screw10:
523 0000BE 4B22(1) bset screwhighflag
524 0000BF 80C0(2) jmp screw90
525 0000C0 screw90:
526 0000C0 0E00(2) ret
527 0000C1 ;*********************************************
528 0000C1 swing:
529 0000C1 5B21(1+S) bts1 t5msflag4
530 0000C2 80DA(2) jmp swing90
531 0000C3 4321(1) bclr t5msflag4
532 0000C4 1615(1+S) incms timerswing
533 0000C5 0000(1) nop
534 0000C6 1E15(1) mov a,timerswing
535 0000C7 24C8(1) sub a,#200
536 0000C8 5286(1+S) bts0 fc
537 0000C9 2B15(1) clr timerswing
538 0000CA
539 0000CA 3401(1) b0mov y,#outtable$m
540 0000CB 3300(1) b0mov z,#outtable$l
541 0000CC 1E27(1) mov a,swingbuf
542 0000CD 1383(1) add z,a
543 0000CE 2D00(1) mov a,#0
544 0000CF 1184(1) adc y,a
545 0000D0 0D00(2) movc
546 0000D1 1F1F(1) mov r1,a
547 0000D2 1E15(1) mov a,timerswing
548 0000D3 221F(1) sub a,r1
549 0000D4 5A86(1+S) bts1 fc
550 0000D5 80D8(2) jmp swing10
551 0000D6 4422(1) bclr swinghighflag
552 0000D7 80DA(2) jmp swing90
553 0000D8 swing10:
554 0000D8 4C22(1) bset swinghighflag
555 0000D9 80DA(2) jmp swing90
556 0000DA swing90:
557 0000DA 0E00(2) ret
558 0000DB ;***************************************************
559 0000DB output: ;给步进电机发送信号
560 0000DB 5922(1+S) bts1 winghighflag
561 0000DC 80FB(2) jmp output80
562 0000DD 59D1(1+S) bts1 ptwing
563 0000DE 80E4(2) jmp outputwing
564 0000DF 5C21(1+S) bts1 t1800usflag
565 0000E0 80E4(2) jmp outputwing
566 0000E1 4421(1) bclr t1800usflag
567 0000E2 41D1(1) bclr ptwing
568 0000E3 80FF(2) jmp output90
569 0000E4 outputwing:
570 0000E4 5923(1+S) bts1 t18msflag
571 0000E5 80FF(2) jmp output90
572 0000E6 4123(1) bclr t18msflag
573 0000E7 49D1(1) bset ptwing
574 0000E8 80FF(2) jmp output90
575 0000E9 outputempennage:
576 0000E9 5A22(1+S) bts1 empennagehighflag
577 0000EA 80ED(2) jmp outputempennage10
578 0000EB 4AD1(1) bset ptempennage
579 0000EC 80EF(2) jmp outputscrew
580 0000ED outputempennage10:
581 0000ED 42D1(1) bclr ptempennage
582 0000EE 80EF(2) jmp outputscrew
583 0000EF outputscrew:
584 0000EF 5B22(1+S) bts1 screwhighflag
585 0000F0 80F3(2) jmp outputscrew10
586 0000F1 48D1(1) bset ptscrew
587 0000F2 80F5(2) jmp outputswing
588 0000F3 outputscrew10:
589 0000F3 40D1(1) bclr ptscrew
590 0000F4 80F5(2) jmp outputswing
591 0000F5 outputswing:
592 0000F5 5C22(1+S) bts1 swinghighflag
593 0000F6 80F9(2) jmp outputswing10
594 0000F7 4BD1(1) bset ptswing
595 0000F8 80FF(2) jmp output90
596 0000F9 outputswing10:
597 0000F9 43D1(1) bclr ptswing
598 0000FA 80FF(2) jmp output90
599 0000FB output80:
600 0000FB 41D1(1) bclr ptwing
601 0000FC 42D1(1) bclr ptempennage
602 0000FD 40D1(1) bclr ptscrew
603 0000FE 43D1(1) bclr ptswing
604 0000FF output90:
605 0000FF 0E00(2) ret
606 000100 ;***************************************************
607 000100 outtable:
608 000100 0058(1) dw 058h;4h
609 000101 005F(1) dw 05fh
610 000102 006A(1) dw 06ah
611 000103 0075(1) dw 075h
612 000104 0080(1) dw 080h
613 000105 008B(1) dw 08bh
614 000106 0096(1) dw 096h
615 000107 00A1(1) dw 0a1h
616 000108 00AC(1) dw 0ach
617 000109 00B8(1) dw 0b8h
618 00010A
619 00010A
620 00010A ;***************************************************
621 00010A include int.asm
622 00010A ;************************************************
623 00010A ;Name :InterruptSub
624 00010A ;Function:
625 00010A ;Input :
626 00010A ;Output :
627 00010A ;Register Used:
628 00010A ;*************************************************
629 00010A InterruptSub:
630 00010A 2C00(1) XCH A,AccBuf
631 00010B 2C86(1) XCH A,PFLAG
632 00010C 2F01(1) B0MOV PflagBuf,A
633 00010D
634 00010D 75C8(1+S) b0bts0 FTC0IRQ ;//Analyse the Interrupt resourc
635 00010E 8117(2) jmp TC0INTR
636 00010F
637 00010F 74C8(1+S) b0bts0 ft0irq
638 000110 8151(2) jmp t0intr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -