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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機密碼鎖 LCD12864 源碼+仿真

  [復制鏈接]
跳轉到指定樓層
樓主
ID:505093 發(fā)表于 2019-5-5 11:01 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
圖片如下

主要是用LCD12864來顯示
也是為了幫助大家
單片機源程序如下:
  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鍵盤繼續(xù)執(zhí)行下面語句,否則等待
  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. //**********************************若密碼不正確,循環(huán)執(zhí)行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])) //密碼比較,若密碼正確責進入系統(tǒng),若密碼不正確則顯示密碼錯誤,重新輸入密碼
  111.          {
  112.                     true();
  113.                     do
  114.                     {
  115.                        P3=0xf0;                                                        //鍵入1或2繼續(xù)執(zhí)行下面語句,否則等待
  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. }
復制代碼



全部資料51hei下載地址:
基于24C02和12864顯示的電子密碼鎖設計.rar (104.89 KB, 下載次數(shù): 240)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:163292 發(fā)表于 2021-1-5 08:14 | 只看該作者
不知道 12864是不是帶字庫
回復

使用道具 舉報

板凳
ID:867005 發(fā)表于 2021-5-6 16:54 | 只看該作者
403458608 發(fā)表于 2021-1-5 08:14
不知道 12864是不是帶字庫

12864帶有中文字庫
回復

使用道具 舉報

地板
ID:836575 發(fā)表于 2021-5-6 18:59 | 只看該作者
繼電器電路怎么畫啊 求教
回復

使用道具 舉報

5#
ID:836575 發(fā)表于 2021-5-9 11:14 | 只看該作者
24c02模塊刪了對整個仿真無影響是為什么啊 求教
回復

使用道具 舉報

6#
ID:477512 發(fā)表于 2022-4-2 07:36 | 只看該作者
對仿真是無影響,但是在實際應用中沒有24C02,存儲的密碼掉電時會丟失!
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线观看成年视频 | 国产欧美精品区一区二区三区 | 国产日韩精品一区 | 国产毛片毛片 | 91麻豆精品国产91久久久更新资源速度超快 | 性生生活大片免费看视频 | 视频第一区 | 免费成年网站 | 日韩精品视频在线观看一区二区三区 | av国产精品 | 久草电影网 | 国产综合久久久久久鬼色 | 国产电影一区二区 | 国产一区二区三区精品久久久 | 操操操操操 | 97久久精品午夜一区二区 | 毛片av免费在线观看 | 日韩精品视频在线 | av网站在线看 | 成人精品毛片 | 91精品国产色综合久久不卡98 | 香蕉视频一区二区 | 精品久久久网站 | 国产综合精品一区二区三区 | 国产一区久久久 | 国产精品久久久久久一级毛片 | 精品视频一区二区三区 | 国产成人在线播放 | 国产一区二区三区www | 91社区在线观看高清 | 国产精品久久久久久婷婷天堂 | 亚洲人成网站777色婷婷 | 婷婷五月色综合 | 中文字幕免费在线 | 国产在线观看网站 | 日韩高清中文字幕 | 国产激情视频网 | 亚洲国产精品激情在线观看 | 精品视频一区二区三区在线观看 | 欧美色综合 | 国产精品九九视频 |