📄 av_2717_015.lst
字号:
311 MOV R0,A
312 INC RSR
313 DJZ DIS_TEMP
314 JMP LOOP2
315 */
316 000A7 1810 MOV A,@0X10
317 000A8 0044 MOV RSR,A
318 000A9 LOOP2:
319 000A9 0080 CLRA
320 000AA 0040 MOV R0,A
321 000AB 0544 INC RSR
322 000AC 18F0 MOV A,@0XF0
323 000AD 0104 SUB A,RSR
324 000AE 0E03 JBS STATUS,C
325 000AF 14A9 JMP LOOP2
326
327 000B0 1801 MOV A,@0X01
328 000B1 0064 MOV MODE,A
329
330 000B2 1855 MOV A,@0X55
331 000B3 0056 MOV POWERTEST1,A
332
333 000B4 18AA MOV A,@0XAA
334 000B5 0057 MOV POWERTEST2,A
335 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
336 000B6 MAIN:
337 000B6 0004 WDTC
338 000B7 1880 MOV A,@0X80 ;enable the WDT
339 000B8 000E IOW WDTCR
340
341 000B9 00CF CLR RF
342 000BA 1840 MOV A,@0X40 ;set TCC prescaler as 1:2 (100*2/4)*2=0.1ms
343 000BB 0002 CONTW
344 000BC 18AA MOV A,@0XAA
345 000BD 0041 MOV TCC,A ;set TCC time equal 250
346
347 000BE 1801 MOV A,@0X01 ;enable TCC time intterrupt flag
348 000BF 000F IOW IMR
349
350 000C0 0010 ENI
351 ;***********************************************************
352 ;主程序循环(LED循环扫描,马达循环驱动)
353 000C1 LOOP:
354 000C1 0004 WDTC
355 000C2 1832 MOV A,@0X32 ;0.5S 无速度便SLEEP
356 000C3 011C SUB A,SLEEP_FLAG
357 000C4 0C03 JBC STATUS,C
358 000C5 14D4 JMP MODE0
359
360 000C6 0424 MOV A,MODE
361 000C7 03C2 ADD PC,A
362
363 000C8 14C1 JMP LOOP
364 000C9 14F8 JMP MODE1
365 000CA 14FC JMP MODE2
366 000CB 150E JMP MODE3
367 000CC 0000 NOP
368 000CD 0000 NOP
369 000CE 14C1 JMP LOOP
370
371 000CF LOOP1:
372 000CF 0425 MOV A,R5_BUF
373 000D0 0045 MOV PORT5,A
374 000D1 0426 MOV A,R6_BUF
375 000D2 0046 MOV PORT6,A
376 000D3 14C1 JMP LOOP
377
378 ;******************************************************
379 ; SLEEP MODE
380
381 000D4 MODE0:
382 000D4 0000 NOP
383 000D5 0000 NOP
384 000D6 00DC CLR SLEEP_FLAG
385 000D7 0011 DISI
386
387 000D8 18F8 MOV A,@0XF8
388 000D9 0006 IOW 0X06
389
390 000DA 1800 MOV A,@0X00
391 000DB 0045 MOV PORT5,A
392 000DC 121B CALL DELAY
393
394 000DD 00C1 CLR TCC ;must do when the cont is change
395 000DE 0004 WDTC
396 000DF 180F MOV A,@0X0F
397 000E0 0002 CONTW
398
399 000E1 1800 MOV A,@0X00
400 000E2 000E IOW WDTCR
401
402
403 000E3 0446 MOV PORT6,PORT6
404
405 000E4 1802 MOV A,@0X02
406 000E5 000F IOW IMR
407
408 000E6 0011 DISI
409
410 000E7 0003 SLEP
411
412 000E8 WAKE_UP:
413 000E8 0000 NOP
414 000E9 0000 NOP
415 000EA 0011 DISI ;colse the intterrupt
416 000EB 1838 MOV A,@0X38
417 000EC 0006 IOW 0X06
418
419 000ED 0004 WDTC
420 000EE 1880 MOV A,@0X80 ;enable the WDT
421 000EF 000E IOW WDTCR
422
423 000F0 1840 MOV A,@0X40
424 000F1 0002 CONTW
425 000F2 18AA MOV A,@0XAA
426 000F3 0041 MOV TCC,A
427
428 000F4 1801 MOV A,@0X01 ;enable TCC time intterrupt flag
429 000F5 000F IOW IMR
430
431 000F6 0010 ENI ;enable the intterrupt
432 000F7 14C1 JMP LOOP
433
434
435 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
436 ;MODE1
437
438 000F8 MODE1:
439 000F8 1180 CALL DIS_MODE
440 000F9 1120 CALL MOTOR_G_DRIVE
441 000FA 115D CALL MOTOR_M_DRIVE
442 000FB 14CF JMP LOOP1
443
444 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
445 ;MODE2
446
447 000FC MODE2:
448 000FC 0CD5 JBC FLAG1,MODE_DO_FLAG
449 000FD 1506 JMP MODE2_DO
450
451 000FE 0C55 JBC FLAG1,NEG_FLAG
452 000FF 1502 JMP $+3
453
454 00100 0A55 BS FLAG1,NEG_FLAG
455 00101 1503 JMP $+2
456
457 00102 0855 BC FLAG1,NEG_FLAG
458
459 00103 00DD CLR COUNT_G_10MS
460 00104 00DE CLR COUNT_M_10MS
461 00105 0AD5 BS FLAG1,MODE_DO_FLAG
462
463 00106 MODE2_DO:
464 00106 1896 MOV A,@0X96
465 00107 0067 MOV G_T_REG,A ;马达正(反)转周期
466 00108 1832 MOV A,@0X32
467 00109 0068 MOV POS_REG,A ;停止时间(间断时间)
468 0010A 1180 CALL DIS_MODE
469 0010B 1139 CALL MOTOR_G_POS_NEG
470 0010C 1171 CALL MOTOR_M_POS_NEG
471 0010D 14CF JMP LOOP1
472
473 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
474 ;MODE3
475
476 0010E MODE3:
477 0010E 0CD5 JBC FLAG1,MODE_DO_FLAG
478 0010F 1518 JMP MODE3_DO
479
480 00110 0C55 JBC FLAG1,NEG_FLAG
481 00111 1514 JMP $+3
482
483 00112 0A55 BS FLAG1,NEG_FLAG
484 00113 1515 JMP $+2
485
486 00114 0855 BC FLAG1,NEG_FLAG
487
488 00115 00DD CLR COUNT_G_10MS
489 00116 00DE CLR COUNT_M_10MS
490 00117 0AD5 BS FLAG1,MODE_DO_FLAG
491
492 00118 MODE3_DO:
493 00118 1864 MOV A,@0X64
494 00119 0067 MOV G_T_REG,A ;马达正(反)转周期
495 0011A 1832 MOV A,@0X32
496 0011B 0068 MOV POS_REG,A ;停止时间(间断时间)
497 0011C 1180 CALL DIS_MODE
498 0011D 1139 CALL MOTOR_G_POS_NEG
499 0011E 1171 CALL MOTOR_M_POS_NEG
500 0011F 14CF JMP LOOP1
501
502
503
504 ;********************************************************
505
506 00120 MOTOR_G_DRIVE:
507
508 00120 0E15 JBS FLAG1,DELAY_ON_G_FLAG
509 00121 1531 JMP SPEED_G_OFF
510
511 00122 SPEED_G_ON:
512 00122 0C55 JBC FLAG1,NEG_FLAG ;逆时针转动标志
513 00123 1527 JMP $+4
514
515 00124 0826 BC R6_BUF,MOTOR_G_LGA ; 顺时针
516 00125 0A66 BS R6_BUF,MOTOR_G_LGB
517 00126 1529 JMP $+3
518
519 00127 0A26 BS R6_BUF,MOTOR_G_LGA ; 逆时针
520 00128 0866 BC R6_BUF,MOTOR_G_LGB
521
522 00129 0421 MOV A,SPEED_G ;H time of a cycle
523 0012A 1010 CALL SPEED_G_TAB
524
525 0012B 0118 SUB A,REG_G_100US
526 0012C 0E03 JBS STATUS,C
527 0012D 0012 RET
528
529 0012E 0815 BC FLAG1,DELAY_ON_G_FLAG
530 0012F 0826 BC R6_BUF,MOTOR_G_LGA ;跳转是停止
531 00130 0866 BC R6_BUF,MOTOR_G_LGB
532
533 00131 SPEED_G_OFF:
534 00131 1864 MOV A,@0X64 ;whole time of a cycle is 10.0ms
535 00132 0118 SUB A,REG_G_100US
536 00133 0E03 JBS STATUS,C
537 00134 0012 RET
538
539 00135 055D INC COUNT_G_10MS
540 00136 00D8 CLR REG_G_100US
541 00137 0A15 BS FLAG1,DELAY_ON_G_FLAG
542 00138 0012 RET
543
544 ;******************************************************************************
545 00139 MOTOR_G_POS_NEG:
546 00139 0C55 JBC FLAG1,NEG_FLAG
547 0013A 154C JMP MOTOR_G_NEG
548
549 0013B 0427 MOV A,G_T_REG ;正转周期
550 0013C 011D SUB A,COUNT_G_10MS
551 0013D 0E03 JBS STATUS,C
552 0013E 1542 JMP $+4
553
554 0013F 0A55 BS FLAG1,NEG_FLAG
555 00140 00DD CLR COUNT_G_10MS
556 00141 0012 RET
557
558
559 00142 0428 MOV A,POS_REG ;正转关闭时间
560 00143 011D SUB A,COUNT_G_10MS
561 00144 0E03 JBS STATUS,C
562 00145 1548 JMP $+3
563
564 00146 1120 CALL MOTOR_G_DRIVE
565 00147 0012 RET
566
567 00148 1120 CALL MOTOR_G_DRIVE
568 00149 0826 BC R6_BUF,MOTOR_G_LGA ;方向改变时延时
569 0014A 0866 BC R6_BUF,MOTOR_G_LGB
570 0014B 0012 RET
571
572 0014C MOTOR_G_NEG:
573 0014C 0427 MOV A,G_T_REG ;反转周期
574 0014D 011D SUB A,COUNT_G_10MS
575 0014E 0E03 JBS STATUS,C
576 0014F 1553 JMP $+4
577
578 00150 0855 BC FLAG1,NEG_FLAG
579 00151 00DD CLR COUNT_G_10MS
580 00152 0012 RET
581
582 00153 0428 MOV A,POS_REG ;反转停止时间
583 00154 011D SUB A,COUNT_G_10MS
584 00155 0E03 JBS STATUS,C
585 00156 1559 JMP $+3
586
587 00157 1120 CALL MOTOR_G_DRIVE
588 00158 0012 RET
589
590 00159 1120 CALL MOTOR_G_DRIVE
591 0015A 0826 BC R6_BUF,MOTOR_G_LGA ;方向改变时延时
592 0015B 0866 BC R6_BUF,MOTOR_G_LGB
593 0015C 0012 RET
594
595 ;***************************************************************************************
596 0015D MOTOR_M_DRIVE:
597
598 0015D 0E95 JBS FLAG1,DELAY_ON_M_FLAG
599 0015E 1569 JMP SPEED_M_OFF
600
601 0015F SPEED_M_ON:
602
603 0015F 041F MOV A,SPEED_M ;H time of a cycle
604 00160 1018 CALL SPEED_M_TAB
605
606 00161 0119 SUB A,REG_M_100US
607 00162 0C03 JBC STATUS,C
608 00163 1566 JMP $+3
609
610 00164 0AA6 BS R6_BUF,MOTOR_M_LM
611 00165 0012 RET
612
613 00166 08A6 BC R6_BUF,MOTOR_M_LM
614 00167 0895 BC FLAG1,DELAY_ON_M_FLAG
615 00168 0012 RET
616
617 00169 SPEED_M_OFF:
618 00169 1864 MOV A,@0X64 ;whole time of a cycle is 10.0ms
619 0016A 0119 SUB A,REG_M_100US
620 0016B 0E03 JBS STATUS,C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -