📄 time.ls1
字号:
008E 207 CKCON DATA 08EH
00A2 208 IN_OUT BIT 0A0H.2
00FC 209 RXOVRN BIT 0F8H.4
00CC 210 TMR2L DATA 0CCH
00C3 211 ACKRQ BIT 0C0H.3
0094 212 TMR3L DATA 094H
00D5 213 F0 BIT 0D0H.5
00B6 214 FLSCL DATA 0B6H
00B1 215 RELAY_IN BIT 0B0H.1
00E8 216 AD0CM0 BIT 0E8H.0
00D1 217 F1 BIT 0D0H.1
00C4 218 STO BIT 0C0H.4
00E9 219 AD0CM1 BIT 0E8H.1
00A3 220 SPI0DAT DATA 0A3H
00BD 221 ADC0 DATA 0BDH
00EA 222 AD0CM2 BIT 0E8H.2
00EB 223 AD0WINT BIT 0E8H.3
00EC 224 AD0BUSY BIT 0E8H.4
00D0 225 PSW DATA 0D0H
00D8 226 CCF0 BIT 0D8H.0
009A 227 RB80 BIT 098H.2
00B7 228 FLKEY DATA 0B7H
00D9 229 CCF1 BIT 0D8H.1
230 ?PR?Timer0_Init?TIME SEGMENT CODE
231 ?PR?_Timer2_Init?TIME SEGMENT CODE
232 ?PR?Timer0_ISR?TIME SEGMENT CODE
233 ?PR?Timer2_ISR?TIME SEGMENT CODE
234 ?XD?TIME SEGMENT XDATA
235 ?C_INITSEG SEGMENT CODE
236 EXTRN BIT (wie_str)
237 EXTRN XDATA (event_word)
238 PUBLIC Timer2_ISR
239 PUBLIC Timer0_ISR
240 PUBLIC _Timer2_Init
241 PUBLIC Timer0_Init
242
---- 243 RSEG ?XD?TIME
0000 244 count1?341: DS 2
245
---- 246 RSEG ?XD?TIME
0002 247 count2?342: DS 2
248
---- 249 RSEG ?XD?TIME
0004 250 count3?343: DS 2
251
---- 252 RSEG ?C_INITSEG
0000 42 253 DB 042H
0001 0000 F 254 DW count1?341
0003 0000 255 DW 00000H
256
A51 MACRO ASSEMBLER TIME 08/03/2009 16:57:27 PAGE 5
0005 42 257 DB 042H
0006 0000 F 258 DW count2?342
0008 0000 259 DW 00000H
260
000A 42 261 DB 042H
000B 0000 F 262 DW count3?343
000D 0000 263 DW 00000H
264
265 ; #include "global.h"
266 ;
267 ;
268 ; /******************************************************************************
269 ; ** 函数: Timer0_Init ()
270 ; ** 入参: 无
271 ; ** 返回: 无
272 ; ** 说明: 查询wiegand溢出,每5ms溢出中断,10ms溢出,手工装载
273 ; ******************************************************************************/
274 ; void Timer0_Init ()
275
---- 276 RSEG ?PR?Timer0_Init?TIME
0000 277 Timer0_Init:
278 ; SOURCE LINE # 10
279 ; {
280 ; SOURCE LINE # 11
281 ; CKCON |= 0x04;
282 ; SOURCE LINE # 12
0000 438E04 283 ORL CKCON,#04H
284 ; TMOD &= ~0x0f;
285 ; SOURCE LINE # 13
0003 5389F0 286 ANL TMOD,#0F0H
287 ; TMOD |= 0x01; //16位手工载入
288 ; SOURCE LINE # 14
0006 438901 289 ORL TMOD,#01H
290 ;
291 ; RE_LOAD_TIME0;
292 ; SOURCE LINE # 16
0009 E4 293 CLR A
000A F58C 294 MOV TH0,A
000C 858C8A 295 MOV TL0,TH0
296 ;
297 ; TR0=1;
298 ; SOURCE LINE # 18
000F D28C 299 SETB TR0
300 ; ET0=1;
301 ; SOURCE LINE # 19
0011 D2A9 302 SETB ET0
303 ;
304 ;
305 ; }
306 ; SOURCE LINE # 22
0013 22 307 RET
308 ; END OF Timer0_Init
309
310 ;
311 ;
312 ;
313 ; /******************************************************************************
314 ; ** 函数: Timer2_Init ()
315 ; ** 入参: int counts
316 ; ** 返回:
317 ; ** 说明:
318 ; ** Timer2_Init SYSCLK no Interrupt
319 ; ** Configure Timer2 to auto-reload at interval specified by <counts> (no
320 ; ** interrupt generated) using SYSCLK as its time base.
321 ; ******************************************************************************/
322 ; void Timer2_Init (int counts)
A51 MACRO ASSEMBLER TIME 08/03/2009 16:57:27 PAGE 6
323
---- 324 RSEG ?PR?_Timer2_Init?TIME
0000 325 _Timer2_Init:
326 USING 0
327 ; SOURCE LINE # 35
328 ;---- Variable 'counts?140' assigned to Register 'R6/R7' ----
329 ; {
330 ; SOURCE LINE # 36
331 ; TMR2CN = 0x00; // STOP Timer2; Clear TF2H and TF2L;
332 ; SOURCE LINE # 37
0000 E4 333 CLR A
0001 F5C8 334 MOV TMR2CN,A
335 ; // disable low-byte interrupt; disable
336 ; // split mode; select internal timebase
337 ; CKCON |= 0x10;
338 ; SOURCE LINE # 40
0003 438E10 339 ORL CKCON,#010H
340 ;
341 ; TMR2RL = -counts; // Init reload values
342 ; SOURCE LINE # 42
0006 C3 343 CLR C
0007 9F 344 SUBB A,R7
0008 FF 345 MOV R7,A
0009 E4 346 CLR A
000A 9E 347 SUBB A,R6
000B F5CB 348 MOV TMR2RL+01H,A
000D 8FCA 349 MOV TMR2RL,R7
350 ; TMR2 = TMR2RL; // Init Timer2 with reload value
351 ; SOURCE LINE # 43
000F 85CBCD 352 MOV TMR2+01H,TMR2RL+01H
0012 85CACC 353 MOV TMR2,TMR2RL
354 ; ET2 = 1; // disable Timer2 interrupts
355 ; SOURCE LINE # 44
0015 D2AD 356 SETB ET2
357 ; TR2 = 1; // start Timer2
358 ; SOURCE LINE # 45
0017 D2CA 359 SETB TR2
360 ; }
361 ; SOURCE LINE # 46
0019 22 362 RET
363 ; END OF _Timer2_Init
364
---- 365 CSEG AT 0000BH
000B 020000 F 366 LJMP Timer0_ISR
367
368 ;
369 ; /******************************************************************************
370 ; ** 函数: Timer0_ISR (void) interrupt
371 ; ** 入参:
372 ; ** 返回:
373 ; ** 说明: 5ms 中断
374 ; ******************************************************************************/
375 ; void Timer0_ISR (void) interrupt 1
376
---- 377 RSEG ?PR?Timer0_ISR?TIME
378 USING 0
0000 379 Timer0_ISR:
0000 C0E0 380 PUSH ACC
0002 C083 381 PUSH DPH
0004 C082 382 PUSH DPL
383 ; SOURCE LINE # 54
384 ; {
385 ;
386 ; PCA0CPH4 =255; //32.1ms 喂狗
387 ; SOURCE LINE # 57
0006 75FEFF 388 MOV PCA0CPH4,#0FFH
A51 MACRO ASSEMBLER TIME 08/03/2009 16:57:27 PAGE 7
389 ;
390 ; if(wie_str)
391 ; SOURCE LINE # 59
0009 300007 F 392 JNB wie_str,?C0003
393 ; {
394 ; SOURCE LINE # 60
395 ; event_word |=event_wie_arrived; //当脉冲捕获开始,每次都会重载初值
396 ; SOURCE LINE # 61
000C 900000 F 397 MOV DPTR,#event_word+01H
000F E0 398 MOVX A,@DPTR
0010 4410 399 ORL A,#010H
0012 F0 400 MOVX @DPTR,A
401 ; } //一旦溢出
进入中断说明超过2ms
402 ; SOURCE LINE # 62
0013 403 ?C0003:
404 ; //没有脉冲,此时认为一帧wiegand收完
405 ;
406 ; RE_LOAD_TIME0;
407 ; SOURCE LINE # 65
0013 758C00 408 MOV TH0,#00H
0016 858C8A 409 MOV TL0,TH0
410 ;
411 ; }
412 ; SOURCE LINE # 67
0019 D082 413 POP DPL
001B D083 414 POP DPH
001D D0E0 415 POP ACC
001F 32 416 RETI
417 ; END OF Timer0_ISR
418
---- 419 CSEG AT 0002BH
002B 020000 F 420 LJMP Timer2_ISR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -