欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11909|回復(fù): 15
收起左側(cè)

基于51單片機(jī)和LCD1602的電子密碼鎖設(shè)計(jì) 實(shí)物和仿真程序都有

  [復(fù)制鏈接]
ID:204728 發(fā)表于 2017-5-25 15:51 | 顯示全部樓層 |閱讀模式
P70525-153326.jpg
本設(shè)計(jì)主要任務(wù)

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

實(shí)物圖:
P70525-153341.jpg P70525-153402.jpg P70525-153404.jpg P70525-153418.jpg P70525-153434.jpg

proteus仿真原理圖:
電路圖 .jpg
0.png

單片機(jī)源程序如下:
  1. //南陽理工學(xué)院
  2. //學(xué)習(xí)是遺忘的最好的方式
  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是顯示的個數(shù),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黑下載附件…………
復(fù)制代碼

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



相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:308279 發(fā)表于 2018-4-14 22:07 | 顯示全部樓層
沒有黑幣
回復(fù)

使用道具 舉報(bào)

ID:396478 發(fā)表于 2018-9-12 14:54 | 顯示全部樓層
謝謝樓主!
回復(fù)

使用道具 舉報(bào)

ID:398790 發(fā)表于 2018-9-18 20:23 | 顯示全部樓層
可以 ,很有用,很難得的八位密碼,找了好久才找到
回復(fù)

使用道具 舉報(bào)

ID:435643 發(fā)表于 2018-12-7 12:20 | 顯示全部樓層
謝謝樓主!學(xué)習(xí)了!
回復(fù)

使用道具 舉報(bào)

ID:443622 發(fā)表于 2018-12-12 12:27 | 顯示全部樓層
為什么下載之后打開沒有
回復(fù)

使用道具 舉報(bào)

ID:439603 發(fā)表于 2018-12-12 18:51 | 顯示全部樓層
密碼鎖實(shí)現(xiàn)外部是要連線的嗎
回復(fù)

使用道具 舉報(bào)

ID:447904 發(fā)表于 2018-12-17 13:30 | 顯示全部樓層
這里面的源代碼和教程是不是都有,詳細(xì)嗎?我是第一次做不知道有困難不?我很需要
回復(fù)

使用道具 舉報(bào)

ID:447904 發(fā)表于 2018-12-17 13:32 | 顯示全部樓層
這個壓縮包里的文件是不是特別詳細(xì),我是新手,求解答
回復(fù)

使用道具 舉報(bào)

ID:467396 發(fā)表于 2019-1-13 14:46 | 顯示全部樓層
謝謝LZ
回復(fù)

使用道具 舉報(bào)

ID:467396 發(fā)表于 2019-1-13 15:07 | 顯示全部樓層
太實(shí)用了,謝謝!
回復(fù)

使用道具 舉報(bào)

ID:396940 發(fā)表于 2019-3-23 18:51 | 顯示全部樓層
下來學(xué)習(xí)一下意見看了好幾個不同的方案 了
回復(fù)

使用道具 舉報(bào)

13#
無效樓層,該帖已經(jīng)被刪除
14#
無效樓層,該帖已經(jīng)被刪除
ID:507769 發(fā)表于 2019-4-16 23:25 | 顯示全部樓層
為什么打不開,聯(lián)調(diào)死機(jī)?
回復(fù)

使用道具 舉報(bào)

ID:502407 發(fā)表于 2019-4-17 09:59 | 顯示全部樓層
黑幣不夠啦,項(xiàng)目收官階段。求樓主發(fā)郵箱,謝謝啦!郵箱614837496@qq.com
回復(fù)

使用道具 舉報(bào)

ID:470939 發(fā)表于 2019-12-9 17:20 | 顯示全部樓層
可以,感謝,下載學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:711792 發(fā)表于 2020-3-28 16:21 | 顯示全部樓層
好用,感謝。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表