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