⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 51

📁 51单片机大量源码
💻
📖 第 1 页 / 共 3 页
字号:
 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 + -