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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1824|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)密碼鎖程序-無儲(chǔ)存

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:405619 發(fā)表于 2018-11-30 16:48 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
密碼鎖-無儲(chǔ)存(掉電密碼丟失,可根據(jù)自己需求加存儲(chǔ)如24c02)

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include"LCD.H"
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar count=1,ci=0;//修改密碼時(shí),只清屏一次,給wei=-1賦初值
  6. uchar mima[4];
  7. bit flag,flag1,flag2;//flag為按鍵14,15是否有效,flag1為修改密碼是否有效,flag2為初始化密碼是否有效
  8. sbit beep=P1^5;
  9. uchar table[4];//初始密碼
  10. uchar code table1[]="pass word!";
  11. uchar code table2[]="welcome!";
  12. uchar code table3[]="error!";
  13. uchar code table4[]="alarm!";
  14. uchar code table5[]="new mima!";

  15. void feng()        //蜂鳴器函數(shù)
  16. {
  17. uchar i;
  18. for(i=0;i<10;i++)
  19. {
  20.   beep=0;
  21.   delayms(200);
  22.   beep=1;
  23.   delayms(200);
  24. }
  25. }

  26. void chushi()  //初始函數(shù)
  27. {
  28. uchar i;
  29. write_byte(0,0x82);
  30. for(i=0;i<10;i++)
  31. {
  32.   write_byte(1,table1[i]);
  33. }
  34. write_byte(1,'[');
  35. write_byte(1,0x30+count); //count是輸入密碼次數(shù),當(dāng)3次時(shí),蜂鳴器報(bào)錯(cuò)
  36. write_byte(1,']');
  37. }

  38. void bijiao()        //比較函數(shù)
  39. {
  40. uchar i;
  41. keyscan();                //鍵盤掃描函數(shù)
  42. if(flag1==0)        //當(dāng)修改密碼沒有按下時(shí),正常輸入密碼
  43. {
  44.   if((keynum>=0)&&(keynum<=9))
  45.   {
  46.    write_byte(0,0xc0+wei);
  47.    if((wei>=0)&&(wei<=3))//密碼為4位,wei位密碼位數(shù)
  48.    {
  49.      write_byte(1,'*');
  50.      mima[wei]=keynum;        //將密碼存入到mima[]數(shù)組中,用于比較
  51.    }
  52.   }
  53. }
  54. if(flag1==1)//當(dāng)密碼修改按下時(shí)
  55. {
  56.   if(ci==0)         //清屏,wei=-1,只執(zhí)行一次
  57.   {
  58.    write_byte(0,0x01);
  59.    delayms(20);
  60.    wei=-1;
  61.    ci++;          //
  62.   }
  63.   else
  64.   {
  65.    write_byte(0,0x84);           //修改密碼
  66.    for(i=0;i<8;i++)
  67.    {
  68.     write_byte(1,table5[i]);
  69.    }
  70.    if((keynum>=0)&&(keynum<=9))        //修改密碼位數(shù)為4
  71.    {
  72.     write_byte(0,0xc0+wei);
  73.     if((wei>=0)&&(wei<=3))
  74.     {
  75.      write_byte(1,0x30+keynum);
  76.          table[wei]=keynum;
  77.     }
  78.    }
  79.    flag=1;          //開按鍵14,關(guān)按鍵15
  80.    flag2=1;          //將修改后的密碼存入table[]中
  81.    count=1;          //輸入密碼次數(shù)為1
  82.   }
  83. }

  84. if(flag==0)        //按鍵15有效
  85. {
  86.   if(flag2==0)         //初始密碼有效
  87.   {
  88.    table[0]=1;table[1]=2;table[2]=3;table[3]=4;
  89.   }
  90.   if(keynum==15)  
  91.   {
  92.    if((mima[0]==table[0])&&(mima[1]==table[1])&&
  93.       (mima[2]==table[2])&&(mima[3]==table[3]))        //密碼比較 ,正確的話顯示welcome
  94.    {
  95.     write_byte(0,0x01);
  96.     delayms(20);
  97.     write_byte(0,0x82);
  98.     for(i=0;i<8;i++)
  99.     {
  100.      write_byte(1,table2[i]);
  101.     }
  102.     while(1);
  103.    }         
  104.    else                                  //錯(cuò)誤的話顯示error
  105.    {
  106.     write_byte(0,0x01);
  107.     delayms(20);
  108.     write_byte(0,0x84);
  109.     for(i=0;i<6;i++)
  110.     {
  111.      write_byte(1,table3[i]);
  112.     }
  113.     count++;                 //輸入次數(shù),最多三次
  114.     flag=1;                         //按鍵14打開,15關(guān)閉
  115.         if(count>=4)        //多余三次蜂鳴器響
  116.         {       
  117.          write_byte(0,0x84);
  118.      for(i=0;i<6;i++)
  119.      {
  120.       write_byte(1,table4[i]);
  121.      }
  122.          feng();
  123.          while(1);
  124.         }
  125.    }
  126.   }
  127.   if(keynum==13) //按鍵13修改密碼有效
  128.   {
  129.    flag1=1;
  130.   }
  131. }
  132. if(flag==1)   //按鍵14有效
  133. {
  134.   if(keynum==14)         //清屏,初始化,輸入次數(shù)加一
  135.   {
  136.    write_byte(0,0x01);
  137.    delayms(20);
  138.    chushi();
  139.    wei=-1;
  140.    flag=0;                //按鍵15有效
  141.    flag1=0;                //修改密碼無效
  142.   }
  143. }
  144. }


  145. void main()
  146. {
  147. init_lcd1602();
  148. chushi();
  149. while(1)
  150. {
  151.   bijiao();
  152. }
  153. }
復(fù)制代碼

所有資料51hei提供下載:
密碼鎖-無存儲(chǔ).zip (37.42 KB, 下載次數(shù): 10)


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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2018-12-1 02:17 | 只看該作者
補(bǔ)全原理圖或者詳細(xì)說明一下電路連接即可獲得100+黑幣
回復(fù)

使用道具 舉報(bào)

板凳
ID:282457 發(fā)表于 2018-12-1 10:54 | 只看該作者
其實(shí),使用STC單片機(jī)的話,如STC89C52,根本不需要AT24CXX的,CPU本身就有5K的eeprom,如果對(duì)實(shí)時(shí)性要求不高,一般場(chǎng)合使用足矣。起始地址0x2000,以扇區(qū)為單位,每個(gè)扇區(qū)512B.即0x2000為一個(gè)扇區(qū)開始;0x2200為第二個(gè)扇區(qū)開始,扇區(qū)間隔0x200,以此類推。

eeprom.rar

1.19 KB, 下載次數(shù): 3, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人激情免费视频 | 欧美淫片| 农村妇女毛片精品久久久 | 亚洲一区二区三区在线视频 | 一区中文字幕 | 全免费a级毛片免费看视频免费下 | 一个色在线 | 91精品一区二区三区久久久久久 | 久久国内| www国产成人免费观看视频,深夜成人网 | 成人在线国产 | 中文字幕在线一区二区三区 | 亚洲网视频 | 欧美黑人一区二区三区 | 国产高清视频在线观看 | 97偷拍视频| 日日碰狠狠躁久久躁婷婷 | 在线观看视频一区二区三区 | 日韩在线精品强乱中文字幕 | 小h片免费观看久久久久 | 欧美日本在线 | 欧美激情综合 | 国产日产精品一区二区三区四区 | 成人精品一区二区 | 欧美一极视频 | 国产精品九九九 | 欧美乱操 | 精品视频国产 | 欧美男人亚洲天堂 | 91精品国产综合久久福利软件 | 91av视频在线观看 | 极品的亚洲 | 日韩中文av在线 | h片免费在线观看 | 亚洲精品乱码久久久久久按摩 | 午夜精品一区二区三区在线观看 | 琪琪午夜伦伦电影福利片 | 亚洲视频二区 | 欧美成人精品在线观看 | 黄色在线观看国产 | 97久久久久久 |