?? rfid.ls1
字號:
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?AnalyseFrame?RFID SEGMENT CODE
231 ?XD?AnalyseFrame?RFID SEGMENT XDATA OVERLAYABLE
232 ?PR?_SeekFrame?RFID SEGMENT CODE
233 ?XD?_SeekFrame?RFID SEGMENT XDATA OVERLAYABLE
234 ?ID?AnalyseFrame?RFID SEGMENT IDATA OVERLAYABLE
235 ?ID?_SeekFrame?RFID SEGMENT IDATA OVERLAYABLE
236 EXTRN XDATA (wiebuf)
237 EXTRN IDATA (RELAY_TIME_IN)
238 EXTRN XDATA (rxdata)
239 EXTRN XDATA (txdata)
240 EXTRN IDATA (wiefmt)
241 EXTRN IDATA (INACTIVITY_TIME)
242 EXTRN BIT (TRIG_STATE)
243 EXTRN XDATA (tagnr)
244 EXTRN IDATA (event_relay)
245 EXTRN CODE (_cksum)
246 EXTRN XDATA (TagID)
247 EXTRN CODE (SiHead)
248 EXTRN CODE (_wiegandout)
249 EXTRN CODE (relay_work)
250 EXTRN XDATA (MyID)
251 EXTRN CODE (_Beef)
252 EXTRN CODE (?C?LSTIDATA)
253 EXTRN CODE (?C?LLDIDATA)
254 EXTRN CODE (?C?ULSHR)
255 EXTRN CODE (?C?COPY)
256 PUBLIC _SeekFrame
A51 MACRO ASSEMBLER RFID 08/03/2009 16:57:28 PAGE 5
257 PUBLIC AnalyseFrame
258
---- 259 RSEG ?XD?AnalyseFrame?RFID
0000 260 ?AnalyseFrame?BYTE:
0000 261 i?040: DS 1
0001 262 ORG 1
0001 263 nr?042: DS 1
0002 264 ORG 2
0002 265 reply?045: DS 2
266
---- 267 RSEG ?XD?_SeekFrame?RFID
0000 268 ?_SeekFrame?BYTE:
0000 269 cmdd?146: DS 1
0001 270 ORG 1
0001 271 seek?149: DS 2
272
---- 273 RSEG ?ID?AnalyseFrame?RFID
0000 274 result?043: DS 2
275
---- 276 RSEG ?ID?AnalyseFrame?RFID
0002 277 sum?044: DS 4
278
---- 279 RSEG ?ID?_SeekFrame?RFID
0000 280 sum?147: DS 4
281 ; #include "global.h"
282 ;
283 ; extern uchar idata TRG;
284 ; /******************************************************************************
285 ; ** 函數: AnalyseFrame()
286 ; ** 入參: rxdata
287 ; ** 返回:
288 ; ** 說明:
289 ; ******************************************************************************/
290 ; void AnalyseFrame()
291
---- 292 RSEG ?PR?AnalyseFrame?RFID
0000 293 AnalyseFrame:
294 USING 0
295 ; SOURCE LINE # 10
296 ; {
297 ; SOURCE LINE # 11
298 ; UCHAR i,j,nr;
299 ; UINT idata result;
300 ; ULONG idata sum;
301 ; REPLY_FRAME xdata *reply;
302 ;
303 ;
304 ; reply=(REPLY_FRAME xdata *)(rxdata+1); //指針偏移 第一位是起始0xfa
305 ; SOURCE LINE # 18
0000 7E00 F 306 MOV R6,#HIGH (rxdata+01H)
0002 7F00 F 307 MOV R7,#LOW (rxdata+01H)
0004 900000 F 308 MOV DPTR,#reply?045
0007 EE 309 MOV A,R6
0008 F0 310 MOVX @DPTR,A
0009 A3 311 INC DPTR
000A EF 312 MOV A,R7
000B F0 313 MOVX @DPTR,A
314 ; sum = (ULONG)cksum(rxdata+1,13); //求累加和
315 ; SOURCE LINE # 19
000C 7D0D 316 MOV R5,#0DH
000E 7C00 317 MOV R4,#00H
0010 120000 F 318 LCALL _cksum
0013 E4 319 CLR A
0014 FC 320 MOV R4,A
0015 FD 321 MOV R5,A
0016 7800 F 322 MOV R0,#LOW (sum?044)
A51 MACRO ASSEMBLER RFID 08/03/2009 16:57:28 PAGE 6
0018 120000 F 323 LCALL ?C?LSTIDATA
324 ; result = (UINT)(sum + (sum >> 16)); //實際校驗值
325 ; SOURCE LINE # 20
001B 7800 F 326 MOV R0,#LOW (sum?044)
001D 120000 F 327 LCALL ?C?LLDIDATA
0020 7810 328 MOV R0,#010H
0022 120000 F 329 LCALL ?C?ULSHR
0025 AB07 330 MOV R3,AR7
0027 AA06 331 MOV R2,AR6
0029 7800 F 332 MOV R0,#LOW (sum?044)
002B 120000 F 333 LCALL ?C?LLDIDATA
002E EF 334 MOV A,R7
002F 2B 335 ADD A,R3
0030 7800 F 336 MOV R0,#LOW (result?043+01H)
0032 F6 337 MOV @R0,A
0033 EE 338 MOV A,R6
0034 3A 339 ADDC A,R2
0035 18 340 DEC R0
0036 F6 341 MOV @R0,A
342 ;
343 ; memcpy(wiebuf, rxdata+7, 6); //復制卡號
344 ; SOURCE LINE # 22
0037 7800 F 345 MOV R0,#LOW (wiebuf)
0039 7C00 F 346 MOV R4,#HIGH (wiebuf)
003B 7D01 347 MOV R5,#01H
003D 7B01 348 MOV R3,#01H
003F 7A00 F 349 MOV R2,#HIGH (rxdata+07H)
0041 7900 F 350 MOV R1,#LOW (rxdata+07H)
0043 7E00 351 MOV R6,#00H
0045 7F06 352 MOV R7,#06H
0047 120000 F 353 LCALL ?C?COPY
354 ;
355 ;
356 ; if(reply->crc==result)
357 ; SOURCE LINE # 25
004A 900000 F 358 MOV DPTR,#reply?045
004D E0 359 MOVX A,@DPTR
004E FE 360 MOV R6,A
004F A3 361 INC DPTR
0050 E0 362 MOVX A,@DPTR
0051 240D 363 ADD A,#0DH
0053 F582 364 MOV DPL,A
0055 E4 365 CLR A
0056 3E 366 ADDC A,R6
0057 F583 367 MOV DPH,A
0059 E0 368 MOVX A,@DPTR
005A FE 369 MOV R6,A
005B A3 370 INC DPTR
005C E0 371 MOVX A,@DPTR
005D 7800 F 372 MOV R0,#LOW (result?043+01H)
005F 66 373 XRL A,@R0
0060 7003 374 JNZ ?C0027
0062 EE 375 MOV A,R6
0063 18 376 DEC R0
0064 66 377 XRL A,@R0
0065 378 ?C0027:
0065 6003 379 JZ $ + 5H
0067 020000 F 380 LJMP ?C0013
381 ; {
382 ; SOURCE LINE # 26
383 ; //if(DEBUG) Printf_String("\r\n[msg:]wireless is ok");
384 ; Beef(1,GREEN); //蜂鳴器和LED個響閃1次
385 ; SOURCE LINE # 28
006A FD 386 MOV R5,A
006B 7F01 387 MOV R7,#01H
006D 120000 F 388 LCALL _Beef
A51 MACRO ASSEMBLER RFID 08/03/2009 16:57:28 PAGE 7
389 ;
390 ; if((TRIG==0)&&(TRIG_STATE==1))
391 ; SOURCE LINE # 30
0070 20A105 392 JB TRIG,?C0002
0073 300002 F 393 JNB TRIG_STATE,?C0002
394 ; {
395 ; SOURCE LINE # 31
396 ; TRIG_STATE=0; //清標記
397 ; SOURCE LINE # 32
0076 C200 F 398 CLR TRIG_STATE
399 ; }
400 ; SOURCE LINE # 33
0078 401 ?C0002:
402 ;
403 ;
404 ; for(i=0;i<10;i++) //查看是否是已進入的標簽
405 ; SOURCE LINE # 36
0078 E4 406 CLR A
0079 900000 F 407 MOV DPTR,#i?040
007C F0 408 MOVX @DPTR,A
007D 409 ?C0003:
007D 900000 F 410 MOV DPTR,#i?040
0080 E0 411 MOVX A,@DPTR
0081 FF 412 MOV R7,A
0082 C3 413 CLR C
0083 940A 414 SUBB A,#0AH
0085 4003 415 JC $ + 5H
0087 020000 F 416 LJMP ?C0004
417 ; {
418 ; SOURCE LINE # 37
419 ;
420 ; if((((reply->tag_id[0]==tagnr[i].save_id[0])&&
421 ; SOURCE LINE # 39
008A 900000 F 422 MOV DPTR,#reply?045
008D E0 423 MOVX A,@DPTR
008E FC 424 MOV R4,A
008F A3 425 INC DPTR
0090 E0 426 MOVX A,@DPTR
0091 FD 427 MOV R5,A
0092 2406 428 ADD A,#06H
0094 F582 429 MOV DPL,A
0096 E4 430 CLR A
0097 3C 431 ADDC A,R4
0098 F583 432 MOV DPH,A
009A E0 433 MOVX A,@DPTR
009B FE 434 MOV R6,A
009C EF 435 MOV A,R7
009D 75F009 436 MOV B,#09H
00A0 A4 437 MUL AB
00A1 2400 F 438 ADD A,#LOW (tagnr)
00A3 F582 439 MOV DPL,A
00A5 E4 440 CLR A
00A6 3400 F 441 ADDC A,#HIGH (tagnr)
00A8 F583 442 MOV DPH,A
00AA E0 443 MOVX A,@DPTR
00AB FF 444 MOV R7,A
00AC EE 445 MOV A,R6
00AD 6F 446 XRL A,R7
00AE 6003 447 JZ $ + 5H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -