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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機電子密碼鎖仿真及程序 制作成功功能全

[復制鏈接]
跳轉到指定樓層
樓主
花了兩個星期做的51單片機電子密碼鎖,分享給大家



基于80C51液晶顯示和24C01密碼實時保護的電子密碼鎖
程序(完整版本請下載附件):
  1. #include<reg51.h>
  2. #include<12864.h>
  3. #include<keypad.h>
  4. #include<24C01.h>

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

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

  13. void press(uchar *s)
  14. {
  15.            uchar dat;
  16. //**************************************************
  17.        P3=0xf0;                                                                //保存第一位密碼
  18.            while(P3==0xf0);
  19.        dat=key_scan();
  20.            if((dat!=0x0a)&&(dat!=0x0b))
  21.          {   *s=dat;
  22.                          Left();
  23.                          star_12864(star,0x05,16);
  24.              }
  25.            s++;                  
  26. //**************************************************
  27.            P3=0xf0;                                                          //保存第二位密碼
  28.            while(P3==0xf0);                                                 
  29.        dat=key_scan();
  30.            if((dat!=0x0a)&&(dat!=0x0b))
  31.          {   *s=dat;
  32.                          Left();
  33.                          star_12864(star,0x05,24);
  34.                   }
  35.            s++;       
  36. //**************************************************
  37.            P3=0xf0;                                                          //保存第三位密碼
  38.            while(P3==0xf0);                                                 
  39.        dat=key_scan();
  40.            if((dat!=0x0a)&&(dat!=0x0b))
  41.          {   *s=dat;
  42.                          Left();
  43.                          star_12864(star,0x05,32);
  44.                   }
  45.            s++;       
  46. //**************************************************
  47.            P3=0xf0;                                                          //保存第四位密碼
  48.            while(P3==0xf0);                                                 
  49.            dat=key_scan();
  50.            if((dat!=0x0a)&&(dat!=0x0b))
  51.          {   *s=dat;
  52.                          Left();
  53.                          star_12864(star,0x05,40);
  54.                   }
  55.            s++;       
  56. //**************************************************
  57.            P3=0xf0;                                                          //保存第五位密碼
  58.            while(P3==0xf0);                                                 
  59.        dat=key_scan();
  60.            if((dat!=0x0a)&&(dat!=0x0b))
  61.          {   *s=dat;
  62.                          Left();
  63.                          star_12864(star,0x05,48);
  64.                   }
  65.            s++;       
  66. //**************************************************
  67.            P3=0xf0;                                                          //保存第六位密碼
  68.            while(P3==0xf0);                                                 
  69.        dat=key_scan();
  70.            if((dat!=0x0a)&&(dat!=0x0b))
  71.          {   *s=dat;
  72.                          Left();
  73.                          star_12864(star,0x05,56);
  74.                   }
  75. //**************************************************
  76.            do{P3=0xf0;                                                        //鍵入Enter鍵盤繼續執行下面語句,否則等待
  77.               while(P3==0xf0);                                                 
  78.           dat=key_scan();
  79.               }while(dat!=0x0b);
  80. }

  81. void Delay10ms(void)           //延時10ms
  82. {
  83.         uint i,j,k;
  84.         for(i=5;i>0;i--)
  85.         for(j=4;j>0;j--)
  86.         for(k=248;k>0;k--);

  87. }

  88. void main()
  89. {
  90.       uchar dat;
  91.       uchar i=0,j=0,k;
  92.       uchar x;
  93.           LED1=1;
  94.           LED2=1;
  95.           SOUND=0;
  96.           INIT=1;
  97.       if(INIT==0)                   //密碼初始化
  98.       {
  99.              x=SendB(iic,0x50,6);
  100.                  Delay10ms();
  101.       }             //首先從IIC器件中讀出密碼以供下面輸入密碼進行比較
  102.       x=ReadB(iic,0x50,6);
  103.       Init_12864();
  104.           for(i=0;i<150;i++){Delay10ms();}
  105. //**********************************若密碼不正確,循環執行do{}while()********************************************
  106. do{
  107.              LED1=1;
  108.              System();                  //顯示:"請輸入密碼"字幕  
  109.              press(key);
  110.                  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])) //密碼比較,若密碼正確責進入系統,若密碼不正確則顯示密碼錯誤,重新輸入密碼
  111.          {
  112.                     true();
  113.                     do
  114.                     {
  115.                        P3=0xf0;                                                        //鍵入1或2繼續執行下面語句,否則等待
  116.                    while(P3==0xf0);                                                 
  117.                dat=key_scan();
  118.                  }while(dat!=0x01&&dat!=0x02);
  119.                     if(dat==1)                                                       //開鎖
  120.                     {
  121.                         LED1=0;
  122.                                 unlock();
  123.                             for(i=0;i<100;i++){Delay10ms();}
  124.                     continue;
  125.                      }
  126.                     if(dat==2)                                                        //修改密碼
  127.                    {
  128.                        do{
  129.                               System();
  130.                                   press(key);
  131.                                   again();
  132.                                   press(iic);
  133.                                       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]))
  134.                                       {
  135.                                           succeed();                                //修改密碼成功
  136.                                                   for(i=0;i<100;i++){Delay10ms();}
  137.                                       Delay10ms();
  138.                               x=SendB(iic,0x50,6);
  139.                                       Delay10ms();       
  140.                           x=ReadB(iic,0x50,6);break;
  141.                                        }
  142.                                       else                             //修改密碼不成功,重新修改
  143.                                           {
  144.                                               repeat();
  145.                                                   for(i=0;i<100;i++){Delay10ms();}
  146.                                            }
  147.                                   }while(1);   
  148.                     }
  149.                  
  150.                  }
  151.                 else                                                                           //密碼不正確,重新輸入密碼
  152.                 {
  153.                     j++;
  154.                         if(j==3)
  155.                         {
  156.                            for(i=0;i<8;i++)
  157.                            {
  158.                               LED2=0;
  159.                                   for(k=0;k<5;k++){Delay10ms();}
  160.                                   LED2=1;
  161.                                   for(k=0;k<5;k++){Delay10ms();}
  162.                                 }
  163.                                 j=0;
  164.                          }
  165.                         error();
  166.                         for(i=0;i<50;i++){Delay10ms();}
  167.                  }
  168. }while(1);         
  169.       
  170.                     
  171.           
  172. }
復制代碼




基于24C02和12864顯示的電子密碼鎖設計.rar

76.92 KB, 下載次數: 99, 下載積分: 黑幣 -5

51單片機電子密碼鎖

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

使用道具 舉報

沙發
ID:151629 發表于 2016-12-3 09:26 | 只看該作者
12864啊
回復

使用道具 舉報

板凳
ID:253344 發表于 2017-11-28 15:29 | 只看該作者
顯示器名字學校怎么改?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 羞羞网站免费 | 午夜国产一级 | 91在线视频观看免费 | 久久亚洲国产精品日日av夜夜 | 久久国产欧美日韩精品 | 国产精品亚洲综合 | 99精品电影| 国产高清久久久 | 欧美精品在线免费观看 | 亚洲精品一区二区三区蜜桃久 | 欧美日韩国产一区二区 | 伊人狠狠 | 国产精品精品久久久久久 | 91久久精品日日躁夜夜躁欧美 | 在线精品观看 | 免费视频一区二区 | 成人亚洲视频 | 999精品网 | 亚洲精品在线看 | 中文字幕av免费 | 精产国产伦理一二三区 | 九九国产在线观看 | 免费午夜视频 | 国产精品国产馆在线真实露脸 | 欧美成人一区二区 | 午夜免费电影 | 欧美综合一区二区三区 | 久久久久久国产一区二区三区 | 香蕉久久a毛片 | 久久成人av | 国产精品高潮呻吟久久久久 | 精品国产31久久久久久 | 欧美激情va永久在线播放 | 国产在线一区二区三区 | 日韩欧美视频在线 | 毛片一级电影 | 午夜免费 | 久久精品国产免费 | 午夜影视免费片在线观看 | 午夜影院污 | 99精品视频一区二区三区 |