数字密码锁.docx
《数字密码锁.docx》由会员分享,可在线阅读,更多相关《数字密码锁.docx(28页珍藏版)》请在冰豆网上搜索。
![数字密码锁.docx](https://file1.bdocx.com/fileroot1/2023-4/17/ca864ee9-e91f-4a50-99ff-c0789adccc5c/ca864ee9-e91f-4a50-99ff-c0789adccc5c1.gif)
数字密码锁
数字式密码锁
学院:
南昌航空大学科技学院
专业:
电子信息科学与技术
班级:
0882081
学号:
19
******
指导老师:
2011年6月30日星期四
摘要
在生活中锁是不可缺少的必备用品,从普通的钥匙锁到银行中的保险柜的密码锁。
它给生活带来极大的方便,但是在生活中小型的机械密码锁能够用于保存一些物品,但是,如果需要保存贵重物品时,大型的机械式密码锁结构复杂,体积比较庞大,不便使用在小型的贵重物品上,于是,小型的电子密码锁就能够为大家解决这些问题,在本文中介绍了由C51单片机为核心的数字电子密码锁,在此密码锁中,通过编写一个程序,在通过液晶显示器实现输入过程,在液晶显示器上,能够完成我们需要完成的一些要求,当输入的密码为设定的密码时,锁就会打开,当输入错误时,则系统就会提醒再次输入,当三次输入的密码全为错时,则系统就会报警,在输入正确的密码后,可通过功能键来修改需要修改的,例如,修改密码,进行推格,清屏等功能,能有效地保护所需要保存的物品。
关键词:
电子密码锁,自动报警,密码验证,密码修改,单片机,液晶显示
1绪论……………………………………………………………………………………2
2设计内容及要求…………………………………………………………………………3
3系统的设计………………………………………………………………………………4
3.1系统设计结构图………………………………………………………………………4
3.2系统的工作原理说明……………………………………………………………………4
4系统硬件设计…………………………………………………………………………5
4.1复位以及振荡电路……………………………………………………………………5
4.24×4矩阵键盘………………………………………………………………………5
4.3报警电路……………………………………………………………………………6
4.4液晶显示电路………………………………………………………………………6
5电路程序设计……………………………………………………………………………7
6课程设计心得体会…………………………………………………………………14
7参考文献………………………………………………………………………………14
附录1设计总体电路图…………………………………………………………………15
附录2数字密码锁源程序………………………………………………………………16
一绪论
在日常的生活和工作中,人们的住宅与各种部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
由于住宅各单位需要保护的与保存的并不需要那种大型的机械式钥匙式密码锁,若使用机械式钥匙开锁,人们常常需要携带多把钥匙,使用时需要寻找,极不方便,且钥匙容易丢失,钥匙丢失后,安全性即大打折扣。
随着科学技术的发展,人们对日常生活中的安全保险要求越来越高,为了满足人们对锁的要求,且增加其锁的安全性与其方便性,不需要携带钥匙,用密码代替钥匙的密码锁越来越受到人们的喜爱。
数字式密码锁具有成本低,安全系数高,容易操作等优点。
随着生活的发展,人们对锁的要求是能够简单易行,需求成本低,使用灵活性好,使用安全系数高。
数字式密码锁的设计相对合理,能够符合人们的住宅、办公室用锁要求,具有很好的推广价值,且数字式电子密码锁采取电子电路控制,能够通过密码输入来控制电路与及芯片的工作从而完成开锁、闭锁任务。
而且能够改变密码,能够更加安全。
本次设计使用C51单片机构成最小系统,接以键盘,报警系统,液晶显示构成人性化的方便易用的电子密码锁。
能够实现我们需要的一些功能。
二设计内容及要求
课程设计中,锁体用LED代替(如“绿灯亮”表示锁体被打开,“黄灯亮”表示密码输入错误,锁体为被打开,“红灯亮”表示三次密码输入都不正确,系统报警)。
其密码为方4位到6位数字组成,由自己设定。
开锁指令为串行输入码,当开锁密码与所设置的密码一致时,则绿灯亮,锁体将被打开。
当开锁密码与所设置的密码不一致时,则黄灯亮,提示密码错误,可再次输入密码。
若连续三次输入密码错误,未将锁体打开,则会红灯亮,电路则报警并实现自锁。
根据自己的设定,设置密码输入的时间,且时间可以任意修改,在规定的时间内没有输入密码时,系统会自锁且报警。
密码可以更新,可以根据自己的需求,修改密码,实现更安全的保护。
三系统的设计
3.1系统设计结构图
如下图所示,此为设计原理框图:
图3.1系统设计框图
如图3.1所示,此系统主要是由4×4矩阵键盘,复位电路,LED显示灯,蜂鸣器,以及液晶显示电路组成。
3.2系统的工作原理说明
本系统采用C51单片机为核心的系统,加以4×4矩阵键盘、LED显示灯、蜂鸣器等组成。
系统通过运行后,通过提示进行输入密码,输入密码后,按确认键,如果输入密码正确时,则会绿灯亮,表示锁体已打开。
如果密码输入不正确时,则会黄灯亮,可再进行输入密码,且为了防止有人恶意尝试,故此可以设置输入密码的次数,假设设置次数为三次,若连续三次密码输入错误,则红灯亮,发出报警声,并且自锁,防止有人盗窃行为。
而且可以设置输入密码的时间,当在设定的时间内输入密码时则有效,反之,未在设定的时间内输入密码时,系统也自动报警,并自锁。
四系统硬件设计
4.1复位以及振荡电路
如下图所示,既为C51单片机系统的复位和振荡电路的结构:
图4.1系统的复位电路
图4.1所示,在此电路中,时钟电路进行工作后,在管脚上加两个机器周期的高电平,当芯片内部开始工作,进行初始复位,此次设计中的晶振选择的频率为12MHZ,电容选择33pF。
因此,此单片机工作胡机器周期为:
12×(1÷12M)=1us
4.24×4矩阵键盘
如图4.2所示,本系统中采用的是4×4矩阵式的键盘输入,16个按键分为输入数字键:
0、1、2、3、4、5、6、7、8、9;功能键:
左移、右移、退格、Enter、AC。
按键的键盘与C51单片机相连接,其连接方式如图4.2所示:
图4.24×4矩阵键盘电路
4.3报警电路
在此次设计中,由于没有轰鸣器,故此用LED显示其结果,当我们输入密码时,当输入的密码为正确的设定密码,则显示绿灯以表示输入正确密码,锁体已被打开,当输入的密码错误时,第一次显示黄灯,表示输入密码错误,请从新输入,当三次输入错误时,则显示红灯,并锁定,此为报警电路。
4.4液晶显示电路
为了能够使得数字式电子密码锁更加人性化,能够让人们看到输入了几位密码,我们可通过LED数码显示管显示,通过显示管来显示我们的输入,能够更加的直观,明朗。
五电路程序设计
在本系统中,我们根据硬件电路可得所需要的程序流程,本程序可用C语言编写,也可用汇编编写此程序,程序主要的功能要实现允许输入三次密码,三次后报警,存放原始的密码,然后进行密码对比。
比较密码的对错,并进行判断,当密码正确时,锁体解开,亮绿灯,密码错误时亮黄灯,三次密码错误后,亮红灯,并报警。
且能够实现修改密码。
如图5.1所示:
图5.1 程序框图
运用C语言编写的程序如下:
#include
#include
#include
unsignedcharcodeps[]={1,2,3,4,5};
unsignedcharcodedispcode[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
unsignedcharpslen=9;
unsignedchartemplen;
unsignedchardigit;
unsignedcharfuncount;
unsignedchardigitcount;
unsignedcharpsbuf[9];
bitcmpflag;
bithibitflag;
biterrorflag;
bitrightflag;
unsignedintsecond3;
unsignedintaa;
unsignedintbb;
bitalarmflag;
bitexchangeflag;
unsignedintcc;
unsignedintdd;
bitokflag;
unsignedcharoka;
unsignedcharokb;
voidmain(void)
{
unsignedchari,j;
P1=dispcode[digitcount];
TMOD=0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
TR0=1;
ET0=1;
EA=1;
while
(1)
{
if(cmpflag==0)
{
if(P3_6==0)//functionkey
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P3_6==0)
{
if(hibitflag==0)
{
funcount++;
if(funcount==pslen+2)
{
funcount=0;
cmpflag=1;
}
P1=dispcode[funcount];
}
else
{
second3=0;
}
while(P3_6==0);
}
}
if(P3_7==0)//digitkey
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P3_7==0)
{
if(hibitflag==0)
{
digitcount++;
if(digitcount==10)
{
digitcount=0;
}
P2=dispcode[digitcount];
if(funcount==1)
{
pslen=digitcount;
templen=pslen;
}
elseif(funcount>1)
{
psbuf[funcount-2]=digitcount;
}
}
else
{
second3=0;
}
while(P3_7==0);
}
}
}
else
{
cmpflag=0;
for(i=0;i {
if(ps!
=psbuf) {
hibitflag=1;
i=pslen;
errorflag=1;
rightflag=0;
cmpflag=0;
second3=0;
gotoa;
}
}
cc=0;
errorflag=0;
rightflag=1;
hibitflag=0;
a:
cmpflag=0;
}
}
}
voidt0(void)interrupt1using0
{
TH0=(65536-500)/256;
TL0=(65536-500)%256;
if((errorflag==1)&&(rightflag==0))
{
bb++;
if(bb==800)
{
bb=0;
alarmflag=~alarmflag;
}
if(alarmflag==1)
{
P0_0=~P0_0;
}
aa++;
if(aa==800)
{
aa=0;
P0_1=~P0_1;
}
second3++;
if(second3==6400)
{
second3=0;
hibitflag=0;
errorflag=0;
rightflag=0;
cmpflag=0;
P0_1=1;
alarmflag=0;
bb=0;
aa=0;
}
}
if((errorflag==0)&&(rightflag==1))
{
P0_1=0;
cc++;
if(cc<1000)
{
okflag=1;
}
elseif(cc<2000)
{
okflag=0;
}
else
{
errorflag=0;
rightflag=0;
hibitflag=0;
cmpflag=0;
P0_1=1;
cc=0;
oka=0;
okb=0;
okflag=0;
P0_0=1;
}
if(okflag==1)
{
oka++;
if(oka==2)
{
oka=0;
P0_0=~P0_0;
}
}
else
{
okb++;
if(okb==3)
{
okb=0;
P0_0=~P0_0;
}
}
}
六心得体会
通过为期两个星期的课设学习,了解了很多关于C51单片机系统的一些知识是,通过简易的CPU芯片,编写一些程序,了解了如何利用它组成一些小系统并实现所要求的功能。
其次是对仿真软件的应用,学会使用这些仿真软件,了解如何进行单片机的仿真。
七参考文献
[1] 胡汉才.单片机原理与接口技术.北京:
清华大学出版社,1996
[2]张洪润.单片机应用技术.北京:
清华大学出版社,1997
[3]刘守义.单片机应用技术.西安:
西安电子科技大学出版社,2002
[4]张先庭单片机原理,接口与C51应用程序设计国防工业出版社2010年
附录1设计总体电路图
总体设计电路图
附录2数字密码锁源程序
ORG0000H
MAIN:
MOV43H,#03H;允许输入错误密码三次记数单元
MOV50H,#00H;6个显缓单元存放输入密码单元
MOV51H,#00H
MOV52H,#00H
MOV53H,#00H
MOV54H,#00H
MOV55H,#00H
MOV57H,#06H;存放原始密码位数记数单元
MOV58H,#01H;存放原始密码
MOV59H,#02H
MOV5AH,#03H
MOV5BH,#04H
MOV5CH,#05H
MOV5DH,#06H
MOVP1,#0FFH;关灯
;
START:
MOV56H,#00H;存放输入密码位数初始化
MOV42H,#50H
MOVSP,#60H
MOVP2,#0FFH
MOV7EH,#11H;6个显示管初始值
MOV7DH,#10H
MOV7CH,#10H
MOV7BH,#10H
MOV7AH,#10H
MOV79H,#10H
MOVA,#81H;控制字
MOVDPTR,#0FF23H;控制口
MOVX@DPTR,A;显示控制字内容
MOVR0,#59H;R0初始地址59H
MOVA,#7EH
MOVX@R0,A;R0初始地址内容为7E7E的内容为11H
LCALLLCK0
LCALLPTDS0
PTDS0:
MOVR0,#79H;密码地址R0
MOVA,22H
ACALLPTDS
MOVA,21H
ACALLPTDS
MOVA,20H
ACALLPTDS
RET