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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

電子密碼鎖設計24c01+12864,希望能幫到大家

  [復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載):


單片機源程序如下:
  1. #include<reg51.h>
  2. #include<keyinput.h>
  3. #include<12864.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. /************************ 密碼校驗函數 **************************/
  14. void press(uchar *s) {
  15.            uchar dat;
  16.        P3=0xf0;                                                                //第一位密碼
  17.            while(P3==0xf0);
  18.        dat=key_scan();
  19.            if((dat!=0x0a)&&(dat!=0x0b))
  20.          {   *s=dat;
  21.                          Left();
  22.                          star_12864(star,0x05,16);
  23.              }
  24.            s++;                  
  25.            P3=0xf0;                                                          //第二位密碼
  26.            while(P3==0xf0);                                                 
  27.        dat=key_scan();
  28.            if((dat!=0x0a)&&(dat!=0x0b))
  29.          {   *s=dat;
  30.                          Left();
  31.                          star_12864(star,0x05,24);
  32.                   }
  33.            s++;       
  34.            P3=0xf0;                                                          //第三位密碼
  35.            while(P3==0xf0);                                                 
  36.        dat=key_scan();
  37.            if((dat!=0x0a)&&(dat!=0x0b))
  38.          {   *s=dat;
  39.                          Left();
  40.                          star_12864(star,0x05,32);
  41.                   }
  42.            s++;       
  43.            P3=0xf0;                                                          //第四位密碼
  44.            while(P3==0xf0);                                                 
  45.            dat=key_scan();
  46.            if((dat!=0x0a)&&(dat!=0x0b))
  47.          {   *s=dat;
  48.                          Left();
  49.                          star_12864(star,0x05,40);
  50.                   }
  51.            s++;       
  52.            P3=0xf0;                                                          //第五位密碼
  53.            while(P3==0xf0);                                                 
  54.        dat=key_scan();
  55.            if((dat!=0x0a)&&(dat!=0x0b))
  56.          {   *s=dat;
  57.                          Left();
  58.                          star_12864(star,0x05,48);
  59.                   }
  60.            s++;       
  61.            P3=0xf0;                                                          //第六位密碼
  62.            while(P3==0xf0);                                                 
  63.        dat=key_scan();
  64.            if((dat!=0x0a)&&(dat!=0x0b))
  65.          {   *s=dat;
  66.                          Left();
  67.                          star_12864(star,0x05,56);
  68.                   }
  69.            do{P3=0xf0;                                                        //鍵入Enter鍵盤繼續執行下面語句,否則等待
  70.               while(P3==0xf0);                                                 
  71.           dat=key_scan();
  72.               }while(dat!=0x0b);
  73. }

  74. /****************************** 延時10ms函數 *******************************/
  75. void Delay10ms(void) {
  76.         uint i,j,k;
  77.         for(i=5;i>0;i--)
  78.         for(j=4;j>0;j--)
  79.         for(k=248;k>0;k--);

  80. }

  81. /****************************** 主函數 *******************************/
  82. void main() {
  83.       uchar dat;
  84.       uchar i=0,j=0,k;
  85.       uchar x;
  86.           LED1=1;
  87.           LED2=1;
  88.           SOUND=0;
  89.           INIT=1;
  90.       if(INIT==0){                   //密碼初始化,先從IIC器件中讀出密碼以供下面輸入密碼進行比較
  91.              x=SendB(iic,0x50,6);
  92.                  Delay10ms();
  93.       }              
  94.       x=ReadB(iic,0x50,6);
  95.       Init_12864();
  96.           for(i=0;i<50;i++){Delay10ms();}
  97.           do{                                  //若密碼不正確,循環執行do{}while()
  98.              LED1=1;
  99.              System();                  //顯示:請輸入密碼
  100.              press(key);
  101.                  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])) //密碼比較,若密碼正確責進入系統,若密碼不正確則顯示密碼錯誤,重新輸入密碼
  102.          {
  103.                     true();
  104.                     do {
  105.                        P3=0xf0;                                                        //鍵入1或2繼續執行下面語句,否則等待
  106.                    while(P3==0xf0);                                                 
  107.                dat=key_scan();
  108.                 }while(dat!=0x01&&dat!=0x02);         
  109.                     if(dat==1) {                                       //開鎖
  110.                         LED1=0; j=0;
  111.                                 unlock();
  112.                             for(i=0;i<100;i++){Delay10ms();}
  113.                     continue;
  114.                     }
  115.                     if(dat==2) {                                                        //修改密碼
  116.                        do{
  117.                               j=0;
  118.                                           System();
  119.                                   press(key);
  120.                                   again();
  121.                                   press(iic);
  122.                                       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]))
  123.                                       {
  124.                                           succeed();                                //修改密碼成功
  125.                                                   for(i=0;i<100;i++){Delay10ms();}
  126.                                       Delay10ms();
  127.                               x=SendB(iic,0x50,6);
  128.                                       Delay10ms();       
  129.                           x=ReadB(iic,0x50,6);break;
  130.                                       }
  131.                                       else         {                                            //修改密碼不成功,重新修改
  132.                                               repeat();
  133.                                                   for(i=0;i<100;i++){Delay10ms();}
  134.                                           }
  135.                                  }while(1);   
  136.                     }
  137.                  
  138. ……………………

  139. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
電子密碼鎖.zip (121.93 KB, 下載次數: 141)



評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:82765 發表于 2017-6-14 09:39 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

板凳
ID:164371 發表于 2017-6-14 14:09 | 只看該作者
因為發送過于匆忙有些引腳的定義大家自己修改一下,程序是絕對沒問題的
回復

使用道具 舉報

地板
ID:211258 發表于 2017-6-14 22:33 | 只看該作者
謝謝分享,太好了正好需要
回復

使用道具 舉報

5#
ID:210484 發表于 2017-6-15 08:54 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

6#
ID:803444 發表于 2020-7-26 21:35 來自手機 | 只看該作者
a8818075 發表于 2017-6-14 14:09
因為發送過于匆忙有些引腳的定義大家自己修改一下,程序是絕對沒問題的

朋友,是不是rs...rw...e三個要改,但是改了也不行啊,望指導,萬分感謝
回復

使用道具 舉報

7#
ID:771985 發表于 2020-8-7 17:36 | 只看該作者
樓主,要設置多個密碼都能夠開鎖,程序要怎么搞呢
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: aaa大片免费观看 | 成人性生交大片免费看中文带字幕 | 欧美黑人一级爽快片淫片高清 | 亚洲国产精品久久久久婷婷老年 | 国产一区二区在线视频 | 国产精品视频一二三区 | 亚洲视频在线一区 | 视频在线一区二区 | 国产高清一区二区三区 | 美女在线视频一区二区三区 | 日韩欧美精品在线 | 精品免费视频一区二区 | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | 成人性视频免费网站 | 成人av电影网 | 日本一区二区视频 | 一级片免费在线观看 | 久久精品欧美一区二区三区麻豆 | 美女天堂 | 日韩欧美国产成人一区二区 | 久久精品视频播放 | 中文字幕亚洲欧美 | 一区二区免费 | 中文字幕亚洲精品 | 欧美日韩网站 | 91就要激情 | 欧美黄色片在线观看 | 国产一区二区三区四区 | 人人鲁人人莫人人爱精品 | 天天久久 | 日韩精品免费视频 | 国产一区二区三区在线免费 | 亚洲精品久久久久久久久久久 | 成年人的视频免费观看 | 欧美在线 | 欧美色图另类 | cao视频| 国产精品我不卡 | 日韩欧美精品一区 | 国产精品久久影院 | 亚欧精品一区 |