📄 wiegand.ls1
字号:
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?_delayms?WIEGAND SEGMENT CODE
231 ?PR?_delayus?WIEGAND SEGMENT CODE
232 ?PR?_wiegandout?WIEGAND SEGMENT CODE
233 ?XD?_wiegandout?WIEGAND SEGMENT XDATA OVERLAYABLE
234 ?PR?_wiedataout?WIEGAND SEGMENT CODE
235 ?XD?_wiedataout?WIEGAND SEGMENT XDATA OVERLAYABLE
236 ?PR?_even_parity?WIEGAND SEGMENT CODE
237 ?BI?_even_parity?WIEGAND SEGMENT BIT OVERLAYABLE
238 ?PR?_odd_parity?WIEGAND SEGMENT CODE
239 ?BI?_odd_parity?WIEGAND SEGMENT BIT OVERLAYABLE
240 EXTRN XDATA (wiebuf)
241 EXTRN CODE (?C?COPY)
242 PUBLIC _odd_parity
243 PUBLIC _even_parity
244 PUBLIC _wiedataout
245 PUBLIC _wiegandout
246 PUBLIC _delayus
247 PUBLIC _delayms
248
---- 249 RSEG ?BI?_even_parity?WIEGAND
0000 250 ?_even_parity?BIT:
0000 251 opt?454: DBIT 1
252
---- 253 RSEG ?BI?_odd_parity?WIEGAND
0000 254 ?_odd_parity?BIT:
0000 255 opt?558: DBIT 1
A51 MACRO ASSEMBLER WIEGAND 08/03/2009 16:57:28 PAGE 5
256
---- 257 RSEG ?XD?_wiedataout?WIEGAND
0000 258 ?_wiedataout?BYTE:
0000 259 chanl2?349: DS 1
260
---- 261 RSEG ?XD?_wiegandout?WIEGAND
0000 262 ?_wiegandout?BYTE:
0000 263 wie?243: DS 1
0001 264 ORG 1
0001 265 chanl1?244: DS 1
0002 266 ORG 2
0002 267 k?245: DS 1
0003 268 ORG 3
0003 269 m?246: DS 1
0004 270 ORG 4
0004 271 wiebak?247: DS 6
272 ; #include "global.h"
273 ;
274 ;
275 ;
276 ; /***************************************************************************************
277 ; **函数功能:延时ms
278 ; **入参: uint x
279 ; **返回值: 无
280 ; **作者: jerkoh
281 ; **日期: 2009-03-16
282 ; **说明: 无
283 ; ***************************************************************************************/
284 ; void delayms (unsigned int x)
285
---- 286 RSEG ?PR?_delayms?WIEGAND
0000 287 _delayms:
288 USING 0
289 ; SOURCE LINE # 13
290 ;---- Variable 'j?041' assigned to Register 'R4/R5' ----
291 ;---- Variable 'x?040' assigned to Register 'R6/R7' ----
292 ; {
293 ; SOURCE LINE # 14
0000 294 ?C0001:
295 ; unsigned int j;
296 ; while(x--)
297 ; SOURCE LINE # 16
0000 EF 298 MOV A,R7
0001 1F 299 DEC R7
0002 AA06 300 MOV R2,AR6
0004 7001 301 JNZ ?C0092
0006 1E 302 DEC R6
0007 303 ?C0092:
0007 4A 304 ORL A,R2
0008 6013 305 JZ ?C0006
306 ; {
307 ; SOURCE LINE # 17
308 ; for(j=0;j<1500;j++){;}
309 ; SOURCE LINE # 18
000A E4 310 CLR A
000B FC 311 MOV R4,A
000C FD 312 MOV R5,A
000D 313 ?C0003:
000D C3 314 CLR C
000E ED 315 MOV A,R5
000F 94DC 316 SUBB A,#0DCH
0011 EC 317 MOV A,R4
0012 9405 318 SUBB A,#05H
0014 50EA 319 JNC ?C0001
0016 0D 320 INC R5
0017 BD0001 321 CJNE R5,#00H,?C0093
A51 MACRO ASSEMBLER WIEGAND 08/03/2009 16:57:28 PAGE 6
001A 0C 322 INC R4
001B 323 ?C0093:
001B 80F0 324 SJMP ?C0003
325 ; }
326 ; SOURCE LINE # 19
327 ; }
328 ; SOURCE LINE # 20
001D 329 ?C0006:
001D 22 330 RET
331 ; END OF _delayms
332
333 ; /***************************************************************************************
334 ; **函数功能:延时us
335 ; **入参: uint t
336 ; **返回值: 无
337 ; **作者: jerkoh
338 ; **日期: 2009-03-16
339 ; **说明: 无
340 ; ***************************************************************************************/
341 ; void delayus (unsigned int t)
342
---- 343 RSEG ?PR?_delayus?WIEGAND
0000 344 L?0096:
345 USING 0
0000 346 L?0097:
0000 D295 347 SETB D1IN
0002 348 L?0098:
0002 7F5A 349 MOV R7,#05AH
0004 7E00 350 MOV R6,#00H
0006 351 _delayus:
352 USING 0
353 ; SOURCE LINE # 29
354 ;---- Variable 't?142' assigned to Register 'R6/R7' ----
355 ; {
356 ; SOURCE LINE # 30
0006 357 ?C0007:
358 ;
359 ; while(t--)
360 ; SOURCE LINE # 32
0006 EF 361 MOV A,R7
0007 1F 362 DEC R7
0008 AC06 363 MOV R4,AR6
000A 7001 364 JNZ ?C0094
000C 1E 365 DEC R6
000D 366 ?C0094:
000D 4C 367 ORL A,R4
000E 6003 368 JZ ?C0009
369 ; {
370 ; SOURCE LINE # 33
371 ; _nop_();
372 ; SOURCE LINE # 34
0010 00 373 NOP
374 ; }
375 ; SOURCE LINE # 35
0011 80F3 376 SJMP ?C0007
377 ; }
378 ; SOURCE LINE # 36
0013 379 ?C0009:
0013 22 380 RET
381 ; END OF _delayus
382
383 ;
384 ; /***************************************************************************************
385 ; **函数功能:wiegand发送
386 ; **入参: wie
387 ; **返回值: 无
A51 MACRO ASSEMBLER WIEGAND 08/03/2009 16:57:28 PAGE 7
388 ; **作者: jerkoh
389 ; **日期: 2009-03-16
390 ; **说明: 判断wiegand格式
391 ; ***************************************************************************************/
392 ;
393 ; void wiegandout(unsigned char wie,unsigned char chanl1)
394
---- 395 RSEG ?PR?_wiegandout?WIEGAND
0000 396 _wiegandout:
397 USING 0
398 ; SOURCE LINE # 47
0000 900000 F 399 MOV DPTR,#chanl1?244
0003 ED 400 MOV A,R5
0004 F0 401 MOVX @DPTR,A
0005 900000 F 402 MOV DPTR,#wie?243
0008 EF 403 MOV A,R7
0009 F0 404 MOVX @DPTR,A
405 ; {
406 ; SOURCE LINE # 48
407 ; unsigned char k,m;
408 ; unsigned char xdata wiebak[6]; //备份wie
409 ; switch(wie)
410 ; SOURCE LINE # 51
000A 24E6 411 ADD A,#0E6H
000C 604B 412 JZ ?C0020
000E 24F8 413 ADD A,#0F8H
0010 6047 414 JZ ?C0020
0012 24FA 415 ADD A,#0FAH
0014 6025 416 JZ ?C0015
0016 2408 417 ADD A,#08H
0018 6003 418 JZ $ + 5H
001A 020000 F 419 LJMP ?C0039
420 ; {
421 ; SOURCE LINE # 52
422 ; case 32:
423 ; SOURCE LINE # 53
001D 424 ?C0011:
425 ; {
426 ; SOURCE LINE # 54
427 ;
428 ; for(k=2;k<6;k++)
429 ; SOURCE LINE # 56
001D 900000 F 430 MOV DPTR,#k?245
0020 7402 431 MOV A,#02H
0022 F0 432 MOVX @DPTR,A
0023 433 ?C0012:
0023 900000 F 434 MOV DPTR,#k?245
0026 E0 435 MOVX A,@DPTR
0027 FF 436 MOV R7,A
0028 C3 437 CLR C
0029 9406 438 SUBB A,#06H
002B 4003 439 JC $ + 5H
002D 020000 F 440 LJMP ?C0039
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -