⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfrc500.src

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 SRC
📖 第 1 页 / 共 5 页
字号:
	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 + -