?? smart_timer.ls1
字號:
A51 MACRO ASSEMBLER SMART_TIMER 10/31/2003 02:22:29 PAGE 1
MACRO ASSEMBLER A51 V7.01
OBJECT MODULE PLACED IN .\smart_timer.OBJ
ASSEMBLER INVOKED BY: C:\Program Files\Keil\C51\BIN\A51.EXE .\smart_timer.src PR(.\smart_timer.ls1) EP DEBUG
LOC OBJ LINE SOURCE
1 ; .\smart_timer.SRC generated from: ..\SourceFile\smart_timer.c
2 ; COMPILER INVOKED BY:
3 ; C:\Program Files\Keil\C51\BIN\C51.EXE ..\SourceFile\smart_timer.c LARGE BROWSE DEB
UG OBJECTEXTEND PRINT(.\smart_timer.lst) SRC(.\smart_timer.SRC)
4
5 $nomod51
6
7 NAME SMART_TIMER
8
0080 9 P0 DATA 080H
0090 10 P1 DATA 090H
00A0 11 P2 DATA 0A0H
00B0 12 P3 DATA 0B0H
00B4 13 T0 BIT 0B0H.4
00D6 14 AC BIT 0D0H.6
00B5 15 T1 BIT 0B0H.5
0090 16 T2 BIT 090H.0
00AF 17 EA BIT 0A8H.7
00A8 18 IE DATA 0A8H
00CE 19 EXF2 BIT 0C8H.6
00B7 20 RD BIT 0B0H.7
00AC 21 ES BIT 0A8H.4
00B8 22 IP DATA 0B8H
0098 23 RI BIT 098H.0
00B2 24 INT0 BIT 0B0H.2
00D7 25 CY BIT 0D0H.7
0099 26 TI BIT 098H.1
00B3 27 INT1 BIT 0B0H.3
00CB 28 RCAP2H DATA 0CBH
00BC 29 PS BIT 0B8H.4
0081 30 SP DATA 081H
0091 31 T2EX BIT 090H.1
00D2 32 OV BIT 0D0H.2
00CA 33 RCAP2L DATA 0CAH
00C9 34 C_T2 BIT 0C8H.1
00B6 35 WR BIT 0B0H.6
00CD 36 RCLK BIT 0C8H.5
00CC 37 TCLK BIT 0C8H.4
0099 38 SBUF DATA 099H
0087 39 PCON DATA 087H
0098 40 SCON DATA 098H
0089 41 TMOD DATA 089H
0088 42 TCON DATA 088H
0089 43 IE0 BIT 088H.1
008B 44 IE1 BIT 088H.3
008E 45 AUXR DATA 08EH
00F0 46 B DATA 0F0H
00C8 47 CP_RL2 BIT 0C8H.0
00E0 48 ACC DATA 0E0H
00A9 49 ET0 BIT 0A8H.1
00AB 50 ET1 BIT 0A8H.3
008D 51 TF0 BIT 088H.5
00AD 52 ET2 BIT 0A8H.5
008F 53 TF1 BIT 088H.7
00CF 54 TF2 BIT 0C8H.7
009A 55 RB8 BIT 098H.2
008C 56 TH0 DATA 08CH
00A8 57 EX0 BIT 0A8H.0
A51 MACRO ASSEMBLER SMART_TIMER 10/31/2003 02:22:29 PAGE 2
0088 58 IT0 BIT 088H.0
008D 59 TH1 DATA 08DH
009B 60 TB8 BIT 098H.3
00AA 61 EX1 BIT 0A8H.2
008A 62 IT1 BIT 088H.2
00CD 63 TH2 DATA 0CDH
00D0 64 P BIT 0D0H.0
009F 65 SM0 BIT 098H.7
008A 66 TL0 DATA 08AH
009E 67 SM1 BIT 098H.6
008B 68 TL1 DATA 08BH
009D 69 SM2 BIT 098H.5
00CC 70 TL2 DATA 0CCH
00B9 71 PT0 BIT 0B8H.1
00BB 72 PT1 BIT 0B8H.3
00D3 73 RS0 BIT 0D0H.3
00BD 74 PT2 BIT 0B8H.5
008C 75 TR0 BIT 088H.4
00D4 76 RS1 BIT 0D0H.4
008E 77 TR1 BIT 088H.6
00CA 78 TR2 BIT 0C8H.2
00B8 79 PX0 BIT 0B8H.0
00BA 80 PX1 BIT 0B8H.2
0083 81 DPH DATA 083H
0082 82 DPL DATA 082H
00B7 83 IPH DATA 0B7H
00CB 84 EXEN2 BIT 0C8H.3
009C 85 REN BIT 098H.4
00C9 86 T2MOD DATA 0C9H
00C8 87 T2CON DATA 0C8H
00B9 88 SADEN DATA 0B9H
00B0 89 RXD BIT 0B0H.0
00A9 90 SADDR DATA 0A9H
008F 91 CKCON DATA 08FH
00B1 92 TXD BIT 0B0H.1
00A2 93 AUXR1 DATA 0A2H
00D5 94 F0 BIT 0D0H.5
00D0 95 PSW DATA 0D0H
96 ?PR?smart_timer_server?SMART_TIMER SEGMENT CODE
97 ?PR?smart_timer_idle_check?SMART_TIMER SEGMENT CODE
98 ?PR?_smart_timer_start?SMART_TIMER SEGMENT CODE
99 ?XD?_smart_timer_start?SMART_TIMER SEGMENT XDATA OVERLAYABLE
100 ?PR?_smart_timer_stop?SMART_TIMER SEGMENT CODE
101 ?C_INITSEG SEGMENT CODE
102 ?ID?SMART_TIMER SEGMENT IDATA
103 ?DT?SMART_TIMER SEGMENT DATA
104 ?ID?smart_timer_server?SMART_TIMER SEGMENT IDATA OVERLAYABLE
105 ?ID?smart_timer_idle_check?SMART_TIMER SEGMENT IDATA OVERLAYABLE
106 ?ID?_smart_timer_start?SMART_TIMER SEGMENT IDATA OVERLAYABLE
107 EXTRN CODE (_msg_queue_in)
108 PUBLIC SmartTimerNumber
109 PUBLIC wSmartTimerCounterRestorePool
110 PUBLIC SmartTimerMsgPool
111 PUBLIC wSmartTimerCounterPool
112 PUBLIC SmartTimerSeveralPool
113 PUBLIC _smart_timer_stop
114 PUBLIC ?_smart_timer_start?BYTE
115 PUBLIC _smart_timer_start
116 PUBLIC smart_timer_idle_check
117 PUBLIC smart_timer_server
118
---- 119 RSEG ?XD?_smart_timer_start?SMART_TIMER
0000 120 ?_smart_timer_start?BYTE:
0000 121 msgType?243: DS 1
0001 122 msgPoint?244: DS 1
0002 123 wCounter?245: DS 2
A51 MACRO ASSEMBLER SMART_TIMER 10/31/2003 02:22:29 PAGE 3
0004 124 several?246: DS 1
125
---- 126 RSEG ?ID?SMART_TIMER
0000 127 SmartTimerSeveralPool: DS 4
0004 128 SmartTimerMsgPool: DS 8
000C 129 wSmartTimerCounterRestorePool: DS 8
130
---- 131 RSEG ?DT?SMART_TIMER
0000 132 wSmartTimerCounterPool: DS 8
0008 133 SmartTimerNumber: DS 1
134
---- 135 RSEG ?ID?smart_timer_server?SMART_TIMER
0000 136 i?040: DS 1
137
---- 138 RSEG ?ID?smart_timer_idle_check?SMART_TIMER
0000 139 i?141: DS 1
140
---- 141 RSEG ?ID?smart_timer_idle_check?SMART_TIMER
0001 142 number?142: DS 1
143
---- 144 RSEG ?ID?_smart_timer_start?SMART_TIMER
0000 145 i?247: DS 1
146
---- 147 RSEG ?C_INITSEG
0000 01 148 DB 001H
0001 00 F 149 DB SmartTimerNumber
0002 00 150 DB 000H
151
152 ; /*************************************************/
153 ;
154 ; /**************虛擬定時器*******************/
155 ;
156 ; /*************2003年2月9日*********************/
157 ;
158 ; /************WROTE BY WANGSW********************/
159 ; #include "reg52x2.h"
160 ; #include "define.h"
161 ;
162 ; byte data SmartTimerNumber = 0;
163 ; MSGTYPE idata SmartTimerMsgPool[4][2];
164 ; word data wSmartTimerCounterPool[4];
165 ; word idata wSmartTimerCounterRestorePool[4];
166 ; byte idata SmartTimerSeveralPool[4];
167 ; /***************************************/
168 ;
169 ; /****************************************************************************************
**
170 ; *函數名: smart_timer_server
171 ; *參數: 無
172 ; *返回值: 無
173 ; *描述: 智能定時器服務程序, 依次對智能定時器
中的定時任務進行
174 ; 判定,到時的拋出消息,對于需多次運行的可以重載其定時計
175 ; 數次數
176 ; *編寫: 王紹偉
177 ; *版本信息: V1.0 2003年8月15日
178 ; *****************************************************************************************
*/
179 ; extern void smart_timer_server(void)
180
---- 181 RSEG ?PR?smart_timer_server?SMART_TIMER
0000 182 smart_timer_server:
183 USING 0
184 ; SOURCE LINE # 28
185 ; {
186 ; SOURCE LINE # 29
A51 MACRO ASSEMBLER SMART_TIMER 10/31/2003 02:22:29 PAGE 4
187 ; byte idata i;
188 ; if(!SmartTimerNumber)
189 ; SOURCE LINE # 31
0000 E500 F 190 MOV A,SmartTimerNumber
0002 7003 191 JNZ $ + 5H
0004 020000 F 192 LJMP ?C0002
193 ; {
194 ; SOURCE LINE # 32
195 ; return; /*r若智能定時器個數為0,則退出*/
196 ; }
197 ; SOURCE LINE # 34
0007 198 ?C0001:
199 ; for(i = 0; i < 4; i++)
200 ; SOURCE LINE # 35
0007 E4 201 CLR A
0008 7800 F 202 MOV R0,#LOW (i?040)
000A F6 203 MOV @R0,A
000B 204 ?C0003:
000B 7800 F 205 MOV R0,#LOW (i?040)
000D E6 206 MOV A,@R0
000E FF 207 MOV R7,A
000F C3 208 CLR C
0010 9404 209 SUBB A,#04H
0012 4003 210 JC $ + 5H
0014 020000 F 211 LJMP ?C0002
212 ; {
213 ; SOURCE LINE # 36
214 ; if(GETBIT(SmartTimerNumber,i))
215 ; SOURCE LINE # 37
0017 E500 F 216 MOV A,SmartTimerNumber
0019 A807 217 MOV R0,AR7
001B 08 218 INC R0
001C 8002 219 SJMP ?C0026
001E 220 ?C0025:
001E C3 221 CLR C
001F 13 222 RRC A
0020 223 ?C0026:
0020 D8FC 224 DJNZ R0,?C0025
0022 20E003 225 JB ACC.0,$ + 6H
0025 020000 F 226 LJMP ?C0005
227 ; {
228 ; SOURCE LINE # 38
229 ; if(!wSmartTimerCounterPool[i])
230 ; SOURCE LINE # 39
0028 7800 F 231 MOV R0,#LOW (i?040)
002A E6 232 MOV A,@R0
002B 25E0 233 ADD A,ACC
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -