📄 stimer.ls1
字号:
455 ; {
456 ; Led1Cnt = 0;
457 ; LED1 = ~LED1;
458 ; }
459 ; }
460 ; */
461 ;
462 ; if((!fSetting) && BuzzerTimes)
463 ; SOURCE LINE # 112
002C 200017 F 464 JB fSetting,?C0008
002F E500 F 465 MOV A,BuzzerTimes
0031 6013 466 JZ ?C0008
467 ; {
468 ; SOURCE LINE # 113
469 ; BuzzerCnt ++;
470 ; SOURCE LINE # 114
0033 0500 F 471 INC BuzzerCnt
472 ; if(BuzzerCnt >= BuzzerTick)
473 ; SOURCE LINE # 115
0035 E500 F 474 MOV A,BuzzerCnt
0037 C3 475 CLR C
0038 9500 F 476 SUBB A,BuzzerTick
003A 400A 477 JC ?C0008
478 ; {
479 ; SOURCE LINE # 116
480 ; BuzzerCnt = 0;
481 ; SOURCE LINE # 117
003C 750000 F 482 MOV BuzzerCnt,#00H
483 ; BUZZER = ~BUZZER;
484 ; SOURCE LINE # 118
003F B2B5 485 CPL P3_5
486 ; if(BUZZER == BUZZEROFF)
487 ; SOURCE LINE # 119
0041 30B502 488 JNB P3_5,?C0008
489 ; {
490 ; SOURCE LINE # 120
491 ; BuzzerTimes --;
492 ; SOURCE LINE # 121
0044 1500 F 493 DEC BuzzerTimes
494 ; }
495 ; SOURCE LINE # 122
496 ; }
497 ; SOURCE LINE # 123
498 ; }
499 ; SOURCE LINE # 124
500 ; }
501 ; SOURCE LINE # 125
502 ; }
503 ; SOURCE LINE # 126
0046 504 ?C0008:
0046 D0D0 505 POP PSW
0048 D0E0 506 POP ACC
004A 32 507 RETI
508 ; END OF IntSysTimer
509
510 ;
511 ; void beep(unsigned char times, unsigned char tick)
512
---- 513 RSEG ?PR?_beep?STIMER
0000 514 _beep:
515 USING 0
516 ; SOURCE LINE # 128
517 ;---- Variable 'times?240' assigned to Register 'R7' ----
518 ;---- Variable 'tick?241' assigned to Register 'R5' ----
519 ; {
A51 MACRO ASSEMBLER STIMER 03/13/2009 15:44:55 PAGE 9
520 ; SOURCE LINE # 129
521 ; fSetting = 1;
522 ; SOURCE LINE # 130
0000 D200 F 523 SETB fSetting
524 ; BuzzerTick = tick;
525 ; SOURCE LINE # 131
0002 CE 526 XCH A,R6
0003 ED 527 MOV A,R5
0004 CE 528 XCH A,R6
0005 8E00 F 529 MOV BuzzerTick,R6
530 ; BuzzerTimes = times;
531 ; SOURCE LINE # 132
0007 8F00 F 532 MOV BuzzerTimes,R7
533 ; if(times)
534 ; SOURCE LINE # 133
0009 EF 535 MOV A,R7
000A 6004 536 JZ ?C0009
537 ; {
538 ; SOURCE LINE # 134
539 ; BUZZER = BUZZERON;
540 ; SOURCE LINE # 135
000C C2B5 541 CLR P3_5
542 ; }
543 ; SOURCE LINE # 136
000E 8002 544 SJMP ?C0010
0010 545 ?C0009:
546 ; else
547 ; {
548 ; SOURCE LINE # 138
549 ; BUZZER = BUZZEROFF;
550 ; SOURCE LINE # 139
0010 D2B5 551 SETB P3_5
552 ; }
553 ; SOURCE LINE # 140
0012 554 ?C0010:
555 ; fSetting = 0;
556 ; SOURCE LINE # 141
0012 C200 F 557 CLR fSetting
558 ; }
559 ; SOURCE LINE # 142
0014 22 560 RET
561 ; END OF _beep
562
563 ;
564 ; void delay( unsigned int time )
565
---- 566 RSEG ?PR?_delay?STIMER
0000 567 _delay:
568 USING 0
569 ; SOURCE LINE # 144
0000 900000 F 570 MOV DPTR,#time?342
0003 EE 571 MOV A,R6
0004 F0 572 MOVX @DPTR,A
0005 A3 573 INC DPTR
0006 EF 574 MOV A,R7
0007 F0 575 MOVX @DPTR,A
576 ; {
577 ; SOURCE LINE # 145
578 ; unsigned int data startms;
579 ;
580 ; startms = GetTickCount();
581 ; SOURCE LINE # 148
0008 120000 F 582 LCALL GetTickCount
000B 8E00 F 583 MOV startms?343,R6
000D 8F00 F 584 MOV startms?343+01H,R7
000F 585 ?C0012:
A51 MACRO ASSEMBLER STIMER 03/13/2009 15:44:55 PAGE 10
586 ;
587 ; while((GetTickCount() - startms) < time)
588 ; SOURCE LINE # 150
000F 120000 F 589 LCALL GetTickCount
0012 C3 590 CLR C
0013 EF 591 MOV A,R7
0014 9500 F 592 SUBB A,startms?343+01H
0016 FF 593 MOV R7,A
0017 EE 594 MOV A,R6
0018 9500 F 595 SUBB A,startms?343
001A FE 596 MOV R6,A
001B D3 597 SETB C
001C 900000 F 598 MOV DPTR,#time?342+01H
001F E0 599 MOVX A,@DPTR
0020 9F 600 SUBB A,R7
0021 900000 F 601 MOV DPTR,#time?342
0024 E0 602 MOVX A,@DPTR
0025 9E 603 SUBB A,R6
0026 50E7 604 JNC ?C0012
605 ; {
606 ; SOURCE LINE # 151
607 ; }
608 ; SOURCE LINE # 152
609 ; }
610 ; SOURCE LINE # 153
0028 611 ?C0014:
0028 22 612 RET
613 ; END OF _delay
614
615 ;
616 ; unsigned int GetTickCount(void)
617
---- 618 RSEG ?PR?GetTickCount?STIMER
0000 619 GetTickCount:
620 USING 0
621 ; SOURCE LINE # 155
622 ; {
623 ; SOURCE LINE # 156
624 ; unsigned int data cyl, ms;
625 ;
626 ; #ifdef WATCHDOG
627 ; ResetWDT();
628 ; SOURCE LINE # 160
0000 120000 F 629 LCALL ResetWDT
630 ; #endif
631 ;
632 ; ET1 = 0;
633 ; SOURCE LINE # 163
0003 C2AB 634 CLR ET1
635 ; ms = TStatus.ms;
636 ; SOURCE LINE # 164
0005 850000 F 637 MOV ms?445,TStatus+02H
0008 850000 F 638 MOV ms?445+01H,TStatus+03H
639 ; cyl = TStatus.Tick.cycles;
640 ; SOURCE LINE # 165
000B 850000 F 641 MOV cyl?444,TStatus
000E 850000 F 642 MOV cyl?444+01H,TStatus+01H
643 ; ET1 = 1;
644 ; SOURCE LINE # 166
0011 D2AB 645 SETB ET1
646 ;
647 ; return cyl / Interval.mscycles + ms;
648 ; SOURCE LINE # 168
0013 AC00 F 649 MOV R4,Interval
0015 AD00 F 650 MOV R5,Interval+01H
0017 AE00 F 651 MOV R6,cyl?444
A51 MACRO ASSEMBLER STIMER 03/13/2009 15:44:55 PAGE 11
0019 AF00 F 652 MOV R7,cyl?444+01H
001B 120000 F 653 LCALL ?C?UIDIV
001E E500 F 654 MOV A,ms?445+01H
0020 2F 655 ADD A,R7
0021 FF 656 MOV R7,A
0022 E500 F 657 MOV A,ms?445
0024 3E 658 ADDC A,R6
0025 FE 659 MOV R6,A
660 ; }
661 ; SOURCE LINE # 169
0026 662 ?C0015:
0026 22 663 RET
664 ; END OF GetTickCount
665
666 ;
667 ; unsigned int GetTenTickCount(void)
668
---- 669 RSEG ?PR?GetTenTickCount?STIMER
0000 670 GetTenTickCount:
671 USING 0
672 ; SOURCE LINE # 171
673 ; {
674 ; SOURCE LINE # 172
675 ; unsigned int data tmp;
676 ;
677 ; #ifdef WATCHDOG
678 ; ResetWDT();
679 ; SOURCE LINE # 176
0000 120000 F 680 LCALL ResetWDT
681 ; #endif
682 ;
683 ; ET1 = 0;
684 ; SOURCE LINE # 179
0003 C2AB 685 CLR ET1
686 ; tmp = TStatus.ms;
687 ; SOURCE LINE # 180
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -