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

📄 1602+24c08+4x4+

📁 1602+24C08+4X4键盘密码锁
💻
📖 第 1 页 / 共 3 页
字号:
 428          {       TH1=(65536-50000)/256;
 429   1              TL1=(65536-50000)%256;
 430   1              if(count1<20)
 431   1              {       count1++;
 432   2              }
 433   1              else                                                    //计时到1S
 434   1              {       TR1=0;
 435   2                      count1=0;
 436   2                      mimaflag=0;
 437   2      
 438   2                      red=1;
 439   2                      bell=1;
 440   2                      //显示FFFFFFFF
 441   2                      write_com(0x01);
 442   2                      write_com(0x80);
 443   2                      for(count3=0;count3<16;count3++)
 444   2                              {
 445   3                                      write_date(table1[count3]);     //显示INPUT THE PASSCODE
 446   3                                      delay(5);
 447   3                              }
 448   2                      write_com(0x80+0x40);
 449   2                      for(count3=0;count3<16;count3++)
 450   2                              {
 451   3                                      write_date(table2[count3]);     //开机显示FFFFFFFF
 452   3                                      delay(5);
 453   3                              }
 454   2              }
 455   1      }
 456          //***********************************************定时0**********************************************
 457          void time_0() interrupt 1
 458          {       TH0=(65536-50000)/256;
 459   1              TL0=(65536-50000)%256;
 460   1              if(count4<8)
 461   1              {       key_scan();
 462   2              }
 463   1              else
 464   1              {       TR0=0;
 465   2                      count4=0;
 466   2              }
 467   1      }
 468          //初始化函数
 469          void init()
 470          {       uchar i;
 471   1              lcden=0;
 472   1              write_com(0x38);                                        //打开显示模式设置
 473   1              write_com(0x0c);                                        //打开显示,光标等等设置未零
 474   1              write_com(0x06);                                        //当读或写一个字符后地址指针加一,且光标加一,当写一个字符后整频显示左移,
 475   1              write_com(0x01);                                        //清零指令
 476   1              write_com(0x80);                                        //指针所指位置
 477   1              //定时器初始化
 478   1              TMOD=0x11;                                                      //T0,T1工作方式1
 479   1              TH0=(65536-2000)/256;
 480   1              TL0=(65536-2000)%256;                           //T0初始化2MS
 481   1      
 482   1              TH1=(65536-50000)/256;
 483   1              TL1=(65536-50000)%256;                          //T1初始化50MS
 484   1      
 485   1              TR1=0;
 486   1              ET1=1;
 487   1              EA=1;
 488   1              TR0=0;
 489   1              ET0=1;
C51 COMPILER V9.01   PASSWORD                                                              10/15/2012 19:44:20 PAGE 9   

 490   1      
 491   1              count0=0;                                                       //初始没有密码输入,故为零
 492   1              enterflag=0;                                            //没有确认键按下
 493   1              mimaflag=0;                                                     //密码正确与否键先置零
 494   1                                              
 495   1              red=1;                                                          //红灯不亮
 496   1      //************密码存入EPROM中**********************************
 497   1              sda=1;
 498   1              delay(5);
 499   1              scl=1;
 500   1              delay(5);
 501   1              for(i=0;i<8;i++)
 502   1              {       write_add(i,8);
 503   2                      delay2(100);
 504   2              }
 505   1              for(i=0;i<8;i++)
 506   1              {       mima[i]=read_add(i);
 507   2                      delay(5);
 508   2              }
 509   1      }
 510          void main()
 511          {       rw=0;           
 512   1              init();
 513   1              write_com(0x80);                                                //指针所指位置
 514   1              for(count3=0;count3<16;count3++)
 515   1              {       write_date(table1[count3]);             //第一行显示INPUT THE PASSPORD:
 516   2                      delay(5);
 517   2              }
 518   1              write_com(0x80+0x40);
 519   1              for(count3=0;count3<16;count3++)
 520   1              {       write_date(table2[count3]);             //开机显示FFFFFFFF
 521   2                      delay(5);
 522   2              }
 523   1              while(1)
 524   1              {       key_scan();                                             //调用键盘扫描函数
 525   2                      lcd_display(); 
 526   2              }
 527   1      }
 528          //***************键盘扫描函数开始********************************
 529          void key_scan()
 530          {//**********扫描第一行*********
 531   1              P1=0xfe; 
 532   1              temp=P3;
 533   1              temp=temp&0xf0;
 534   1              if(temp!=0xf0)
 535   1              {       delay(100);
 536   2                      if(temp!=0xf0)
 537   2                      {       temp=P3;
 538   3                              switch(temp)
 539   3                              {       case 0xee:
 540   4                                              key_manage1();  break;
 541   4                                      case 0xde:
 542   4                                              key_manage2();  break;
 543   4                                      case 0xbe: 
 544   4                                              key_manage3();  break;
 545   4                                      case 0x7e:
 546   4                                              key_manage4();  break;
 547   4                              }
 548   3                              while(temp!=0xf0)
 549   3                              {       temp=P3;
 550   4                                      temp=temp&0xf0;
 551   4                              }
C51 COMPILER V9.01   PASSWORD                                                              10/15/2012 19:44:20 PAGE 10  

 552   3                      }
 553   2              }
 554   1      //**************扫描第二行***********************************
 555   1              P1=0xfd; 
 556   1              temp=P3;
 557   1              temp=temp&0xf0;
 558   1              if(temp!=0xf0)
 559   1              {       delay(100);
 560   2                      if(temp!=0xf0)
 561   2                      {       temp=P3;
 562   3                              switch(temp)
 563   3                              {       case 0xed:
 564   4                                              key_manage5();  break;
 565   4                                      case 0xdd:
 566   4                                              key_manage6();  break;
 567   4      
 568   4                                      case 0xbd:
 569   4                                              key_manage7();  break;
 570   4      
 571   4                                      case 0x7d:
 572   4                                              key_manage8();  break;
 573   4                              }
 574   3                              while(temp!=0xf0)
 575   3                              {       temp=P3;
 576   4                                      temp=temp&0xf0;
 577   4                              }
 578   3                      }
 579   2              }
 580   1      //*********************************************扫描第三行***********************************
 581   1              P1=0xfb; 
 582   1              temp=P3;
 583   1              temp=temp&0xf0;
 584   1              if(temp!=0xf0)
 585   1              {       delay(100);
 586   2                      if(temp!=0xf0)
 587   2                      {       temp=P3;
 588   3                              switch(temp)
 589   3                              {       case 0xeb:
 590   4                                              key_manage9();  break;
 591   4                                      case 0xdb:
 592   4                                              key_manage10(); break;
 593   4                                      case 0xbb:
 594   4                                              key_manage11(); break;
 595   4                                      case 0x7b:
 596   4                                              key_manage12(); break;
 597   4                              }
 598   3                              while(temp!=0xf0)
 599   3                              {       temp=P3;
 600   4                                      temp=temp&0xf0;
 601   4                              }
 602   3                      }
 603   2              }
 604   1      //***************************************************扫描第四行****************************************
 605   1              P1=0xf7;
 606   1              temp=P3;
 607   1              temp=temp&0xf0;
 608   1              if(temp!=0xf0)
 609   1              {       delay(100);
 610   2                      if(temp!=0xf0)
 611   2                      {       temp=P3;
 612   3                              switch(temp)
 613   3                              {       case 0xe7:
C51 COMPILER V9.01   PASSWORD                                                              10/15/2012 19:44:20 PAGE 11  

 614   4                                              key_manage13(); break;
 615   4                                      case 0xd7:
 616   4                                              key_manage14(); break;
 617   4                                      case 0xb7:
 618   4                                              key_manage15(); break;
 619   4                                      case 0x77:
 620   4                                              key_manage16(); break;
 621   4                              }
 622   3                              while(temp!=0xf0)
 623   3                              {       temp=P3;
 624   4                                      temp=temp&0xf0;
 625   4                              }
 626   3                      }
 627   2              }
 628   1      } 
 629          


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 + -