inout.lst
来自「指纹识别源代码,用于智能门紧,还有配合MF800卡使用」· LST 代码 · 共 1,164 行 · 第 1/4 页
LST
1,164 行
274 2 }
275 1
276 1
277 1 }
278 /////////////////////////////////////////////////////////////////////////////
279 void tamperchk()
280 {
281 1 if(!TAMPER)
282 1 {
283 2 if(!tamperfirst)tamperlowfirst=0;
284 2 else
285 2 {
286 3 if(tamperlowfirst)
287 3 {
288 4 tamperlowfirst=0;
289 4 tamperchktimer=timerl;
290 4 }
291 3 else
292 3 {
293 4 if((timerl-tamperchktimer)<TTAMPERDELAYTIME)return;
294 4 tamperfirst=0;
295 4 instate|=bittbl[TAMPERCOUNT];
296 4
297 4 //Here add codes when tamper switch opened
298 4 if(setflag)return;
299 4 accessevent(EVENTINPUT|MESSAGETAMPER);
300 4
301 4 }
302 3 }
C51 COMPILER V7.01 INOUT 03/08/2007 12:09:38 PAGE 6
303 2 }
304 1 else
305 1 {
306 2 if(tamperfirst)tamperlowfirst=1;
307 2 else
308 2 {
309 3 //if(tamperlowfirst) //051126
310 3 if(!tamperlowfirst) //051126
311 3 {
312 4 tamperlowfirst=1;
313 4 tamperchktimer=timerl;
314 4 }
315 3 else
316 3 {
317 4 if((timerl-tamperchktimer)<TTAMPERDELAYTIME)return;
318 4 tamperfirst=1;
319 4 instate&=~bittbl[TAMPERCOUNT];
320 4 }
321 3 }
322 2 }
323 1
324 1 }
325 /////////////////////////////////////////////////////////////////////////////
326 bit getiodata(unsigned char ioindex)
327 {
328 1 unsigned char i;
329 1
330 1 if(ioindex>=16)return FALSE;
331 1 ioindex*=5;
332 1
333 1 for(i=0;i<5;i++)
334 1 {
335 2 tempbuff[i]=ram_readp0(ioindex+i);
336 2 if(tempbuff[i]>99)
337 2 {
338 3 tempbuff[i]=0;
339 3 ram_writep0(ioindex+i,0);
340 3 }
341 2 }
342 1 }
343 /////////////////////////////////////////////////////////////////////////
344 void checksaveio(unsigned char ioindex)
345 {
346 1 unsigned char i;
347 1 if(ioindex>=16)return;
348 1 ioindex*=5;
349 1
350 1 for(i=0;i<5;i++)
351 1 {
352 2 tempbuff[i]=(dispbuff[LINE2][tblsetioposi[i*2]]-0x30)*10+dispbuff[LINE2][tblsetioposi[i*2+1]]-0x30;
353 2 if(tempbuff[i]>99)return;
354 2 }
355 1
356 1 for(i=0;i<5;i++)
357 1 {
358 2 ram_writep0(ioindex+i,tempbuff[i]);
359 2 }
360 1
361 1 }
362 /////////////////////////////////////////////////////////////////////////
363 void init_inout()
364 {
C51 COMPILER V7.01 INOUT 03/08/2007 12:09:38 PAGE 7
365 1 exitfirst=1;
366 1 aux1first=1;
367 1 aux2first=1;
368 1 contactfirst=1;
369 1 tamperfirst=1;
370 1
371 1 }
372 /////////////////////////////////////////////////////////////////////////
373
C51 COMPILER V7.01 INOUT 03/08/2007 12:09:38 PAGE 8
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION clearoutput (BEGIN)
; SOURCE LINE # 44
; SOURCE LINE # 45
; SOURCE LINE # 46
0000 C200 E CLR doorunlockflag
; SOURCE LINE # 47
0002 C200 E CLR alarmonflag
; SOURCE LINE # 48
0004 C200 E CLR ttl1onflag
; SOURCE LINE # 49
0006 C200 E CLR ttl2onflag
; SOURCE LINE # 50
0008 C200 E CLR beeponflag
; SOURCE LINE # 52
000A E4 CLR A
000B F500 E MOV doorontimer,A
; SOURCE LINE # 53
000D F500 E MOV alarmontimer,A
; SOURCE LINE # 54
000F F500 E MOV ttl1ontimer,A
; SOURCE LINE # 55
0011 F500 E MOV ttl2ontimer,A
; SOURCE LINE # 56
0013 F500 E MOV beepontimer,A
; SOURCE LINE # 59
0015 120000 E LCALL lockdoor
; SOURCE LINE # 60
0018 7F01 MOV R7,#01H
001A 120000 E LCALL _clr_373
; SOURCE LINE # 61
001D 0F INC R7
001E 120000 E LCALL _clr_373
; SOURCE LINE # 62
0021 0F INC R7
0022 120000 E LCALL _clr_373
; SOURCE LINE # 63
0025 0F INC R7
0026 120000 E LCALL _clr_373
; SOURCE LINE # 65
0029 22 RET
; FUNCTION clearoutput (END)
; FUNCTION cleariodef (BEGIN)
; SOURCE LINE # 67
; SOURCE LINE # 68
; SOURCE LINE # 70
;---- Variable 'i' assigned to Register 'R6' ----
0000 E4 CLR A
0001 FE MOV R6,A
0002 ?C0002:
; SOURCE LINE # 71
; SOURCE LINE # 72
0002 CF XCH A,R7
0003 EE MOV A,R6
0004 CF XCH A,R7
0005 EE MOV A,R6
0006 900000 R MOV DPTR,#tblinoutcode
0009 93 MOVC A,@A+DPTR
000A FD MOV R5,A
C51 COMPILER V7.01 INOUT 03/08/2007 12:09:38 PAGE 9
000B 120000 E LCALL _ram_writep0
; SOURCE LINE # 73
000E 0E INC R6
000F BE50F0 CJNE R6,#050H,?C0002
; SOURCE LINE # 74
0012 ?C0005:
0012 22 RET
; FUNCTION cleariodef (END)
; FUNCTION exitchk (BEGIN)
; SOURCE LINE # 76
; SOURCE LINE # 77
; SOURCE LINE # 78
0000 20B22B JB EXIT,?C0006
; SOURCE LINE # 79
; SOURCE LINE # 80
0003 200003 R JB exitfirst,?C0007
0006 C200 R CLR exitlowfirst
0008 22 RET
0009 ?C0007:
; SOURCE LINE # 82
; SOURCE LINE # 83
0009 300006 R JNB exitlowfirst,?C0009
; SOURCE LINE # 84
; SOURCE LINE # 85
000C C200 R CLR exitlowfirst
; SOURCE LINE # 86
000E 850000 R MOV exitchktimer,timerl
; SOURCE LINE # 87
0011 22 RET
0012 ?C0009:
; SOURCE LINE # 89
; SOURCE LINE # 90
0012 C3 CLR C
0013 E500 E MOV A,timerl
0015 9500 R SUBB A,exitchktimer
0017 C3 CLR C
0018 9403 SUBB A,#03H
001A 4035 JC ?C0012
001C ?C0011:
; SOURCE LINE # 91
001C C200 R CLR exitfirst
; SOURCE LINE # 93
001E 900000 E MOV DPTR,#bittbl
0021 E4 CLR A
0022 93 MOVC A,@A+DPTR
0023 4200 R ORL instate,A
; SOURCE LINE # 94
0025 200029 E JB setflag,?C0012
0028 ?C0013:
; SOURCE LINE # 96
0028 7F60 MOV R7,#060H
002A 120000 E LCALL _accessevent
; SOURCE LINE # 97
; SOURCE LINE # 98
; SOURCE LINE # 99
002D 22 RET
002E ?C0006:
; SOURCE LINE # 101
; SOURCE LINE # 102
002E 300003 R JNB exitfirst,?C0015
0031 D200 R SETB exitlowfirst
C51 COMPILER V7.01 INOUT 03/08/2007 12:09:38 PAGE 10
0033 22 RET
0034 ?C0015:
; SOURCE LINE # 104
; SOURCE LINE # 106
0034 200006 R JB exitlowfirst,?C0017
; SOURCE LINE # 107
; SOURCE LINE # 108
0037 D200 R SETB exitlowfirst
; SOURCE LINE # 109
0039 850000 R MOV exitchktimer,timerl
; SOURCE LINE # 110
003C 22 RET
003D ?C0017:
; SOURCE LINE # 112
; SOURCE LINE # 113
003D C3 CLR C
003E E500 E MOV A,timerl
0040 9500 R SUBB A,exitchktimer
0042 C3 CLR C
0043 9403 SUBB A,#03H
0045 400A JC ?C0012
0047 ?C0019:
; SOURCE LINE # 114
0047 D200 R SETB exitfirst
; SOURCE LINE # 115
0049 900000 E MOV DPTR,#bittbl
004C E4 CLR A
004D 93 MOVC A,@A+DPTR
004E F4 CPL A
004F 5200 R ANL instate,A
; SOURCE LINE # 116
; SOURCE LINE # 117
; SOURCE LINE # 118
; SOURCE LINE # 119
0051 ?C0012:
0051 22 RET
; FUNCTION exitchk (END)
; FUNCTION aux1chk (BEGIN)
; SOURCE LINE # 121
; SOURCE LINE # 122
; SOURCE LINE # 123
0000 20962B JB AUX1,?C0020
; SOURCE LINE # 124
; SOURCE LINE # 125
0003 200003 R JB aux1first,?C0021
0006 C200 R CLR aux1lowfirst
0008 22 RET
0009 ?C0021:
; SOURCE LINE # 127
; SOURCE LINE # 128
0009 300006 R JNB aux1lowfirst,?C0023
; SOURCE LINE # 129
; SOURCE LINE # 130
000C C200 R CLR aux1lowfirst
; SOURCE LINE # 131
000E 850000 R MOV aux1chktimer,timerl
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?