finger.lst
来自「指纹识别源代码,用于智能门紧,还有配合MF800卡使用」· LST 代码 · 共 1,220 行 · 第 1/4 页
LST
1,220 行
285 1 delayTimerh(T500MS); //051017
286 1 delayTimerh(T500MS); //051017
287 1 delayTimerh(T500MS); //051017
288 1 delayTimerh(T500MS); //051017
289 1 delayTimerh(T500MS); //051017
290 1
291 1 if(!rchecklink())
292 1 {
293 2 }
294 1 else
295 1 {
296 2 rsetcommstate();
297 2 }
298 1
299 1 TR2=0;
C51 COMPILER V7.01 FINGER 03/08/2007 12:09:37 PAGE 6
300 1 delayTimerl(T5MS);
301 1 //TH1=253;
302 1 RCAP2L=0XEE;
303 1 delayTimerl(T5MS);
304 1 TR2=1;
305 1
306 1 }
307 //////////////////////////////////////////////////////////////
308 bit rfinduserbyfim()
309 {
310 1 unsigned char code commbuff[]={0x81,0x0a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x00,0x00};
311 1 code2uart0(commbuff,13);
312 1 //uart0buff[13]=currentsn;
313 1 //uart0buff[15]=(currentsn>>8);
314 1 checkcrc(12),
315 1 sendstring(15);
316 1 fimrxdready();
317 1
318 1 return getfimpackage(RFINDUSER);
319 1
320 1 }
321 //////////////////////////////////////////////////////////////
322 bit rfinduserbysn()
323 {
324 1 unsigned char code commbuff[]={0x81,0x0f,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x01,0x00,0x00,0x01
-,0x00,0xff,0x00};
325 1 code2uart0(commbuff,18);
326 1 uart0buff[13]=currentsn;
327 1 uart0buff[15]=(currentsn>>8);
328 1 checkcrc(17),
329 1 sendstring(20);
330 1 fimrxdready();
331 1
332 1 return getfimpackage(RFINDUSER);
333 1
334 1 }
335 //////////////////////////////////////////////////////////////
336 //capture the finger and match the finger whoes sn is currentsn
337 bit captureandmatchuser()
338 {
339 1 displaymessage(LMWAITTING,LINE2);
340 1 displaymessage(LMPUTFINGER,LINE1);
341 1 delayTimerh(TMSGWAITTIME);
342 1
343 1 if(!capturecheckimage()) return FALSE;
344 1
345 1 if(!rextractfeature(3,0)) return FALSE;
346 1
347 1 if(!rfinduserbysn()) return FALSE;
348 1
349 1 return TRUE;
350 1
351 1 }
352 //////////////////////////////////////////////////////////////
353 //capture the finger and find the finger through all users
354 bit captureandfinduser()
355 {
356 1 displaymessage(LMWAITTING,LINE2);
357 1 displaymessage(LMPUTFINGER,LINE1);
358 1 delayTimerh(TMSGWAITTIME);
359 1
360 1 if(!capturecheckimage()) return FALSE;
C51 COMPILER V7.01 FINGER 03/08/2007 12:09:37 PAGE 7
361 1
362 1 if(!rextractfeature(3,0)) return FALSE;
363 1
364 1 //if(!rfinduserbysn()) return FALSE;
365 1 if(!rfinduserbyfim()) return FALSE;
366 1
367 1 return TRUE;
368 1
369 1 }
370
371 //////////////////////////////////////////////////////////////
372
373
C51 COMPILER V7.01 FINGER 03/08/2007 12:09:37 PAGE 8
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _getfimpackage (BEGIN)
; SOURCE LINE # 28
;---- Variable 'cmd' assigned to Register 'R1' ----
0000 C9 XCH A,R1
0001 EF MOV A,R7
0002 C9 XCH A,R1
; SOURCE LINE # 29
; SOURCE LINE # 32
;---- Variable 'temptime' assigned to Register 'R7' ----
0003 AF00 E MOV R7,timerh
0005 ?C0001:
; SOURCE LINE # 33
0005 C3 CLR C
0006 E500 E MOV A,timerh
0008 9F SUBB A,R7
0009 C3 CLR C
000A 9464 SUBB A,#064H
000C 506B JNC ?C0002
; SOURCE LINE # 34
; SOURCE LINE # 35
000E 3000F4 E JNB rxd0packflag,?C0001
; SOURCE LINE # 36
; SOURCE LINE # 39
0011 C200 E CLR rxd0packflag
; SOURCE LINE # 41
0013 900000 E MOV DPTR,#uart0buff+02H
0016 E0 MOVX A,@DPTR
0017 FE MOV R6,A
0018 900000 E MOV DPTR,#uart0buff+01H
001B E0 MOVX A,@DPTR
001C FD MOV R5,A
001D EE MOV A,R6
001E ED MOV A,R5
;---- Variable 'datalen' assigned to Register 'R2/R3' ----
001F FB MOV R3,A
0020 CA XCH A,R2
0021 EE MOV A,R6
0022 CA XCH A,R2
; SOURCE LINE # 44
0023 2400 E ADD A,#LOW uart0buff+03H
0025 F582 MOV DPL,A
0027 7400 E MOV A,#HIGH uart0buff+03H
0029 3A ADDC A,R2
002A F583 MOV DPH,A
002C E0 MOVX A,@DPTR
002D F500 R MOV tempcrclow,A
; SOURCE LINE # 45
002F 7400 E MOV A,#LOW uart0buff+04H
0031 2B ADD A,R3
0032 F582 MOV DPL,A
0034 7400 E MOV A,#HIGH uart0buff+04H
0036 3A ADDC A,R2
0037 F583 MOV DPH,A
0039 E0 MOVX A,@DPTR
003A F500 R MOV tempcrchigh,A
; SOURCE LINE # 48
003C EB MOV A,R3
003D 2402 ADD A,#02H
003F FF MOV R7,A
C51 COMPILER V7.01 FINGER 03/08/2007 12:09:37 PAGE 9
0040 E4 CLR A
0041 3A ADDC A,R2
0042 FE MOV R6,A
0043 120000 E LCALL _checkcrc
; SOURCE LINE # 50
0046 7400 E MOV A,#LOW uart0buff+03H
0048 2B ADD A,R3
0049 F582 MOV DPL,A
004B 7400 E MOV A,#HIGH uart0buff+03H
004D 3A ADDC A,R2
004E F583 MOV DPH,A
0050 E0 MOVX A,@DPTR
0051 6500 R XRL A,tempcrclow
0053 7022 JNZ ?C0004
0055 7400 E MOV A,#LOW uart0buff+04H
0057 2B ADD A,R3
0058 F582 MOV DPL,A
005A 7400 E MOV A,#HIGH uart0buff+04H
005C 3A ADDC A,R2
005D F583 MOV DPH,A
005F E0 MOVX A,@DPTR
0060 6500 R XRL A,tempcrchigh
0062 7013 JNZ ?C0004
; SOURCE LINE # 51
; SOURCE LINE # 52
0064 900000 E MOV DPTR,#uart0buff+09H
0067 E0 MOVX A,@DPTR
0068 69 XRL A,R1
0069 6002 JZ ?C0005
006B C3 CLR C
006C 22 RET
006D ?C0005:
; SOURCE LINE # 53
006D 900000 E MOV DPTR,#uart0buff+0BH
0070 E0 MOVX A,@DPTR
0071 6002 JZ ?C0007
0073 C3 CLR C
0074 22 RET
0075 ?C0007:
; SOURCE LINE # 54
0075 D3 SETB C
0076 22 RET
; SOURCE LINE # 55
0077 ?C0004:
; SOURCE LINE # 56
0077 C3 CLR C
0078 22 RET
; SOURCE LINE # 57
; SOURCE LINE # 58
0079 ?C0002:
; SOURCE LINE # 59
0079 C3 CLR C
; SOURCE LINE # 61
007A ?C0006:
007A 22 RET
; FUNCTION _getfimpackage (END)
; FUNCTION fimrxdready (BEGIN)
; SOURCE LINE # 62
; SOURCE LINE # 63
; SOURCE LINE # 64
0000 C200 E CLR rxd0packflag
C51 COMPILER V7.01 FINGER 03/08/2007 12:09:37 PAGE 10
; SOURCE LINE # 67
0002 22 RET
; FUNCTION fimrxdready (END)
; FUNCTION rchecklink (BEGIN)
; SOURCE LINE # 68
; SOURCE LINE # 69
; SOURCE LINE # 75
0000 7E00 R MOV R6,#HIGH commbuff
0002 7F00 R MOV R7,#LOW commbuff
0004 7D0D MOV R5,#0DH
0006 120000 E LCALL _code2uart0
; SOURCE LINE # 76
0009 7F0D MOV R7,#0DH
000B 7E00 MOV R6,#00H
000D 120000 E LCALL _sendstring
; SOURCE LINE # 78
0010 120000 R LCALL fimrxdready
; SOURCE LINE # 79
0013 7F01 MOV R7,#01H
0015 120000 R LCALL _getfimpackage
; SOURCE LINE # 85
0018 ?C0010:
0018 22 RET
; FUNCTION rchecklink (END)
; FUNCTION rsetcommstate (BEGIN)
; SOURCE LINE # 86
; SOURCE LINE # 87
; SOURCE LINE # 89
0000 7E00 R MOV R6,#HIGH commbuff
0002 7F00 R MOV R7,#LOW commbuff
0004 7D0D MOV R5,#0DH
0006 120000 E LCALL _code2uart0
; SOURCE LINE # 90
0009 7F0C MOV R7,#0CH
000B 7E00 MOV R6,#00H
000D 120000 E LCALL _checkcrc
; SOURCE LINE # 91
0010 7F0F MOV R7,#0FH
0012 120000 E LCALL _sendstring
; SOURCE LINE # 93
0015 120000 R LCALL fimrxdready
; SOURCE LINE # 94
0018 E4 CLR A
0019 FF MOV R7,A
001A 120000 R LCALL _getfimpackage
; SOURCE LINE # 96
001D ?C0011:
001D 22 RET
; FUNCTION rsetcommstate (END)
; FUNCTION rcapturecheckimage (BEGIN)
; SOURCE LINE # 110
; SOURCE LINE # 111
; SOURCE LINE # 113
0000 7E00 R MOV R6,#HIGH commbuff
0002 7F00 R MOV R7,#LOW commbuff
0004 7D0B MOV R5,#0BH
0006 120000 E LCALL _code2uart0
; SOURCE LINE # 114
0009 7F0A MOV R7,#0AH
C51 COMPILER V7.01 FINGER 03/08/2007 12:09:37 PAGE 11
000B 7E00 MOV R6,#00H
000D 120000 E LCALL _checkcrc
; SOURCE LINE # 115
0010 7F0D MOV R7,#0DH
0012 120000 E LCALL _sendstring
; SOURCE LINE # 117
0015 120000 R LCALL fimrxdready
; SOURCE LINE # 119
0018 7F10 MOV R7,#010H
001A 120000 R LCALL _getfimpackage
; SOURCE LINE # 121
001D ?C0012:
001D 22 RET
; FUNCTION rcapturecheckimage (END)
; FUNCTION _rextractfeature (BEGIN)
; SOURCE LINE # 123
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?