|
電子密碼鎖的主要功能。
(1)共8位密碼,每位的取值范圍為1~8。
(2)用戶(hù)可以自行設(shè)定和修改密碼。
(3)按每個(gè)密碼鍵時(shí)都有聲、光提示。
(4)若鍵入的8位開(kāi)鎖密碼不完全正確,則報(bào)警5秒鐘,以提醒他人注意。
(5)開(kāi)鎖密碼錯(cuò)3次要報(bào)警10分鐘,報(bào)警期間輸入密碼無(wú)效,以防竊賊多次試探密碼。
(6)鍵入的8位開(kāi)鎖密碼完全正確才能開(kāi)鎖,開(kāi)鎖時(shí)要有1秒的提示音。
(7)密碼鍵盤(pán)上只允許有8個(gè)密碼按鍵和1個(gè)發(fā)光管。鎖內(nèi)有備用電池,只有內(nèi)部上電復(fù)位時(shí)才能設(shè)置或修改密碼,因此,僅在門(mén)外按鍵是不能修改或設(shè)置密碼的。
(8)密碼設(shè)定完畢后要有2秒的提示音。
電路圖.jpg (1.16 MB, 下載次數(shù): 55)
下載附件
2019-11-25 20:59 上傳
單片機(jī)源程序如下:
- #include"at89x51.h"
- #include"key.h"
- #include"lcd.h"
- uchar code show_0[]="Please input the password:";
- uchar code show_1[]="The cipher is:" ;
- uchar code show_2[]="********";
- uchar code show_3[]="The password is wrong!";
- uchar code show_4[]="This is the last time,";
- uchar code show_5[]="Please try it tomorrow!";
- uchar code show_6[]="you are right!";
- uchar code show_7[]="Please input the new cipher:";
- uchar code show_8[]="Input it again!";
- uchar code show_9[]="Establishes successful! ";
- uchar code show_10[]="(^_^)";
- uchar init_pswd[]={8,8,8,8,8,8,8,8};
- uchar pswd[8]={0};
- uchar pswd_1[8]={0};
- void play(uchar *j,uchar k) //K是顯示的個(gè)數(shù),j是地址
- {
- uchar i;
- for(i=0;i<k;i++)
- {
- dat_w(*(j+i));
- delay(20);
- }
- }
- main()
- {
- uchar j=0,i=0,sum_1=0;
- loop:init();
- clear();
- gotoxy(1,0);
- play(show_0,16);
- gotoxy(2,0);
- play(show_0+17,10);
- /****密碼輸入****/
- do
- {
- key();
- }
- while(ki!=15);
- clear();
- gotoxy(1,0);
- play(show_1,15);
- do
- {
- flag=0;
- key();
- gotoxy(2,0);
- if(flag==1&&ki<=9)
- {
- pswd[i]=ki;
- play(show_2,i);
- i++;
- }
- if(ki==14) //14則退出.
- break;
- }
- while(i<=8);
- for(i=0;i<=7;i++)
- {
- sum_1=init_pswd[i]-pswd[i]+sum_1;
- if(sum_1!=0)
- {
- clear();
- j++;
- if(j==3)
- {
- clear();
- gotoxy(1,0);
- play(show_4,16);
- gotoxy(2,0);
- play(show_4+16,14);
- delay(500);
- delay(500);
- clear();
- gotoxy(1,0);
- play(show_5+7,16);
- gotoxy(2,5);
- play(show_10,5);
- while(1); //三次輸入密碼失敗,自鎖
- }
- gotoxy(1,0);
- play(show_3,16);
- gotoxy(2,5);
- play(show_3+15,7);
- delay(500);
- clear();
- gotoxy(1,0);
- play(show_8,15);
- goto loop;
- }
- if(sum_1==0)
- {
-
- clear();
- gotoxy(1,0);
- play(show_6,15);
- do
- {
- key();
- }
- while(ki!=13);
- loop1:clear();
- gotoxy(1,0);
- play(show_7,13);
- gotoxy(2,0);
- play(show_7+13,15);
- /****第一次輸密碼***/
- i=0;
- do
- {
- flag=0;
- key();
- if(flag==1&&ki<=9)
- {
- pswd[i]=ki;
- i++;
- clear();
- gotoxy(1,0);
- play(show_2,i);
- }
- }while(i<=7);
- clear();
- gotoxy(1,0);
- play(show_8,15);
- /***第二次輸密碼****/
- i=0;
- sum_1=0;
- do
- {
- flag=0;
- key();
- if(flag==1&&ki<=9)
- {
- pswd_1[i]=ki;
- i++;
- clear();
- gotoxy(1,0);
- play(show_2,i);
- }
- }
- while(i<=7);
- for(i=0;i<=7;i++)
- {
- sum_1=sum_1+ pswd_1[i]-pswd[i];
- }
- if(sum_1==0)
- {
- clear();
- gotoxy(1,2);
- play(show_9,12);
- gotoxy(2,2);
- play(show_9+13,11);
- for(i=0;i<=7;i++)
- {
- init_pswd[i]=pswd[1];
- }
- while(1);
- }
- if(sum_1!=0)
- {
- clear();
- goto loop1;
- }
- }
- }
-
-
- }
復(fù)制代碼
.png (26.77 KB, 下載次數(shù): 62)
下載附件
2019-11-25 20:59 上傳
全部資料51hei下載地址:
電子密碼鎖1602液晶顯示資料.rar
(366.88 KB, 下載次數(shù): 82)
2019-11-25 20:59 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|