📄 51
字号:
518 2 write_com(0x80);
519 2 for(count3=0;count3<16;count3++)
520 2 {
521 3 write_date(table1[count3]); //显示INPUT THE PASSCODE
522 3 delay(5);
523 3 }
524 2 write_com(0x80+0x40);
525 2 for(count3=0;count3<16;count3++)
526 2 {
527 3 write_date(table2[count3]); //开机显示FFFFFFFF
528 3 delay(5);
529 3 }
530 2 }
531 1
532 1 }
533 //***********************************************定时0**********************************************
534 void time_0() interrupt 1
535 {
536 1
537 1 TH0=(65536-50000)/256;
538 1 TL0=(65536-50000)%256;
539 1 if(count4<8)
540 1 {
541 2 key_scan();
542 2 }
543 1 else
544 1 {
545 2 TR0=0;
546 2 count4=0;
547 2 }
548 1 }
549
550 //初始化函数
551 void init()
C51 COMPILER V8.02 PASSWORD 07/22/2009 13:42:13 PAGE 10
552 {
553 1
554 1 uchar i;
555 1 lcden=0;
556 1 write_com(0x38); //打开显示模式设置
557 1 write_com(0x0c); //打开显示,光标等等设置未零
558 1 write_com(0x06); //当读或写一个字符后地址指针加一,且光标加一,当写一个字符后整频显示左移,
559 1 write_com(0x01); //清零指令
560 1 write_com(0x80); //指针所指位置
561 1
562 1 //定时器初始化
563 1 TMOD=0x11; //T0,T1工作方式1
564 1 TH0=(65536-2000)/256;
565 1 TL0=(65536-2000)%256; //T0初始化2MS
566 1
567 1 TH1=(65536-50000)/256;
568 1 TL1=(65536-50000)%256; //T1初始化50MS
569 1
570 1 TR1=0;
571 1 ET1=1;
572 1 EA=1;
573 1 TR0=0;
574 1 ET0=1;
575 1
576 1 count0=0; //初始没有密码输入,故为零
577 1 enterflag=0; //没有确认键按下
578 1 mimaflag=0; //密码正确与否键先置零
579 1
580 1 red=1; //红灯不亮
581 1 //************密码存入EPROM中**********************************
582 1 sda=1;
583 1 delay(5);
584 1 scl=1;
585 1 delay(5);
586 1 for(i=0;i<8;i++)
587 1 {
588 2 write_add(i,8);
589 2 delay2(100);
590 2 }
591 1 for(i=0;i<8;i++)
592 1 {
593 2 mima[i]=read_add(i);
594 2 delay(5);
595 2 }
596 1
597 1 }
598 void main()
599 { rw=0;
600 1 init();
601 1 write_com(0x80); //指针所指位置
602 1 for(count3=0;count3<16;count3++)
603 1 {
604 2 write_date(table1[count3]); //第一行显示INPUT THE PASSPORD:
605 2 delay(5);
606 2 }
607 1 write_com(0x80+0x40);
608 1 for(count3=0;count3<16;count3++)
609 1 {
610 2 write_date(table2[count3]); //开机显示FFFFFFFF
611 2 delay(5);
612 2 }
613 1 while(1)
C51 COMPILER V8.02 PASSWORD 07/22/2009 13:42:13 PAGE 11
614 1 {
615 2 key_scan(); //调用键盘扫描函数
616 2 lcd_display();
617 2 }
618 1
619 1 }
620 //**************************************************键盘扫描函数开始********************************
621 void key_scan()
622 {
623 1 //**********扫描第一行*********
624 1 P1=0xfe;
625 1 temp=P1;
626 1 temp=temp&0xf0;
627 1 if(temp!=0xf0)
628 1 {
629 2 delay(100);
630 2 if(temp!=0xf0)
631 2 {
632 3 temp=P1;
633 3 switch(temp)
634 3 {
635 4 case 0xee:
636 4 key_manage1();
637 4 break;
638 4
639 4 case 0xde:
640 4 key_manage2();
641 4 break;
642 4
643 4 case 0xbe:
644 4 key_manage3();
645 4 break;
646 4
647 4 case 0x7e:
648 4 key_manage4();
649 4 break;
650 4 }
651 3 while(temp!=0xf0)
652 3 {
653 4 temp=P1;
654 4 temp=temp&0xf0;
655 4 }
656 3 }
657 2 }
658 1 //**************************************************扫描第二行***********************************
659 1 P1=0xfd;
660 1 temp=P1;
661 1 temp=temp&0xf0;
662 1 if(temp!=0xf0)
663 1 {
664 2 delay(100);
665 2 if(temp!=0xf0)
666 2 {
667 3 temp=P1;
668 3 switch(temp)
669 3 {
670 4 case 0xed:
671 4 key_manage5();
672 4 break;
673 4
674 4 case 0xdd:
675 4 key_manage6();
C51 COMPILER V8.02 PASSWORD 07/22/2009 13:42:13 PAGE 12
676 4 break;
677 4
678 4 case 0xbd:
679 4 key_manage7();
680 4 break;
681 4
682 4 case 0x7d:
683 4 key_manage8();
684 4 break;
685 4 }
686 3 while(temp!=0xf0)
687 3 {
688 4 temp=P1;
689 4 temp=temp&0xf0;
690 4 }
691 3 }
692 2 }
693 1 //*********************************************扫描第三行***********************************
694 1 P1=0xfb;
695 1 temp=P1;
696 1 temp=temp&0xf0;
697 1 if(temp!=0xf0)
698 1 {
699 2 delay(100);
700 2 if(temp!=0xf0)
701 2 {
702 3 temp=P1;
703 3 switch(temp)
704 3 {
705 4 case 0xeb:
706 4 key_manage9();
707 4 break;
708 4
709 4 case 0xdb:
710 4 key_manage10();
711 4 break;
712 4
713 4 case 0xbb:
714 4 key_manage11();
715 4 break;
716 4
717 4 case 0x7b:
718 4 key_manage12();
719 4 break;
720 4 }
721 3 while(temp!=0xf0)
722 3 {
723 4 temp=P1;
724 4 temp=temp&0xf0;
725 4 }
726 3 }
727 2 }
728 1
729 1 //***************************************************扫描第四行****************************************
730 1 P1=0xf7;
731 1 temp=P1;
732 1 temp=temp&0xf0;
733 1 if(temp!=0xf0)
734 1 {
735 2 delay(100);
736 2 if(temp!=0xf0)
737 2 {
C51 COMPILER V8.02 PASSWORD 07/22/2009 13:42:13 PAGE 13
738 3 temp=P1;
739 3 switch(temp)
740 3 {
741 4 case 0xe7:
742 4 key_manage13();
743 4 break;
744 4
745 4 case 0xd7:
746 4 key_manage14();
747 4 break;
748 4
749 4 case 0xb7:
750 4 key_manage15();
751 4 break;
752 4
753 4 case 0x77:
754 4 key_manage16();
755 4 break;
756 4 }
757 3 while(temp!=0xf0)
758 3 {
759 4 temp=P1;
760 4 temp=temp&0xf0;
761 4 }
762 3 }
763 2 }
764 1 }
765
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1712 ----
CONSTANT SIZE = 188 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 67 2
IDATA SIZE = ---- ----
BIT SIZE = 4 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -