亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 基于51單片機和LCD1602的電子密碼鎖設計 實物和仿真程序都有 [打印本頁]

作者: 曉風殘月hs    時間: 2017-5-25 15:51
標題: 基于51單片機和LCD1602的電子密碼鎖設計 實物和仿真程序都有

本設計主要任務

(1)共8位密碼,每位的取值范圍為1~8。
(2)用戶可以自行設定和修改密碼。
(3)按每個密碼鍵時都有聲、光提示。
(4)若鍵入的8位開鎖密碼不完全正確,則報警5秒鐘,以提醒他人注意。
(5)開鎖密碼錯3次要報警10分鐘,報警期間輸入密碼無效,以防竊賊多次試探密碼。
(6)鍵入的8位開鎖密碼完全正確才能開鎖,開鎖時要有1秒的提示音。
(7)密碼鍵盤上只允許有8個密碼按鍵和1個發(fā)光管。鎖內有備用電池,只有內部上電復位時才能設置或修改密碼,因此,僅在門外按鍵是不能修改或設置密碼的。
(8)密碼設定完畢后要有2秒的提示音。
以上是初步設定的電子密碼鎖的主要功能。
本系統(tǒng)主要由單片機系統(tǒng)、鍵盤、報警系統(tǒng)組成。系統(tǒng)能完成開鎖、超時報警、超次鎖定、管理員解密、修改用戶密碼基本的密碼鎖的功能。除上述基本的密碼鎖功能外,還具有調電存儲、聲光提示等功能,依據實際的情況還可以添加遙控功能。本系統(tǒng)成本低廉,功能實用。本設計要完成的軟件任務主要有:一是鍵盤輸入的識別;二是8位LED的顯示;三是密碼的比較、修改、存儲;;四是報警和開鎖控制電平的輸出。
根據以上任務,結合硬件結構,可以將鍵盤輸入的識別用來作為系統(tǒng)的監(jiān)控程序(主程序),用顯示程序來延時,不斷查詢鍵盤。如果有鍵按下,就得到相應的鍵值。結合當前系統(tǒng)所處的狀態(tài),調用不同的操作模塊,實現(xiàn)相應的功能。而執(zhí)行模塊主要有數字輸入模塊、確定鍵模塊、修改鍵模塊、顯示模塊及報警模塊。
存儲單元的分配
該密碼鎖中RAM存儲單元的分配方案如下:
31H~38H:依次存放8位設定的密碼,首位密碼存放在31H單元;
R0:指向密碼地址;
R2:已經鍵入密碼的位數;
R3:存放允許的錯碼次數3與實際錯碼次數的差值;
R4至R7:延時用;
00H:錯碼標志位。
對于ROM存儲單元的分配,由于程序比較短,而且占用的存儲空間比較少,因此,在無特殊要求時,可以從0030H單元(其它地址也可以)開始存放主程序。
若按鍵AN1~AN7分別代表數碼1~7,按鍵AN0代表數碼8。在沒有鍵按下時,P1.0~P1.7全是高電平1,若某個鍵被按下,相應的口線就變?yōu)榈碗娖?。假如設定的密碼是61234578,當按鍵AN6被按下時,P1.6變?yōu)榈碗娖,P1端口其余口線為高電平,此時從P1端口讀入的數值為10111111,存到31H單元的密碼值就是10111111,也就是BFH。依此類推,存到32H至38H單元的密碼值分別是FDH、FBH、F7H、EFH、DFH、7FH、FEH。開鎖時必須先按AN6,使從P1口讀入的第一個密碼值與31H單元存儲的設定值相同,再順序按AN1、AN2、AN3、AN4、AN5、AN7、AN0才能開鎖。否則不能開鎖,同時開始報警。

實物圖:


proteus仿真原理圖:



單片機源程序如下:
  1. //南陽理工學院
  2. //學習是遺忘的最好的方式
  3. //只花了很少時間寫的,有很多不足的算法與編程序方式,見諒!
  4. #include"at89x51.h"
  5. #include"key.h"
  6. #include"lcd.h"
  7. uchar code show_0[]="Please input the password:";
  8. uchar code show_1[]="The cipher is:" ;
  9. uchar code show_2[]="********";
  10. uchar code show_3[]="The password is wrong!";
  11. uchar code show_4[]="This is the last time,";
  12. uchar code show_5[]="Please try it tomorrow!";
  13. uchar code show_6[]="you are right!";
  14. uchar code show_7[]="Please input the new cipher:";
  15. uchar code show_8[]="Input it again!";
  16. uchar code show_9[]="Establishes successful! ";
  17. uchar code show_10[]="(^_^)";
  18. uchar  init_pswd[]={8,8,8,8,8,8,8,8};
  19. uchar  pswd[8]={0};
  20. uchar  pswd_1[8]={0};
  21. void play(uchar *j,uchar k)          //K是顯示的個數,j是地址
  22. {
  23.    uchar  i;
  24.    for(i=0;i<k;i++)
  25.    {
  26.     dat_w(*(j+i));
  27.         delay(20);
  28.    }
  29. }
  30. main()
  31. {
  32.   uchar j=0,i=0,sum_1=0;
  33.   loop:init();
  34.   clear();
  35.   gotoxy(1,0);
  36.   play(show_0,16);
  37.   gotoxy(2,0);
  38.   play(show_0+17,10);
  39.   /****密碼輸入****/
  40.   do
  41.   {
  42.     key();
  43.   }
  44.   while(ki!=15);
  45.   clear();
  46.   gotoxy(1,0);
  47.   play(show_1,15);
  48.   do
  49.   {
  50.     flag=0;
  51.     key();
  52.         gotoxy(2,0);
  53.         if(flag==1&&ki<=9)
  54.          {
  55.           pswd[i]=ki;
  56.           play(show_2,i);
  57.           i++;
  58.          }
  59.         if(ki==14)        //14則退出.
  60.           break;
  61.    }       
  62.    while(i<=8);
  63.    for(i=0;i<=7;i++)
  64.    {
  65.      sum_1=init_pswd[i]-pswd[i]+sum_1;
  66.      if(sum_1!=0)
  67.          {
  68.            clear();
  69.            j++;
  70.            if(j==3)
  71.            {
  72.             clear();
  73.             gotoxy(1,0);
  74.             play(show_4,16);
  75.                 gotoxy(2,0);
  76.                 play(show_4+16,14);
  77.                 delay(500);
  78.                 delay(500);
  79.                 clear();
  80.                 gotoxy(1,0);
  81.                 play(show_5+7,16);
  82.                 gotoxy(2,5);
  83.                 play(show_10,5);
  84.             while(1);   //三次輸入密碼失敗,自鎖
  85.            }
  86.            gotoxy(1,0);
  87.            play(show_3,16);
  88.            gotoxy(2,5);
  89.            play(show_3+15,7);
  90.            delay(500);
  91.            clear();
  92.            gotoxy(1,0);
  93.            play(show_8,15);
  94.            goto loop;
  95.           }
  96.           if(sum_1==0)
  97.           {
  98.           
  99.            clear();
  100.            gotoxy(1,0);
  101.            play(show_6,15);
  102.            do
  103.            {
  104.            key();
  105.            }
  106.            while(ki!=13);
  107.            loop1:clear();
  108.            gotoxy(1,0);
  109.            play(show_7,13);
  110.            gotoxy(2,0);
  111.            play(show_7+13,15);
  112.            /****第一次輸密碼***/
  113.            i=0;
  114.             do
  115.             {
  116.                   flag=0;
  117.           key();
  118.                   if(flag==1&&ki<=9)
  119.               {
  120.                pswd[i]=ki;
  121.                    i++;
  122.                    clear();
  123.                    gotoxy(1,0);
  124.                    play(show_2,i);
  125.                    }
  126.                     }while(i<=7);
  127.                  clear();
  128.                  gotoxy(1,0);
  129.              play(show_8,15);
  130.            /***第二次輸密碼****/
  131.                  i=0;
  132.                  sum_1=0;
  133.             do
  134.             {
  135.                   flag=0;
  136.           key();
  137.                   if(flag==1&&ki<=9)
  138.               {
  139.                pswd_1[i]=ki;
  140.                    i++;
  141.                    clear();
  142.                    gotoxy(1,0);
  143.                    play(show_2,i);
  144.                    }
  145.                     }
  146.                  while(i<=7);
  147.                  for(i=0;i<=7;i++)
  148.                   {
  149.                    sum_1=sum_1+ pswd_1[i]-pswd[i];
  150.                    }
  151.                  if(sum_1==0)
  152.                    {
  153.                     clear();
  154.                            gotoxy(1,2);
  155.                         play(show_9,12);
  156.                         gotoxy(2,2);
  157. ……………………

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

所有資料51hei提供下載:
電子密碼鎖 1602顯示仿真程序.zip (292.21 KB, 下載次數: 395)




作者: justlivehappy    時間: 2018-4-14 22:07
沒有黑幣
作者: 51black電子    時間: 2018-9-12 14:54
謝謝樓主!

作者: xiaogegeyo    時間: 2018-9-18 20:23
可以 ,很有用,很難得的八位密碼,找了好久才找到
作者: guanhaining    時間: 2018-12-7 12:20
謝謝樓主!學習了!
作者: 343779182    時間: 2018-12-12 12:27
為什么下載之后打開沒有
作者: 739175791    時間: 2018-12-12 18:51
密碼鎖實現(xiàn)外部是要連線的嗎
作者: 簡述    時間: 2018-12-17 13:30
這里面的源代碼和教程是不是都有,詳細嗎?我是第一次做不知道有困難不?我很需要
作者: 簡述    時間: 2018-12-17 13:32
這個壓縮包里的文件是不是特別詳細,我是新手,求解答
作者: zero1280    時間: 2019-1-13 14:46
謝謝LZ
作者: zero1280    時間: 2019-1-13 15:07
太實用了,謝謝!
作者: shddgj    時間: 2019-3-23 18:51
下來學習一下意見看了好幾個不同的方案 了
作者: 曦辰    時間: 2019-4-16 23:25
為什么打不開,聯(lián)調死機?
作者: dyp1225    時間: 2019-4-17 09:59
黑幣不夠啦,項目收官階段。求樓主發(fā)郵箱,謝謝啦!郵箱614837496@qq.com
作者: 一寸灰    時間: 2019-12-9 17:20
可以,感謝,下載學習
作者: 12332145678    時間: 2020-3-28 16:21
好用,感謝。




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1