📄 mfrc500.src
字号:
ORG 1
uncoded_keys?37195: DS 3
ORG 4
e2addr?37197: DS 2
ORG 6
coded_keys?37198: DS 12
RSEG ?XD?_ExchangeByteStream?MFRC500
?_ExchangeByteStream?BYTE:
Cmd?38199: DS 1
ORG 1
send_data?38200: DS 3
ORG 4
send_bytelen?38201: DS 2
ORG 6
rec_data?38202: DS 3
ORG 9
rec_bytelen?38203: DS 3
ORG 12
status?38204: DS 1
RSEG ?XD?_M500PiccExchangeBlock?MFRC500
?_M500PiccExchangeBlock?BYTE:
send_data?39205: DS 3
ORG 3
send_bytelen?39206: DS 2
ORG 5
rec_data?39207: DS 3
ORG 8
rec_bytelen?39208: DS 3
ORG 11
append_crc?39209: DS 1
ORG 12
timeout?39210: DS 4
ORG 16
status?39211: DS 1
RSEG ?XD?_M500PiccAuthE2?MFRC500
?_M500PiccAuthE2?BYTE:
auth_mode?40212: DS 1
ORG 1
snr?40213: DS 3
ORG 4
key_sector?40214: DS 1
ORG 5
block?40215: DS 1
ORG 6
status?40216: DS 1
ORG 7
e2addr?40217: DS 2
ORG 9
e2addrbuf?40218: DS 3
RSEG ?XD?_MProCommand?MFRC500
?_MProCommand?BYTE:
ReadBuf?41219: DS 3
ORG 3
ReadBuf_len?41220: DS 2
ORG 5
PReadBuf?41221: DS 3
ORG 8
PReadBuf_len?41222: DS 3
ORG 11
append_crc?41223: DS 1
ORG 12
timeout?41224: DS 2
ORG 14
nkey?41225: DS 6
ORG 20
SFCI?41232: DS 1
ORG 21
CofgReadBuf?41233: DS 128
RSEG ?XD?_M500PiccCascSelect?MFRC500
?_M500PiccCascSelect?BYTE:
select_code?31154: DS 1
ORG 1
snr?31155: DS 3
ORG 4
sak?31156: DS 3
ORG 7
status?31157: DS 1
RSEG ?XD?_M500PiccCascAnticoll?MFRC500
?_M500PiccCascAnticoll?BYTE:
select_code?32158: DS 1
ORG 1
bcnt?32159: DS 1
ORG 2
snr?32160: DS 3
ORG 5
status?32161: DS 1
ORG 6
snr_in?32162: DS 4
ORG 10
nbytes?32163: DS 1
ORG 11
nbits?32164: DS 1
ORG 12
complete?32165: DS 1
ORG 13
i?32166: DS 2
ORG 15
byteOffset?32167: DS 1
RSEG ?ID?MFRC500
irqBits?30149: DS 1
RSEG ?ID?MFRC500
irqMask?30150: DS 1
RSEG ?ID?MFRC500
oldPageSelect?30151: DS 1
RSEG ?ID?MFRC500
nbytes?30152: DS 1
RSEG ?ID?MFRC500
cnt?30153: DS 1
RSEG ?XD?MFRC500
FWI: DS 1
MInfo: DS 9
MpIsrInfo: DS 3
MpIsrOut: DS 3
MpIsrIn: DS 3
RxGain: DS 1
SndBuffer: DS 64
RcvBuffer: DS 64
MLastSelectedSnr: DS 5
RSEG ?DT?_SetBitMask?MFRC500
tmp?143: DS 1
RSEG ?DT?_M500PcdCmd?MFRC500
tmpStatus?552: DS 1
RSEG ?DT?_M500PcdCmd?MFRC500
lastBits?553: DS 1
RSEG ?DT?_M500PcdCmd?MFRC500
status?554: DS 1
RSEG ?DT?_M500PcdCmd?MFRC500
irqEn?555: DS 1
RSEG ?DT?_M500PcdCmd?MFRC500
waitFor?556: DS 1
RSEG ?DT?_M500PcdCmd?MFRC500
starttime?557: DS 2
RSEG ?ID?_M500Request?MFRC500
status?1166: DS 1
RSEG ?ID?_M500Anticoll?MFRC500
status?1269: DS 1
RSEG ?ID?_M500Anticoll?MFRC500
nbytes?1270: DS 1
RSEG ?ID?_M500Anticoll?MFRC500
bcnt?1271: DS 1
RSEG ?ID?_M500Anticoll?MFRC500
nbits?1272: DS 1
RSEG ?ID?_M500Anticoll?MFRC500
complete?1273: DS 1
RSEG ?ID?_M500Anticoll?MFRC500
byteOffset?1274: DS 1
RSEG ?ID?_M500Anticoll?MFRC500
snr_crc?1275: DS 1
RSEG ?ID?_M500Anticoll?MFRC500
snr_check?1276: DS 1
RSEG ?ID?_M500Anticoll?MFRC500
dummyShift1?1277: DS 1
RSEG ?ID?_M500Anticoll?MFRC500
dummyShift2?1278: DS 1
RSEG ?ID?_M500Select?MFRC500
status?1380: DS 1
RSEG ?ID?_M500Select?MFRC500
size?1381: DS 1
RSEG ?ID?_M500HostCodeKey?MFRC500
cnt?1484: DS 1
RSEG ?ID?_M500HostCodeKey?MFRC500
ln?1485: DS 1
RSEG ?ID?_M500HostCodeKey?MFRC500
hn?1486: DS 1
RSEG ?ID?_M500PiccAuthState?MFRC500
status?1590: DS 1
RSEG ?ID?_M500Auth?MFRC500
status?1695: DS 1
RSEG ?ID?_M500Auth?MFRC500
keycoded?1696: DS 12
RSEG ?ID?_M500Auth?MFRC500
offset?1697: DS 1
RSEG ?ID?_M500Read?MFRC500
status?17100: DS 1
RSEG ?ID?_M500Read?MFRC500
tmp?17101: DS 1
RSEG ?ID?_M500Write?MFRC500
status?18104: DS 1
RSEG ?ID?_MProCommand?MFRC500
i?41226: DS 1
RSEG ?ID?_MProCommand?MFRC500
atq?41227: DS 2
RSEG ?ID?_MProCommand?MFRC500
snr?41228: DS 10
RSEG ?ID?_MProCommand?MFRC500
sak?41229: DS 1
RSEG ?ID?_MProCommand?MFRC500
snr_len?41230: DS 1
RSEG ?ID?_MProCommand?MFRC500
TA?41231: DS 1
RSEG ?ID?_MProCommand?MFRC500
status?41234: DS 1
RSEG ?ID?_MProCommand?MFRC500
temp?41235: DS 2
RSEG ?CO?MFRC500
_?ix1000:
DB 0A0H
DB 0A1H
DB 0A2H
DB 0A3H
DB 0A4H
DB 0A5H
RSEG ?C_INITSEG
DB 041H
DW FWI
DB 005H
DB 043H
DW MpIsrInfo
DB 000H,000H,000H ; ptr3
DB 043H
DW MpIsrOut
DB 000H,000H,000H ; ptr3
DB 043H
DW MpIsrIn
DB 000H,000H,000H ; ptr3
DB 041H
DW RxGain
DB 071H
; //#include <reg51rx2.h>
; #include <reg52.h>
; #include <intrins.h>
; #include "string.h"
; #include "stimer.h"
; #include "ucio.h"
; #include "mfrc500.h"
; #include "uart.h"
; #include "v51rx2.h"
; #include "intrsc.h"
; #include "MifarePro.h"
; #include "global.h"
;
;
; #define DEBUGRC500
;
; #define enableme() EX0 = 1
; #define disableme() EX0 = 0
;
; //static volatile bit fSameCard;
;
; static volatile MfCmdInfo MInfo;
;
; // Variable in order to exchange data between function and ISR
; static volatile MfCmdInfo *MpIsrInfo = 0;
; // ISR send buffer
; static volatile unsigned char *MpIsrOut = 0;
; // ISR receive buffer
; static volatile unsigned char *MpIsrIn = 0;
;
; static unsigned char RxGain = 0x71;//73:42db, 72:38, 71:30, 70:27///////////////////
;
; #define MFIFOLength 64
;
; uchar xdata SndBuffer[64];
; uchar xdata RcvBuffer[64];
;
;
; // storage of the last selected serial number including check byte.
; // For multi level serial numbers, only the first 4 bytes are stored.
; unsigned char MLastSelectedSnr[5];
;
;
; void ResetInfo(MfCmdInfo *info)
RSEG ?PR?_ResetInfo?MFRC500
_ResetInfo:
USING 0
; SOURCE LINE # 44
;---- Variable 'info?040' assigned to Register 'R1/R2/R3' ----
; {
; SOURCE LINE # 45
; info->cmd= 0;
; SOURCE LINE # 46
CLR A
LCALL ?C?CSTPTR
; info->status = MI_OK;
; SOURCE LINE # 47
MOV DPTR,#01H
LCALL ?C?CSTOPTR
; info->irqSource= 0;
; SOURCE LINE # 48
MOV DPTR,#07H
CLR A
LCALL ?C?CSTOPTR
; info->nBytesToSend = 0;
; SOURCE LINE # 49
MOV DPTR,#03H
CLR A
LCALL ?C?CSTOPTR
; info->nBytesSent = 0;
; SOURCE LINE # 50
MOV DPTR,#02H
CLR A
LCALL ?C?CSTOPTR
; info->nBytesReceived = 0;
; SOURCE LINE # 51
MOV DPTR,#04H
CLR A
LCALL ?C?CSTOPTR
; info->nBitsReceived = 0;
; SOURCE LINE # 52
MOV DPTR,#05H
CLR A
MOV B,A
LCALL ?C?ISTOPTR
; info->collPos = 0;
; SOURCE LINE # 53
MOV DPTR,#08H
CLR A
LJMP ?C?CSTOPTR
; END OF _ResetInfo
; }
;
; void SetBitMask(uchar reg,uchar mask)
RSEG ?PR?_SetBitMask?MFRC500
_SetBitMask:
USING 0
; SOURCE LINE # 56
MOV DPTR,#mask?142
MOV A,R5
MOVX @DPTR,A
MOV DPTR,#reg?141
MOV A,R7
MOVX @DPTR,A
; {
; SOURCE LINE # 57
; uchar data tmp = 0x0;
; SOURCE LINE # 58
CLR A
MOV tmp?143,A
; tmp = ReadIO(reg);
; SOURCE LINE # 59
LCALL _ReadIO
MOV tmp?143,R7
; WriteIO(reg,tmp | mask);
; SOURCE LINE # 60
MOV DPTR,#reg?141
MOVX A,@DPTR
MOV R7,A
INC DPTR
MOVX A,@DPTR
ORL A,tmp?143
MOV R5,A
LJMP _WriteIO
; END OF _SetBitMask
; }
;
; void ClearBitMask(uchar reg,uchar mask)
RSEG ?PR?_ClearBitMask?MFRC500
L?0396:
USING 0
L?0397:
MOV R5,#08H
MOV R7,#09H
_ClearBitMask:
USING 0
; SOURCE LINE # 63
MOV DPTR,#mask?245
MOV A,R5
MOVX @DPTR,A
MOV DPTR,#reg?244
MOV A,R7
MOVX @DPTR,A
; {
; SOURCE LINE # 64
; uchar tmp = 0x0;
; SOURCE LINE # 65
;---- Variable 'tmp?246' assigned to Register 'R6' ----
CLR A
MOV R6,A
; tmp = ReadIO(reg);
; SOURCE LINE # 66
LCALL _ReadIO
XCH A,R6
MOV A,R7
XCH A,R6
; WriteIO(reg,tmp & ~mask);
; SOURCE LINE # 67
MOV DPTR,#reg?244
MOVX A,@DPTR
MOV R7,A
INC DPTR
MOVX A,@DPTR
CPL A
ANL A,R6
MOV R5,A
LJMP _WriteIO
; END OF _ClearBitMask
; }
;
; // clear fifo
; void FlushFIFO(void)
RSEG ?PR?FlushFIFO?MFRC500
FlushFIFO:
USING 0
; SOURCE LINE # 71
; {
; SOURCE LINE # 72
; SetBitMask(RegControl,0x01);
; SOURCE LINE # 73
MOV R5,#01H
MOV R7,#09H
LJMP _SetBitMask
; END OF FlushFIFO
; }
;
; /************************************
; * set timeout length *
; * tmolength: timeout length *
; ************************************/
; void M500PcdSetTmo(uchar tmoLength)
RSEG ?PR?_M500PcdSetTmo?MFRC500
L?0400:
USING 0
MOV DPTR,#MInfo+03H
MOVX @DPTR,A
MOV R7,#03H
_M500PcdSetTmo:
USING 0
; SOURCE LINE # 80
MOV DPTR,#tmoLength?447
MOV A,R7
MOVX @DPTR,A
; {
; SOURCE LINE # 81
; switch(tmoLength)
; SOURCE LINE # 82
DEC A
CJNE A,#07H,?C0347
?C0347:
JNC ?C0013
MOV DPTR,#?C0348
MOV B,#03H
MUL AB
XCH A,DPH
ADD A,B
XCH A,DPH
JMP @A+DPTR
?C0348:
LJMP ?C0006
LJMP ?C0007
LJMP ?C0008
LJMP ?C0009
LJMP ?C0010
LJMP ?C0011
LJMP ?C0012
; {
; SOURCE LINE # 83
; case 1:
; SOURCE LINE # 84
?C0006:
; WriteIO(RegTimerClock,0x07);
; SOURCE LINE # 85
MOV R5,#07H
MOV R7,#02AH
LCALL _WriteIO
; WriteIO(RegTimerReload,0x6a);
; SOURCE LINE # 86
MOV R5,#06AH
; break;
; SOURCE LINE # 87
SJMP ?C0375
; case 2:
; SOURCE LINE # 88
?C0007:
; WriteIO(RegTimerClock,0x07);
; SOURCE LINE # 89
MOV R5,#07H
MOV R7,#02AH
LCALL _WriteIO
; WriteIO(RegTimerReload,0xa0);
; SOURCE LINE # 90
MOV R5,#0A0H
?C0369:
; break;
; SOURCE LINE # 91
SJMP ?C0375
; case 3:
; SOURCE LINE # 92
?C0008:
; WriteIO(RegTimerClock,0x09);
; SOURCE LINE # 93
MOV R5,#09H
MOV R7,#02AH
LCALL _WriteIO
; WriteIO(RegTimerReload,0xa0);
; SOURCE LINE # 94
MOV R5,#0A0H
?C0370:
; break;
; SOURCE LINE # 95
SJMP ?C0375
; case 4:
; SOURCE LINE # 96
?C0009:
; WriteIO(RegTimerClock,0x09);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -