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

📄 system.src

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 SRC
📖 第 1 页 / 共 5 页
字号:
	LCALL	_ParaRead
	MOV  	DPTR,#ch?040
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;     if(ch >= 0)
			; SOURCE LINE # 97
	CLR  	C
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	JC   	?C0007
;     {
			; SOURCE LINE # 98
;         lotc = ch;
			; SOURCE LINE # 99
	MOV  	DPTR,#ch?040
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	DPTR,#lotc
	MOVX 	@DPTR,A
;         ComWrite("Success lotc.\r\n", 15);
			; SOURCE LINE # 100
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_122)
	MOV  	R1,#LOW (?SC_122)
	MOV  	R5,#0FH
;     }
			; SOURCE LINE # 101
	SJMP 	?C0143
?C0007:
;     else
;     {
			; SOURCE LINE # 103
;         lotc = 25;
			; SOURCE LINE # 104
	MOV  	DPTR,#lotc
	MOV  	A,#019H
	MOVX 	@DPTR,A
;         ParaWrite(PARA_LOTC, 25);
			; SOURCE LINE # 105
	MOV  	R5,A
	MOV  	R7,#0FCH
	LCALL	_ParaWrite
;         ComWrite("Failed lotc.\r\n", 14);
			; SOURCE LINE # 106
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_138)
	MOV  	R1,#LOW (?SC_138)
	MOV  	R5,#0EH
?C0143:
	MOV  	R4,#00H
	LCALL	_ComWrite
;     }
			; SOURCE LINE # 107
?C0008:
; 
;     // read led on both card
;     ch = ParaRead(PARA_LOBC);
			; SOURCE LINE # 110
	MOV  	R7,#0FBH
	LCALL	_ParaRead
	MOV  	DPTR,#ch?040
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;     if(ch >= 0)
			; SOURCE LINE # 111
	CLR  	C
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	JC   	?C0009
;     {
			; SOURCE LINE # 112
;         lobc = ch;
			; SOURCE LINE # 113
	MOV  	DPTR,#ch?040
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	DPTR,#lobc
	MOVX 	@DPTR,A
;         ComWrite("Success lobc.\r\n", 15);
			; SOURCE LINE # 114
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_153)
	MOV  	R1,#LOW (?SC_153)
	MOV  	R5,#0FH
;     }
			; SOURCE LINE # 115
	SJMP 	?C0144
?C0009:
;     else
;     {
			; SOURCE LINE # 117
;         lobc = 0xff;
			; SOURCE LINE # 118
	MOV  	DPTR,#lobc
	MOV  	A,#0FFH
	MOVX 	@DPTR,A
;         ParaWrite(PARA_LOBC, 0xff);
			; SOURCE LINE # 119
	MOV  	R5,A
	MOV  	R7,#0FBH
	LCALL	_ParaWrite
;         ComWrite("Failed lobc.\r\n", 14);
			; SOURCE LINE # 120
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_169)
	MOV  	R1,#LOW (?SC_169)
	MOV  	R5,#0EH
?C0144:
	MOV  	R4,#00H
	LCALL	_ComWrite
;     }
			; SOURCE LINE # 121
?C0010:
; 
;     // read led on none card
;     ch = ParaRead(PARA_LONC);
			; SOURCE LINE # 124
	MOV  	R7,#0FAH
	LCALL	_ParaRead
	MOV  	DPTR,#ch?040
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;     if(ch >= 0)
			; SOURCE LINE # 125
	CLR  	C
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	JC   	?C0011
;     {
			; SOURCE LINE # 126
;         lonc = ch;
			; SOURCE LINE # 127
	MOV  	DPTR,#ch?040
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	DPTR,#lonc
	MOVX 	@DPTR,A
;         ComWrite("Success lonc.\r\n", 15);
			; SOURCE LINE # 128
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_184)
	MOV  	R1,#LOW (?SC_184)
	MOV  	R5,#0FH
;     }
			; SOURCE LINE # 129
	SJMP 	?C0145
?C0011:
;     else
;     {
			; SOURCE LINE # 131
;         lonc = 0;
			; SOURCE LINE # 132
	CLR  	A
	MOV  	DPTR,#lonc
	MOVX 	@DPTR,A
;         ParaWrite(PARA_LONC, 0);
			; SOURCE LINE # 133
	MOV  	R5,A
	MOV  	R7,#0FAH
	LCALL	_ParaWrite
;         ComWrite("Failed lonc.\r\n", 14);
			; SOURCE LINE # 134
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_200)
	MOV  	R1,#LOW (?SC_200)
	MOV  	R5,#0EH
?C0145:
	MOV  	R4,#00H
	LCALL	_ComWrite
;     }
			; SOURCE LINE # 135
?C0012:
;     
;     // read rf card confirm time
;     ch = ParaRead(PARA_RFCCT);
			; SOURCE LINE # 138
	MOV  	R7,#0F9H
	LCALL	_ParaRead
	MOV  	DPTR,#ch?040
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;     if(ch >= 0)
			; SOURCE LINE # 139
	CLR  	C
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	JC   	?C0013
;     {
			; SOURCE LINE # 140
;         CardConfirmTime = (unsigned int)ch * 10;
			; SOURCE LINE # 141
	MOV  	DPTR,#ch?040
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	R4,#00H
	MOV  	R5,#0AH
	LCALL	?C?IMUL
	MOV  	DPTR,#CardConfirmTime
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;         ComWrite("Success rcct.\r\n", 15);
			; SOURCE LINE # 142
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_215)
	MOV  	R1,#LOW (?SC_215)
	MOV  	R5,#0FH
;     }
			; SOURCE LINE # 143
	SJMP 	?C0146
?C0013:
;     else
;     {
			; SOURCE LINE # 145
;         CardConfirmTime = 200;
			; SOURCE LINE # 146
	MOV  	DPTR,#CardConfirmTime
	CLR  	A
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#0C8H
	MOVX 	@DPTR,A
;         ParaWrite(PARA_RFCCT, 20);
			; SOURCE LINE # 147
	MOV  	R5,#014H
	MOV  	R7,#0F9H
	LCALL	_ParaWrite
;         ComWrite("Failed rcct.\r\n", 14);
			; SOURCE LINE # 148
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_231)
	MOV  	R1,#LOW (?SC_231)
	MOV  	R5,#0EH
	MOV  	R4,#00H
?C0146:
	LCALL	_ComWrite
;     }
			; SOURCE LINE # 149
?C0014:
;     
;     ComWrite("\r\n", 2);
			; SOURCE LINE # 151
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_246)
	MOV  	R1,#LOW (?SC_246)
	MOV  	R5,#02H
	MOV  	R4,#00H
	LJMP 	_ComWrite
; END OF SysInit

; }
; 
; // cardtype: 0: tic, 1: rfc
; // cardin:   0: out, 1: in
; void CardLed(bit cardtype, bit cardin)

	RSEG  ?PR?CardLed?SYSTEM
CardLed:
	USING	0
			; SOURCE LINE # 156
; {
			; SOURCE LINE # 157
;     static bit frfc = 0;
;     static bit ftic = 0;
;     
;     if(cardtype)        // rfc
			; SOURCE LINE # 161
	JNB  	cardtype?141,?C0016
;         frfc = cardin;
			; SOURCE LINE # 162
	MOV  	C,cardin?142
	MOV  	frfc?143,C
	SJMP 	?C0017
?C0016:
;     else
;         ftic = cardin;
			; SOURCE LINE # 164
	MOV  	C,cardin?142
	MOV  	ftic?144,C
?C0017:
;         
;     if(fLed)
			; SOURCE LINE # 166
	JNB  	fLed,?C0025
;     {
			; SOURCE LINE # 167
;         if(frfc && ftic)
			; SOURCE LINE # 168
	JNB  	frfc?143,?C0019
	JNB  	ftic?144,?C0019
;         {
			; SOURCE LINE # 169
;             led(lobc);
			; SOURCE LINE # 170
	MOV  	DPTR,#lobc
;         }
			; SOURCE LINE # 171
	SJMP 	?C0149
?C0019:
;         else if(ftic)
			; SOURCE LINE # 172
	JNB  	ftic?144,?C0021
;         {
			; SOURCE LINE # 173
;             led(lotc);
			; SOURCE LINE # 174
	MOV  	DPTR,#lotc
?C0148:
;         }
			; SOURCE LINE # 175
	SJMP 	?C0149
?C0021:
;         else if(frfc)
			; SOURCE LINE # 176
	JNB  	frfc?143,?C0023
;         {
			; SOURCE LINE # 177
;             led(lorc);
			; SOURCE LINE # 178
	MOV  	DPTR,#lorc
;         }
			; SOURCE LINE # 179
	SJMP 	?C0147
?C0023:
;         else
;         {
			; SOURCE LINE # 181
;             led(lonc);
			; SOURCE LINE # 182
	MOV  	DPTR,#lonc
?C0147:
?C0149:
	MOVX 	A,@DPTR
	MOV  	R7,A
	LCALL	_led
;         }
			; SOURCE LINE # 183
;     }
			; SOURCE LINE # 184
; }
			; SOURCE LINE # 185
?C0025:
	RET  	
; END OF CardLed

; 
; // command on sec
; unsigned int SecCommand(unsigned char *cmd, int len)

	RSEG  ?PR?_SecCommand?SYSTEM
_SecCommand:
	USING	0
			; SOURCE LINE # 188
	MOV  	DPTR,#len?246
	MOV  	A,R4
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R5
	MOVX 	@DPTR,A
	MOV  	DPTR,#cmd?245
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
; {
			; SOURCE LINE # 189
;     int ch;
;     
;     switch(cmd[1])
			; SOURCE LINE # 192
	MOV  	DPTR,#01H
	LCALL	?C?CLDOPTR
	DEC  	A
	JNZ  	$ + 5H
	LJMP 	?C0033
	DEC  	A
	JNZ  	$ + 5H
	LJMP 	?C0038
	ADD  	A,#02H
	JZ   	$ + 5H
	LJMP 	?C0044
;     {
			; SOURCE LINE # 193
;         case CMD_RDSEC:
			; SOURCE LINE # 194
?C0027:
;             if(len != 10)
			; SOURCE LINE # 195
	MOV  	DPTR,#len?246
	MOVX 	A,@DPTR
	JNZ  	?C0110
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#0AH
?C0110:
	JZ   	?C0028
;             {
			; SOURCE LINE # 196
;                 cmd[0] = ERRORCMD;
			; SOURCE LINE # 197
;                 return 1;
			; SOURCE LINE # 198
	LJMP 	?C0157
;             }
			; SOURCE LINE # 199
?C0028:
;             if(memcmp(cmd+2, "rdselock", 8) != 0)
			; SOURCE LINE # 200
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#02H
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	XCH  	A,R0
	MOV  	A,R1
	XCH  	A,R0
	MOV  	R4,A
	XCH  	A,R5
	MOV  	A,R3
	XCH  	A,R5
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_249)
	MOV  	R1,#LOW (?SC_249)
	MOV  	R6,#00H
	MOV  	R7,#08H
	LCALL	?C?MEMCMP
	MOV  	A,R7
	JZ   	?C0030
;             {
			; SOURCE LINE # 201
;                 cmd[0] = ERRORCMD;
			; SOURCE LINE # 202
?C0151:
;                 return 1;
			; SOURCE LINE # 203
	LJMP 	?C0157
;             }
			; SOURCE LINE # 204
?C0030:
; 
;             ch = ParaRead(PARA_LIMIT);
			; SOURCE LINE # 206
	MOV  	R7,#0F7H
	LCALL	_ParaRead
	MOV  	DPTR,#ch?248
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;             if(ch >= 0)
			; SOURCE LINE # 207
	CLR  	C
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	JC   	?C0031
;             {
			; SOURCE LINE # 208
;                 cmd[0] = SUCCESS;
			; SOURCE LINE # 209
	CLR  	A
;                 cmd[1] = (unsigned char)ch;
			; SOURCE LINE # 210
;                 return 2;
			; SOURCE LINE # 211
	SJMP 	?C0150
;             }
			; SOURCE LINE # 212
?C0031:
;             else
;             {
			; SOURCE LINE # 214
;                 cmd[0] = FAIL;
			; SOURCE LINE # 215
	MOV  	A,#01H
?C0150:
	LCALL	?C?CSTPTR
;                 cmd[1] = (char)ch;
			; SOURCE LINE # 216
	MOV  	DPTR,#ch?248
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#01H
	MOV  	A,R7
;                 return 2;
			; SOURCE LINE # 217
	LJMP 	?C0153
;             }
			; SOURCE LINE # 218
;             
;         case CMD_WRSEC:
			; SOURCE LINE # 220
?C0033:
;             if(len != 10)
			; SOURCE LINE # 221
	MOV  	DPTR,#len?246
	MOVX 	A,@DPTR
	JNZ  	?C0111
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#0AH
?C0111:
	JZ   	?C0034
;             {
			; SOURCE LINE # 222
;                 cmd[0] = ERRORCMD;
			; SOURCE LINE # 223
?C0152:
;                 return 1;
			; SOURCE LINE # 224
	LJMP 	?C0157
;             }
			; SOURCE LINE # 225
?C0034:
;             if(memcmp(cmd+3, "wselock", 7) != 0)
			; SOURCE LINE # 226
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#03H
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	XCH  	A,R0
	MOV  	A,R1
	XCH  	A,R0
	MOV  	R4,A
	XCH  	A,R5
	MOV  	A,R3
	XCH  	A,R5
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_258)
	MOV  	R1,#LOW (?SC_258)
	MOV  	R6,#00H
	MOV  	R7,#07H
	LCALL	?C?MEMCMP
	MOV  	A,R7
	JZ   	?C0035
;             {
			; SOURCE LINE # 227
;                 cmd[0] = ERRORCMD;
			; SOURCE LINE # 228
?C0154:
;                 return 1;
			; SOURCE LINE # 229
	LJMP 	?C0157
;             }
			; SOURCE LINE # 230
?C0035:
;             
;             if(ParaWrite(PARA_LIMIT, cmd[2]) != cmd[2])
			; SOURCE LINE # 232
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#02H
	LCALL	?C?CLDOPTR
	MOV  	R5,A
	MOV  	R7,#0F7H
	LCALL	_ParaWrite
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#02H
	LCALL	?C?CLDOPTR
	XRL  	A,R7
	JNZ  	?C0112
	MOV  	A,R6
?C0112:
	JZ   	?C0036
;             {
			; SOURCE LINE # 233
;                 cmd[0] = FAIL;
			; SOURCE LINE # 234
	MOV  	A,#01H
	LCALL	?C?CSTPTR
;                 return 1;
			; SOURCE LINE # 235
	MOV  	R6,#00H
	MOV  	R7,A
	RET  	
;             }
			; SOURCE LINE # 236
?C0036:
;             else
;             {
			; SOURCE LINE # 238
;                 cmd[0] = SUCCESS;
			; SOURCE LINE # 239
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -