久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5527|回復: 12
打印 上一主題 下一主題
收起左側

密碼鎖

  [復制鏈接]
跳轉到指定樓層
樓主
ID:77698 發表于 2015-5-25 22:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/********************************************************************************

                    電子密碼鎖主函數

*******************************************************************************/

#include<reg51.h>
#include<12864.h>
#include<keypad.h>
#include<24C01.h>

#define uchar unsigned char
#define uint unsigned int
sbit LED1=P1^5;
sbit LED2=P1^6;
sbit INIT=P2^2;
sbit SOUND=P1^7;

uchar idata key[6]={0,0,0,0,0,0};
uchar idata iic[6]={0,1,2,3,4,5};

void press(uchar *s)
{
           uchar dat;
//**************************************************
       P3=0xf0;                                                                //保存第一位密碼
           while(P3==0xf0);
       dat=key_scan();
           if((dat!=0x0a)&&(dat!=0x0b))
         {   *s=dat;
                         Left();
                         star_12864(star,0x05,16);
             }
           s++;                  
//**************************************************
           P3=0xf0;                                                          //保存第二位密碼
           while(P3==0xf0);                                                 
       dat=key_scan();
           if((dat!=0x0a)&&(dat!=0x0b))
         {   *s=dat;
                         Left();
                         star_12864(star,0x05,24);
                  }
           s++;       
//**************************************************
           P3=0xf0;                                                          //保存第三位密碼
           while(P3==0xf0);                                                 
       dat=key_scan();
           if((dat!=0x0a)&&(dat!=0x0b))
         {   *s=dat;
                         Left();
                         star_12864(star,0x05,32);
                  }
           s++;       
//**************************************************
           P3=0xf0;                                                          //保存第四位密碼
           while(P3==0xf0);                                                 
           dat=key_scan();
           if((dat!=0x0a)&&(dat!=0x0b))
         {   *s=dat;
                         Left();
                         star_12864(star,0x05,40);
                  }
           s++;       
//**************************************************
           P3=0xf0;                                                          //保存第五位密碼
           while(P3==0xf0);                                                 
       dat=key_scan();
           if((dat!=0x0a)&&(dat!=0x0b))
         {   *s=dat;
                         Left();
                         star_12864(star,0x05,48);
                  }
           s++;       
//**************************************************
           P3=0xf0;                                                          //保存第六位密碼
           while(P3==0xf0);                                                 
       dat=key_scan();
           if((dat!=0x0a)&&(dat!=0x0b))
         {   *s=dat;
                         Left();
                         star_12864(star,0x05,56);
                  }
//**************************************************
           do{P3=0xf0;                                                        //鍵入Enter鍵盤繼續執行下面語句,否則等待
              while(P3==0xf0);                                                 
          dat=key_scan();
              }while(dat!=0x0b);
}

void Delay10ms(void)           //延時10ms
{
        uint i,j,k;
        for(i=5;i>0;i--)
        for(j=4;j>0;j--)
        for(k=248;k>0;k--);

}

void main()
{
      uchar dat;
      uchar i=0,j=0,k;
      uchar x;
          LED1=1;
          LED2=1;
          SOUND=0;
          INIT=1;
      if(INIT==0)                   //密碼初始化
      {
             x=SendB(iic,0x50,6);
                 Delay10ms();
      }             //首先從IIC器件中讀出密碼以供下面輸入密碼進行比較
      x=ReadB(iic,0x50,6);
      Init_12864();
          for(i=0;i<150;i++){Delay10ms();}
//**********************************若密碼不正確,循環執行do{}while()********************************************
do{
             LED1=1;
             System();                  //顯示:"請輸入密碼"字幕  
             press(key);
                 if((key[0]==iic[0])&&(key[1]==iic[1])&&(key[2]==iic[2])&&(key[3]==iic[3])&&(key[4]==iic[4])&&(key[5]==iic[5])) //密碼比較,若密碼正確責進入系統,若密碼不正確則顯示密碼錯誤,重新輸入密碼
         {
                    true();
                    do
                    {
                       P3=0xf0;                                                        //鍵入1或2繼續執行下面語句,否則等待
                   while(P3==0xf0);                                                 
               dat=key_scan();
                 }while(dat!=0x01&&dat!=0x02);
                    if(dat==1)                                                       //開鎖
                    {
                        LED1=0;
                                unlock();
                            for(i=0;i<100;i++){Delay10ms();}
                    continue;
                     }
                    if(dat==2)                                                        //修改密碼
                   {
                       do{
                              System();
                                  press(key);
                                  again();
                                  press(iic);
                                      if((key[0]==iic[0])&&(key[1]==iic[1])&&(key[2]==iic[2])&&(key[3]==iic[3])&&(key[4]==iic[4])&&(key[5]==iic[5]))
                                      {
                                          succeed();                                //修改密碼成功
                                                  for(i=0;i<100;i++){Delay10ms();}
                                      Delay10ms();
                              x=SendB(iic,0x50,6);
                                      Delay10ms();       
                          x=ReadB(iic,0x50,6);break;
                                       }
                                      else                             //修改密碼不成功,重新修改
                                          {
                                              repeat();
                                                  for(i=0;i<100;i++){Delay10ms();}
                                           }
                                  }while(1);   
                    }
                 
                 }
                else                                                                           //密碼不正確,重新輸入密碼
                {
                    j++;
                        if(j==3)
                        {
                           for(i=0;i<8;i++)
                           {
                              LED2=0;
                                  for(k=0;k<5;k++){Delay10ms();}
                                  LED2=1;
                                  for(k=0;k<5;k++){Delay10ms();}
                                }
                                j=0;
                         }
                        error();
                        for(i=0;i<50;i++){Delay10ms();}
                 }
}while(1);         

                    
          
}


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的積分獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:80284 發表于 2015-6-8 16:15 | 只看該作者
密碼鎖挺不錯的 ,在這一方面可以學習
回復

使用道具 舉報

板凳
ID:82937 發表于 2015-6-17 12:19 | 只看該作者
要用什么模塊啊
回復

使用道具 舉報

地板
ID:113580 發表于 2016-4-11 20:56 | 只看該作者
贊贊贊贊贊贊
回復

使用道具 舉報

5#
ID:121746 發表于 2016-5-18 16:56 | 只看該作者
不是c語言怎么做
回復

使用道具 舉報

6#
ID:123712 發表于 2016-7-22 09:39 | 只看該作者
謝謝樓主分享資料,學習中
回復

使用道具 舉報

7#
ID:66032 發表于 2016-7-23 08:15 | 只看該作者
現在的密碼鎖已不再是簡單的指紋識別和密碼設置, 要加彩色LCD, Zigbee, WIFI和手機連接,設置IP和網關, 當密碼丟失和忘記可以通過手機重新找回密碼和設置密碼。很簡單的例子, 你的房子租給別人住了一段時間, 別人不租了, 以前的辦法是更換鎖芯, 現在的辦法只需重置密碼。
回復

使用道具 舉報

8#
ID:136393 發表于 2016-10-24 21:32 | 只看該作者
有仿真嗎
回復

使用道具 舉報

9#
ID:144301 發表于 2016-10-24 21:59 | 只看該作者
不知道這個密碼怎么連續輸入
回復

使用道具 舉報

10#
ID:144301 發表于 2016-10-24 21:59 | 只看該作者
不知道這個密碼怎么連續輸入
回復

使用道具 舉報

11#
ID:145054 發表于 2016-10-29 13:39 | 只看該作者
用protus仿真仿真
回復

使用道具 舉報

12#
ID:168327 發表于 2017-3-5 16:13 | 只看該作者
啦啦啦啦啦啦啦啦啦啦啦啦
回復

使用道具 舉報

13#
ID:171085 發表于 2017-3-16 21:23 | 只看該作者
謝謝樓主
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色综合激情 | 精品无码久久久久久国产 | 久久精品国产久精国产 | 久久久久久久久久久福利观看 | 综合九九| 国产精品一区久久久 | 久久精品二区亚洲w码 | 国产精品美女久久久久aⅴ国产馆 | 国产99久久精品 | 久久精品成人 | 日韩在线免费看 | 色偷偷888欧美精品久久久 | 日韩伦理一区二区 | 中文字幕久久久 | 色综合激情 | 亚洲h色| 亚洲人成人一区二区在线观看 | h视频亚洲 | 九九热在线免费观看 | 亚洲精选一区二区 | 日本成人在线网址 | 国产在线一区二区 | 一区二区三区精品在线视频 | 亚洲一区久久 | 亚洲另类视频 | 特黄一级 | 亚洲精品视频一区二区三区 | 亚洲激精日韩激精欧美精品 | 久久网站免费视频 | 欧美日韩在线免费观看 | av一级久久| 日韩免费视频一区二区 | 美日韩精品 | 韩国av一区二区 | 黑色丝袜三级在线播放 | 在线视频一区二区 | 欧美a级成人淫片免费看 | 国产中文在线 | 久久精彩视频 | 久久一级| 精品一区二区电影 |