📄 rdio.ls1
字号:
253 ; // Close Reader Communication
254 ; ///////////////////////////////////////////////////////////////////////////////
255 ; void CloseIO(void)
A51 MACRO ASSEMBLER RDIO 08/13/2007 15:29:35 PAGE 5
256
---- 257 RSEG ?PR?CloseIO?RDIO
0000 258 CloseIO:
259 ; SOURCE LINE # 39
260 ; {
261 ; SOURCE LINE # 40
262 ; GpBase = 0xff00;
263 ; SOURCE LINE # 41
0000 900000 F 264 MOV DPTR,#GpBase
0003 74FF 265 MOV A,#0FFH
0005 F0 266 MOVX @DPTR,A
0006 A3 267 INC DPTR
0007 E4 268 CLR A
0008 F0 269 MOVX @DPTR,A
270 ; P2_7 = 1; // disable the CS for RC500
271 ; SOURCE LINE # 42
0009 D2A7 272 SETB P2_7
273 ; }
274 ; SOURCE LINE # 43
000B 22 275 RET
276 ; END OF CloseIO
277
278 ;
279 ; ///////////////////////////////////////////////////////////////////////////////
280 ; // G E N E R I C W R I T E
281 ; ///////////////////////////////////////////////////////////////////////////////
282 ; void WriteIO(unsigned char Address, unsigned char data value)
283
---- 284 RSEG ?PR?_WriteIO?RDIO
0000 285 _WriteIO:
286 USING 0
287 ; SOURCE LINE # 48
288 ;---- Variable 'value?241' assigned to Register 'R5' ----
289 ;---- Variable 'Address?240' assigned to Register 'R7' ----
290 ; {
291 ; SOURCE LINE # 49
292 ; AUXR |=0x02;
293 ; SOURCE LINE # 50
0000 438E02 294 ORL AUXR,#02H
295 ; WriteRawIO(Address,value);
296 ; SOURCE LINE # 51
0003 900000 F 297 MOV DPTR,#GpBase
0006 E0 298 MOVX A,@DPTR
0007 FC 299 MOV R4,A
0008 A3 300 INC DPTR
0009 E0 301 MOVX A,@DPTR
000A 2F 302 ADD A,R7
000B F582 303 MOV DPL,A
000D E4 304 CLR A
000E 3C 305 ADDC A,R4
000F F583 306 MOV DPH,A
0011 ED 307 MOV A,R5
0012 F0 308 MOVX @DPTR,A
309 ; AUXR &=0xfd; // write value at the specified
310 ; SOURCE LINE # 52
0013 538EFD 311 ANL AUXR,#0FDH
312 ; // address
313 ; }
314 ; SOURCE LINE # 54
0016 22 315 RET
316 ; END OF _WriteIO
317
318 ;
319 ; ///////////////////////////////////////////////////////////////////////////////
320 ; // G E N E R I C R E A D
321 ; ///////////////////////////////////////////////////////////////////////////////
A51 MACRO ASSEMBLER RDIO 08/13/2007 15:29:35 PAGE 6
322 ; unsigned char ReadIO(unsigned char data Address)
323
---- 324 RSEG ?PR?_ReadIO?RDIO
0000 325 _ReadIO:
326 USING 0
327 ; SOURCE LINE # 59
328 ;---- Variable 'Address?342' assigned to Register 'R7' ----
329 ; {
330 ; SOURCE LINE # 60
331 ; static unsigned char c;
332 ; AUXR |=0x02;
333 ; SOURCE LINE # 62
0000 438E02 334 ORL AUXR,#02H
335 ; c = ReadRawIO(Address); // read value at the specified
336 ; SOURCE LINE # 63
0003 900000 F 337 MOV DPTR,#GpBase
0006 E0 338 MOVX A,@DPTR
0007 FC 339 MOV R4,A
0008 A3 340 INC DPTR
0009 E0 341 MOVX A,@DPTR
000A 2F 342 ADD A,R7
000B F582 343 MOV DPL,A
000D E4 344 CLR A
000E 3C 345 ADDC A,R4
000F F583 346 MOV DPH,A
0011 E0 347 MOVX A,@DPTR
0012 900000 F 348 MOV DPTR,#c?343
0015 F0 349 MOVX @DPTR,A
350 ; AUXR &=0xfd; // address
351 ; SOURCE LINE # 64
0016 538EFD 352 ANL AUXR,#0FDH
353 ; return c;
354 ; SOURCE LINE # 65
0019 E0 355 MOVX A,@DPTR
001A FF 356 MOV R7,A
357 ; }
358 ; SOURCE LINE # 66
001B 359 ?C0004:
001B 22 360 RET
361 ; END OF _ReadIO
362
363 ;
364 ; #ifndef SEC_NO_MICORE
365 ; ///////////////////////////////////////////////////////////////////////////////
366 ; // W R I T E S E V E R A L M E M O R Y L O C A T I O N S
367 ; ///////////////////////////////////////////////////////////////////////////////
368 ; void WriteIOBlock(unsigned char *Addr_Data, unsigned short len)
369
---- 370 RSEG ?PR?_WriteIOBlock?RDIO
0000 371 _WriteIOBlock:
372 USING 0
373 ; SOURCE LINE # 72
0000 900000 F 374 MOV DPTR,#Addr_Data?444
0003 EB 375 MOV A,R3
0004 F0 376 MOVX @DPTR,A
0005 A3 377 INC DPTR
0006 EA 378 MOV A,R2
0007 F0 379 MOVX @DPTR,A
0008 A3 380 INC DPTR
0009 E9 381 MOV A,R1
000A F0 382 MOVX @DPTR,A
000B A3 383 INC DPTR
000C EC 384 MOV A,R4
000D F0 385 MOVX @DPTR,A
000E A3 386 INC DPTR
000F ED 387 MOV A,R5
A51 MACRO ASSEMBLER RDIO 08/13/2007 15:29:35 PAGE 7
0010 F0 388 MOVX @DPTR,A
389 ; {
390 ; SOURCE LINE # 73
391 ; static unsigned short cnt;
392 ;
393 ; for (cnt = 0; cnt < len; cnt++)
394 ; SOURCE LINE # 76
0011 E4 395 CLR A
0012 900000 F 396 MOV DPTR,#cnt?446
0015 F0 397 MOVX @DPTR,A
0016 A3 398 INC DPTR
0017 F0 399 MOVX @DPTR,A
0018 400 ?C0005:
0018 900000 F 401 MOV DPTR,#len?445
001B E0 402 MOVX A,@DPTR
001C FE 403 MOV R6,A
001D A3 404 INC DPTR
001E E0 405 MOVX A,@DPTR
001F FF 406 MOV R7,A
0020 900000 F 407 MOV DPTR,#cnt?446
0023 E0 408 MOVX A,@DPTR
0024 FC 409 MOV R4,A
0025 A3 410 INC DPTR
0026 E0 411 MOVX A,@DPTR
0027 FD 412 MOV R5,A
0028 C3 413 CLR C
0029 9F 414 SUBB A,R7
002A EC 415 MOV A,R4
002B 9E 416 SUBB A,R6
002C 5055 417 JNC ?C0008
418 ; {
419 ; SOURCE LINE # 77
420 ; // write value at the specified address
421 ; WriteRawIO(Addr_Data[cnt*2],Addr_Data[cnt * 2 + 1]);
422 ; SOURCE LINE # 79
002E ED 423 MOV A,R5
002F 25E0 424 ADD A,ACC
0031 FF 425 MOV R7,A
0032 EC 426 MOV A,R4
0033 33 427 RLC A
0034 FE 428 MOV R6,A
0035 EF 429 MOV A,R7
0036 2401 430 ADD A,#01H
0038 FF 431 MOV R7,A
0039 E4 432 CLR A
003A 3E 433 ADDC A,R6
003B FE 434 MOV R6,A
003C 900000 F 435 MOV DPTR,#Addr_Data?444
003F E0 436 MOVX A,@DPTR
0040 FB 437 MOV R3,A
0041 A3 438 INC DPTR
0042 E0 439 MOVX A,@DPTR
0043 FA 440 MOV R2,A
0044 A3 441 INC DPTR
0045 E0 442 MOVX A,@DPTR
0046 F9 443 MOV R1,A
0047 8F82 444 MOV DPL,R7
0049 8E83 445 MOV DPH,R6
004B 120000 F 446 LCALL ?C?CLDOPTR
004E FD 447 MOV R5,A
004F 900000 F 448 MOV DPTR,#cnt?446+01H
0052 E0 449 MOVX A,@DPTR
0053 25E0 450 ADD A,ACC
0055 FF 451 MOV R7,A
0056 900000 F 452 MOV DPTR,#cnt?446
0059 E0 453 MOVX A,@DPTR
A51 MACRO ASSEMBLER RDIO 08/13/2007 15:29:35 PAGE 8
005A 33 454 RLC A
005B 8F82 455 MOV DPL,R7
005D F583 456 MOV DPH,A
005F 120000 F 457 LCALL ?C?CLDOPTR
0062 FF 458 MOV R7,A
0063 900000 F 459 MOV DPTR,#GpBase
0066 E0 460 MOVX A,@DPTR
0067 FA 461 MOV R2,A
0068 A3 462 INC DPTR
0069 E0 463 MOVX A,@DPTR
006A 2F 464 ADD A,R7
006B F582 465 MOV DPL,A
006D E4 466 CLR A
006E 3A 467 ADDC A,R2
006F F583 468 MOV DPH,A
0071 ED 469 MOV A,R5
0072 F0 470 MOVX @DPTR,A
471 ; }
472 ; SOURCE LINE # 80
0073 900000 F 473 MOV DPTR,#cnt?446+01H
0076 E0 474 MOVX A,@DPTR
0077 04 475 INC A
0078 F0 476 MOVX @DPTR,A
0079 709D 477 JNZ ?C0005
007B 900000 F 478 MOV DPTR,#cnt?446
007E E0 479 MOVX A,@DPTR
007F 04 480 INC A
0080 F0 481 MOVX @DPTR,A
0081 482 ?C0013:
0081 8095 483 SJMP ?C0005
484 ; }
485 ; SOURCE LINE # 81
0083 486 ?C0008:
0083 22 487 RET
488 ; END OF _WriteIOBlock
489
490 ;
491 ; ///////////////////////////////////////////////////////////////////////////////
492 ; // R E A D S E V E R A L M E M O R Y L O C A T I O N S
493 ; ///////////////////////////////////////////////////////////////////////////////
494 ; void ReadIOBlock(unsigned char* Addr_Data, unsigned short len)
495
---- 496 RSEG ?PR?_ReadIOBlock?RDIO
0000 497 _ReadIOBlock:
498 USING 0
499 ; SOURCE LINE # 86
0000 900000 F 500 MOV DPTR,#len?548
0003 EC 501 MOV A,R4
0004 F0 502 MOVX @DPTR,A
0005 A3 503 INC DPTR
0006 ED 504 MOV A,R5
0007 F0 505 MOVX @DPTR,A
506 ;---- Variable 'Addr_Data?547' assigned to Register 'R1/R2/R3' ----
507 ; {
508 ; SOURCE LINE # 87
509 ; static unsigned short cnt;
510 ;
511 ; for (cnt = 0; cnt < len; cnt)
512 ; SOURCE LINE # 90
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -