📄 stimer.ls1
字号:
0005 850000 F 688 MOV tmp?546,TStatus+02H
0008 850000 F 689 MOV tmp?546+01H,TStatus+03H
690 ; ET1 = 1;
691 ; SOURCE LINE # 181
000B D2AB 692 SETB ET1
693 ;
694 ; return tmp;
695 ; SOURCE LINE # 183
000D AE00 F 696 MOV R6,tmp?546
000F AF00 F 697 MOV R7,tmp?546+01H
698 ; }
699 ; SOURCE LINE # 184
0011 700 ?C0016:
0011 22 701 RET
702 ; END OF GetTenTickCount
703
704 ;
705 ; void InitTimer( unsigned long sysclk )
706
---- 707 RSEG ?PR?_InitTimer?STIMER
0000 708 _InitTimer:
709 USING 0
710 ; SOURCE LINE # 186
0000 900000 F 711 MOV DPTR,#sysclk?647
0003 120000 F 712 LCALL ?C?LSTXDATA
713 ; {
714 ; SOURCE LINE # 187
715 ; unsigned long data ltmp;
716 ;
717 ; if((TMOD & 0xf0) != 0x03)
A51 MACRO ASSEMBLER STIMER 03/13/2009 15:44:55 PAGE 12
718 ; SOURCE LINE # 190
0006 E589 719 MOV A,TMOD
0008 54F0 720 ANL A,#0F0H
000A 6403 721 XRL A,#03H
000C 6006 722 JZ ?C0017
723 ; {
724 ; SOURCE LINE # 191
725 ; TMOD &= 0xf0;
726 ; SOURCE LINE # 192
000E 5389F0 727 ANL TMOD,#0F0H
728 ; TMOD |= 0x03;
729 ; SOURCE LINE # 193
0011 438903 730 ORL TMOD,#03H
731 ; }
732 ; SOURCE LINE # 194
0014 733 ?C0017:
734 ;
735 ; SysClk = sysclk;
736 ; SOURCE LINE # 196
0014 900000 F 737 MOV DPTR,#sysclk?647
0017 E0 738 MOVX A,@DPTR
0018 FC 739 MOV R4,A
0019 A3 740 INC DPTR
001A E0 741 MOVX A,@DPTR
001B FD 742 MOV R5,A
001C A3 743 INC DPTR
001D E0 744 MOVX A,@DPTR
001E FE 745 MOV R6,A
001F A3 746 INC DPTR
0020 E0 747 MOVX A,@DPTR
0021 FF 748 MOV R7,A
0022 900000 F 749 MOV DPTR,#SysClk
0025 120000 F 750 LCALL ?C?LSTXDATA
751 ; ltmp = SysClk / 100;
752 ; SOURCE LINE # 197
0028 E4 753 CLR A
0029 7B64 754 MOV R3,#064H
002B FA 755 MOV R2,A
002C F9 756 MOV R1,A
002D F8 757 MOV R0,A
002E 900000 F 758 MOV DPTR,#SysClk
0031 E0 759 MOVX A,@DPTR
0032 FC 760 MOV R4,A
0033 A3 761 INC DPTR
0034 E0 762 MOVX A,@DPTR
0035 FD 763 MOV R5,A
0036 A3 764 INC DPTR
0037 E0 765 MOVX A,@DPTR
0038 FE 766 MOV R6,A
0039 A3 767 INC DPTR
003A E0 768 MOVX A,@DPTR
003B FF 769 MOV R7,A
003C 120000 F 770 LCALL ?C?ULDIV
003F 8F00 F 771 MOV ltmp?648+03H,R7
0041 8E00 F 772 MOV ltmp?648+02H,R6
0043 8D00 F 773 MOV ltmp?648+01H,R5
0045 8C00 F 774 MOV ltmp?648,R4
775 ; Interval.tenmsloops = (unsigned char)(ltmp >> 8);
776 ; SOURCE LINE # 198
0047 7808 777 MOV R0,#08H
0049 120000 F 778 LCALL ?C?ULSHR
004C 8F00 F 779 MOV Interval+02H,R7
780 ; Interval.mscycles = ltmp / 10;
781 ; SOURCE LINE # 199
004E E4 782 CLR A
004F 7B0A 783 MOV R3,#0AH
A51 MACRO ASSEMBLER STIMER 03/13/2009 15:44:55 PAGE 13
0051 FA 784 MOV R2,A
0052 F9 785 MOV R1,A
0053 F8 786 MOV R0,A
0054 AF00 F 787 MOV R7,ltmp?648+03H
0056 AE00 F 788 MOV R6,ltmp?648+02H
0058 AD00 F 789 MOV R5,ltmp?648+01H
005A AC00 F 790 MOV R4,ltmp?648
005C 120000 F 791 LCALL ?C?ULDIV
005F 8E00 F 792 MOV Interval,R6
0061 8F00 F 793 MOV Interval+01H,R7
794 ;
795 ; SetIntPri(TF1_VECTOR, 0);
796 ; SOURCE LINE # 201
0063 E4 797 CLR A
0064 FD 798 MOV R5,A
0065 7F03 799 MOV R7,#03H
0067 120000 F 800 LCALL _SetIntPri
801 ; SetIntPri(TF0_VECTOR, 3);
802 ; SOURCE LINE # 202
006A 7D03 803 MOV R5,#03H
006C 7F01 804 MOV R7,#01H
006E 120000 F 805 LCALL _SetIntPri
806 ;
807 ; TH0=0;
808 ; SOURCE LINE # 204
0071 E4 809 CLR A
0072 F58C 810 MOV TH0,A
811 ; TR1=1;
812 ; SOURCE LINE # 205
0074 D28E 813 SETB TR1
814 ; ET1=1;
815 ; SOURCE LINE # 206
0076 D2AB 816 SETB ET1
817 ; enable();
818 ; SOURCE LINE # 207
0078 D2AF 819 SETB EA
820 ; }
821 ; SOURCE LINE # 208
007A 22 822 RET
823 ; END OF _InitTimer
824
825 ;
826 ; void InitUserTimer(unsigned char rldval, unsigned char startval)
827
---- 828 RSEG ?PR?_InitUserTimer?STIMER
0000 829 _InitUserTimer:
830 USING 0
831 ; SOURCE LINE # 210
832 ;---- Variable 'startval?750' assigned to Register 'R5' ----
833 ;---- Variable 'rldval?749' assigned to Register 'R7' ----
834 ; {
835 ; SOURCE LINE # 211
836 ; UserReload = rldval;
837 ; SOURCE LINE # 212
0000 8F00 F 838 MOV UserReload,R7
839 ; TL0 = startval;
840 ; SOURCE LINE # 213
0002 CF 841 XCH A,R7
0003 ED 842 MOV A,R5
0004 CF 843 XCH A,R7
0005 8F8A 844 MOV TL0,R7
845 ; TF0 = 0;
846 ; SOURCE LINE # 214
0007 C28D 847 CLR TF0
848 ; TR0 = 1;
849 ; SOURCE LINE # 215
A51 MACRO ASSEMBLER STIMER 03/13/2009 15:44:55 PAGE 14
0009 D28C 850 SETB TR0
851 ; ET0 = 1;
852 ; SOURCE LINE # 216
000B D2A9 853 SETB ET0
854 ; }
855 ; SOURCE LINE # 217
000D 22 856 RET
857 ; END OF _InitUserTimer
858
859 ;
860 ; void led(unsigned char ltick)
861
---- 862 RSEG ?PR?_led?STIMER
0000 863 _led:
864 ; SOURCE LINE # 219
865 ;---- Variable 'ltick?851' assigned to Register 'R7' ----
866 ; {
867 ; SOURCE LINE # 220
868 ; if(ltick == 0)
869 ; SOURCE LINE # 221
0000 EF 870 MOV A,R7
0001 7005 871 JNZ ?C0020
872 ; {
873 ; SOURCE LINE # 222
874 ; LedFlash = 0;
875 ; SOURCE LINE # 223
0003 C200 F 876 CLR LedFlash
877 ; LED = LEDOFF;
878 ; SOURCE LINE # 224
0005 D293 879 SETB P1_3
880 ; }
881 ; SOURCE LINE # 225
0007 22 882 RET
0008 883 ?C0020:
884 ; else if(ltick == 0xff)
885 ; SOURCE LINE # 226
0008 EF 886 MOV A,R7
0009 B4FF05 887 CJNE A,#0FFH,?C0022
888 ; {
889 ; SOURCE LINE # 227
890 ; LedFlash = 0;
891 ; SOURCE LINE # 228
000C C200 F 892 CLR LedFlash
893 ; LED = LEDON;
894 ; SOURCE LINE # 229
000E C293 895 CLR P1_3
896 ; }
897 ; SOURCE LINE # 230
0010 22 898 RET
0011 899 ?C0022:
900 ; else
901 ; {
902 ; SOURCE LINE # 232
903 ; LedTick = ltick;
904 ; SOURCE LINE # 233
0011 8F00 F 905 MOV LedTick,R7
906 ; LedFlash = 1;
907 ; SOURCE LINE # 234
0013 D200 F 908 SETB LedFlash
909 ; }
910 ; SOURCE LINE # 235
911 ; }
912 ; SOURCE LINE # 236
0015 913 ?C0024:
0015 22 914 RET
915 ; END OF _led
A51 MACRO ASSEMBLER STIMER 03/13/2009 15:44:55 PAGE 15
916
917 ;
918 ; /*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -