📄 readermodule.lst
字号:
422 2 {
423 3 if (bitcount == 5)
424 3 {
425 4 if(parity & 0x01) //odd parity
426 4 {
427 5 cardbytein[bytecount++]= (~(nibin>>2)) & 0x0f;
428 5 if (bytecount>=MAXCARDCHAR)
429 5 {
430 6 cardbytein[bytecount+1]=0;
431 6 CardDataIn = 1;
432 6 anticollision=1; //kk 21/10/05
433 6 cardtime = 18;
434 6 SHD=SLEEP; //11/28/2005 9:05PM
435 6
436 6 }
437 5 }
438 4 else
439 4 {
440 5 cbitcount = 0;
441 5 startpattern=0;
442 5 rdr=0; //redetect upon state change of 1 to 0
443 5 }
444 4 bitcount = 0; //reset all parameter, search for the
445 4 nibin = 0; //correct start pattern
446 4 parity =0;
447 4 }
448 3 }
449 2 else if(cbitcount >=61)
450 2 {
451 3 if (bitcount == 5)
452 3 {
453 4 if(1)//!ch) //stop bit
454 4 {
455 5 cbitcount = 0;
456 5 //CardDataIn = 1;
457 5 rdr = 0;
458 5 columnparity = nibin&0x0f;
459 5 cardtime = 18;
460 5 bytecount=0;
461 5 startpattern = 0;
462 5 bitcount = 0; //reset all parameter, search for the
463 5 nibin = 0; //correct start pattern
464 5 }
465 4 }
466 3 }
467 2 if(cbitcount > 66)
468 2 {
469 3 cbitcount = 0;
470 3 //CardDataIn = 1;
471 3 rdr = 0;
472 3 columnparity = nibin&0x0f;
473 3 cardtime = 18;
474 3 bytecount=0;
475 3 startpattern = 0;
476 3 bitcount = 0; //reset all parameter, search for the
477 3 nibin = 0; //correct start pattern
478 3 }
479 2 clock_isr_counter1=0;
C51 COMPILER V7.06 READERMODULE 09/05/2006 01:45:27 PAGE 9
480 2
481 2 }
482 1
483 1 }
484 /*=============================================================================
485 =============================================================================*/
486 /******************************************
487 serial transmit interrupt
488 *********************************************/
489 /*
490 void serial (void) interrupt 4
491 {
492
493 if (RI)
494 {
495 comsinbuffer = SBUF;
496 RI = 0;
497 }
498 }
499 */
500 void fillintbuffer (char* buf, char len, unsigned int datano)
501 {
502 1 idata char i, j, t;
503 1 idata unsigned long mult;
504 1
505 1 mult = 1U;
506 1 for (i=len, j=1; i>0; i--, j++)
507 1 {
508 2 t = (datano % (mult*10L)) / mult;
509 2 mult *= 10L;
510 2 buf [i-1] = t + '0';
511 2 // + '0';
512 2 }
513 1 }
514 void Delay_ms(unsigned char time)
515 {
516 1 idata unsigned char j ;
517 1 idata unsigned int i;
518 1
519 1
520 1 for(j=0;j<time;j++)
521 1 {
522 2 for(i=0;i<1650;i++)
523 2 {
524 3 }
525 2 }
526 1 }
527
528 void ClearKeyBuffer (void)
529 {
530 1 idata unsigned char i;
531 1 for(i=0;i<=9;i++)
532 1 KeyChar[i]=0;
533 1 }
534
535 void ShowError (void)
536 {
537 1 put_c('E'); //kk test
538 1 beepbeep(3);
539 1 masterpinCount=0;
540 1
541 1 LED_GREEN=LED_OFF;
C51 COMPILER V7.06 READERMODULE 09/05/2006 01:45:27 PAGE 10
542 1 //LED_RED = LED_OFF;
543 1 ClearKeyBuffer();
544 1 ResetUserEvent();
545 1 }
546 void put_c(unsigned char buf)
547 {
548 1
549 1 #ifndef TESTING
550 1 return;
551 1 #endif
552 1
553 1 TI=0;
554 1 SBUF=buf;
555 1 while(!TI);
556 1
557 1 }
558
559 void beep (unsigned char duration)
560 {
561 1 buzzer_type=1;
562 1 buzz_duration = duration;
563 1 buzz_counter = 1;
564 1 }
565 void beepbeep (unsigned char count)
566 {
567 1 buzzer_type = (count<<1) ; //(count <<1)-1
568 1 }
569 void ClearBuzz(void)
570 {
571 1 buzzer_type = 0;
572 1 buzz_counter = 0;
573 1 buzz_duration = 1;
574 1 }
575 /***************************************************************************************************
576 Function :Process_Input
577 :taking care of tamper, push button and door sensor
578 ****************************************************************************************************/
579 void Process_Input(void)
580 {
581 1 unsigned char i;
582 1 if(DOORSENSOR) // Door Open
583 1 {
584 2 if (!dooropentime && !(SystemDatabase.OperationMode & O_SECURITYOFF))
585 2 Flags.DoorOpen = 1;
586 2 else if (dooropentime)
587 2 {
588 3 Flags.doorwasopened = 1;
589 3 Flags.DoorOpen = 0;
590 3 }
591 2 door_relay_duration = 0;
592 2 }
593 1 else
594 1 {
595 2 if(Flags.DoorOpen)
596 2 {
597 3 Flags.DoorOpen=0;
598 3 //LED_GREEN=LED_OFF; //1/10/2006 12:43PM
599 3 //LED_RED = LED_OFF;
600 3 ClearBuzz();
601 3 }
602 2 }
603 1 if(!PUSHBUTTON)
C51 COMPILER V7.06 READERMODULE 09/05/2006 01:45:27 PAGE 11
604 1 {
605 2 for(i=0;i<250;i++); //debouncing
606 2 if(!PUSHBUTTON )
607 2 {
608 3 turn_relay_on();
609 3 beep(4);
610 3 ResetUserEvent();
611 3 }
612 2 }
613 1
614 1 if(DOORSENSOR || TAMPER)//if(!TAMPER || DOORSENSOR)
615 1 {
616 2 ALARMRELAY=RELAY_ON;
617 2
618 2 }
619 1 else
620 1 ALARMRELAY=RELAY_OFF;
621 1
622 1 /*
623 1 if(Flags.DoorOpen)//kk 080106
624 1 {
625 1 beep(3);
626 1 }
627 1 */
628 1 }
629
630 void CommPutStr(char* str)
631 {
632 1 unsigned char idata i=0;
633 1
634 1 while(str[i])
635 1 put_c(str[i++]);
636 1
637 1 }
638 void process_led(void)
639 {
640 1
641 1 if(Flags.WaitingKey) LED_GREEN=LED_ON;
642 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -