📄 keypad.lst
字号:
257 6 }
258 5 else if(checkts())
259 5 {
260 6 checkthrough();
261 6 }
262 5 else
263 5 {
264 6 }
265 5 }
266 4 }
267 3 }
268 2 idinflag=0;
269 2 keycounter=0;
270 2 }
271 1 else //press enter and check finger
272 1 {
273 2 if(readfpmode())
274 2 {
275 3 if(readsecumode()==FPONLY)
276 3 {
277 4 if(captureandfinduser())
278 4 {
279 5 tempsn=uart0buff[PAFIMPARAM+1]<<8;
280 5 tempsn+=uart0buff[PAFIMPARAM];
281 5
282 5 readuserdata(tempsn);
283 5 userid[0]=tempbuff[8];
284 5 userid[1]=tempbuff[9];
285 5 userid[2]=tempbuff[10];
286 5 userid[3]=tempbuff[11];
287 5 eventtype=EVENTKEYPAD;
288 5
289 5 tempdata=(tempbuff[15]>>4);
290 5 if(!tempdata)
291 5 {
292 6 accessevent(eventtype|MESSAGEDOORERR);
293 6 }
294 5 else if((tempdata==INONLY)&&(eventtype>=2))
295 5 {
296 6 accessevent(eventtype|MESSAGEDOORERR);
297 6 }
298 5 else if((tempdata==OUTONLY)&&(eventtype<2))
299 5 {
300 6 accessevent(eventtype|MESSAGEDOORERR);
301 6 }
302 5 else if(checkts())
C51 COMPILER V7.01 KEYPAD 03/08/2007 12:09:34 PAGE 6
303 5 {
304 6 accessok();
305 6 }
306 5 else
307 5 {
308 6 }
309 5 }
310 4 else
311 4 {
312 5 userid[0]=0xff;
313 5 userid[1]=0xff;
314 5 userid[2]=0xff;
315 5 userid[3]=0xff;
316 5 accessevent(EVENTKEYPAD|MESSAGEDENIED);
317 5 }
318 4 }
319 3 }
320 2 }
321 1 }
322 /////////////////////////////////////////////////////////////////////////////////
323 void function1()
324 {
325 1 if(setflag)
326 1 {
327 2
328 2 if(submenuflag)
329 2 {
330 3 if(setupitem==SETKEYTEST)setkeytest();
331 3 return;
332 3 }
333 2 if((setupitem!=SETMASTERPASS)&&(setupitem!=SETPOWERINITPASS))
334 2 setmodedisp();
335 2 //setmode(0xff);
336 2 }
337 1 else
338 1 {
339 2 dispbuff[0][12]='[';
340 2 dispbuff[0][13]='F';
341 2 dispbuff[0][14]=0x31;
342 2 dispbuff[0][15]=']';
343 2 display(LINE1);
344 2 ram_writep0(FUNCTIONS,0);
345 2 }
346 1 }
347 /////////////////////////////////////////////////////////////////////////////////
348 void function2()
349 {
350 1 if(setflag)
351 1 {
352 2 if(submenuflag)
353 2 {
354 3 if(setupitem==SETKEYTEST)setkeytest();
355 3 return;
356 3 }
357 2 if((setupitem!=SETMASTERPASS)&&(setupitem!=SETPOWERINITPASS))
358 2 settsdisp();
359 2
360 2 }
361 1 else
362 1 {
363 2 dispbuff[0][12]='[';
364 2 dispbuff[0][13]='F';
C51 COMPILER V7.01 KEYPAD 03/08/2007 12:09:34 PAGE 7
365 2 dispbuff[0][14]=0x32;
366 2 dispbuff[0][15]=']';
367 2 display(LINE1);
368 2 ram_writep0(FUNCTIONS,1);
369 2 //setflag=1;
370 2 //submenuflag=0;
371 2 //settsdisp();
372 2 }
373 1 }
374 /////////////////////////////////////////////////////////////////////////////////
375 void function3()
376 {
377 1 if(setflag)
378 1 {
379 2 if(submenuflag)
380 2 {
381 3 if(setupitem==SETKEYTEST)setkeytest();
382 3 return;
383 3 }
384 2 if((setupitem!=SETMASTERPASS)&&(setupitem!=SETPOWERINITPASS))
385 2 setidregisterdisp();
386 2
387 2 }
388 1 else
389 1 {
390 2 dispbuff[0][12]='[';
391 2 dispbuff[0][13]='F';
392 2 dispbuff[0][14]=0x33;
393 2 dispbuff[0][15]=']';
394 2 display(LINE1);
395 2 ram_writep0(FUNCTIONS,2);
396 2 }
397 1 }
398 /////////////////////////////////////////////////////////////////////////////////
399 void function4()
400 {
401 1 if(setflag)
402 1 {
403 2 if(submenuflag)
404 2 {
405 3 if(setupitem==SETKEYTEST)
406 3 {
407 4 setkeytest();
408 4 }
409 3 return;
410 3 }
411 2 if((setupitem!=SETMASTERPASS)&&(setupitem!=SETPOWERINITPASS))
412 2 setfwverdisp();
413 2
414 2 }
415 1 else
416 1 {
417 2 dispbuff[0][12]='[';
418 2 dispbuff[0][13]='F';
419 2 dispbuff[0][14]=0x34;
420 2 dispbuff[0][15]=']';
421 2 display(LINE1);
422 2 ram_writep0(FUNCTIONS,3);
423 2 }
424 1 }
425 /////////////////////////////////////////////////////////////////////////////////
426 void delay60ms()
C51 COMPILER V7.01 KEYPAD 03/08/2007 12:09:34 PAGE 8
427 {
428 1 delayTimerl(T20MS);
429 1 delayTimerl(T20MS);
430 1 delayTimerl(T20MS);
431 1 }
432 /////////////////////////////////////////////////////////////////////////////////
433 void keyfun()
434 {
435 1 if(keynumber<NULLKEY)
436 1 {
437 2 set_373(BEEPPORT);
438 2 delay60ms();
439 2 clr_373(BEEPPORT);
440 2 switch(keynumber)
441 2 {
442 3 case NUMBER0:
443 3 case NUMBER1:
444 3 case NUMBER2:
445 3 case NUMBER3:
446 3 case NUMBER4:
447 3 case NUMBER5:
448 3 case NUMBER6:
449 3 case NUMBER7:
450 3 case NUMBER8:
451 3 case NUMBER9:numberfun();break;
452 3 case CANCEL:
453 3 if(setflag)
454 3 {
455 4 numberfun();break;
456 4 }
457 3 else
458 3 {
459 4 cancelfun();break;
460 4 }
461 3 case ENTER:
462 3 if(setflag)
463 3 {
464 4 numberfun();break;
465 4 }
466 3 else
467 3 {
468 4 if(readpinkeyin())enterfun();
469 4 //enterfun();
470 4 break;
471 4 }
472 3 case FUNCTION1:function1();break;
473 3 case FUNCTION2:function2();break;
474 3 case FUNCTION3:function3();break;
475 3 case FUNCTION4:function4();break;
476 3 }
477 2 }
478 1 }
479 /////////////////////////////////////////////////////////////////////////////////
480 bit checkismaster()
481 {
482 1 if(!readmasterchange())
483 1 {
484 2 if(userid[0])return FALSE;
485 2 if(userid[1])return FALSE;
486 2 if(userid[2])return FALSE;
487 2 if(userid[3])return FALSE;
488 2
C51 COMPILER V7.01 KEYPAD 03/08/2007 12:09:34 PAGE 9
489 2 return TRUE;
490 2 }
491 1 else
492 1 {
493 2
494 2 readuserdata(MASTERUSERSN);
495 2 if(tempbuff[8]!=userid[0])return FALSE;
496 2 if(tempbuff[9]!=userid[1])return FALSE;
497 2 if(tempbuff[10]!=userid[2])return FALSE;
498 2 if(tempbuff[11]!=userid[3])return FALSE;
499 2
500 2 return TRUE;
501 2 }
502 1 }
503 /////////////////////////////////////////////////////////////////////
504 bit checkts()
505 {
506 1 unsigned char holindex,i,typeofday;
507 1
508 1 if(tempbuff[14]&0xf)
509 1 {
510 2 holindex=readholindex((tempbuff[14]&0xf)-1);
511 2 if(!holindex)
512 2 {
513 3 typeofday=datetime[DTWEEK];
514 3 }
515 2 else
516 2 {
517 3 //holiday--;
518 3 holindex--;
519 3 for(i=0;i<32;i++)
520 3 {
521 4 getholdata(holindex*32+i);
522 4 if((datetime[DTMON]==tempbuff[0])&&(datetime[DTDAY]==tempbuff[1]))break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -