1、数字密码锁数字式密码锁学院: 南昌航空大学科技学院专业: 电子信息科学与技术班级: 0882081学号: 19* *指导老师: 2011年6月30日星期四摘 要在生活中锁是不可缺少的必备用品,从普通的钥匙锁到银行中的保险柜的密码锁。它给生活带来极大的方便,但是在生活中小型的机械密码锁能够用于保存一些物品,但是,如果需要保存贵重物品时,大型的机械式密码锁结构复杂,体积比较庞大,不便使用在小型的贵重物品上,于是,小型的电子密码锁就能够为大家解决这些问题,在本文中介绍了由C51单片机为核心的数字电子密码锁,在此密码锁中,通过编写一个程序,在通过液晶显示器实现输入过程,在液晶显示器上,能够完成我们需要
2、完成的一些要求,当输入的密码为设定的密码时,锁就会打开,当输入错误时,则系统就会提醒再次输入,当三次输入的密码全为错时,则系统就会报警,在输入正确的密码后,可通过功能键来修改需要修改的,例如,修改密码,进行推格,清屏等功能,能有效地保护所需要保存的物品。关键词:电子密码锁,自动报警,密码验证,密码修改,单片机,液晶显示1绪 论22设计内容及要求33系统的设计4 3.1系统设计结构图 4 3.2系统的工作原理说明44系统硬件设计 5 4.1复位以及振荡电路5 4.2 44矩阵键盘 5 4.3 报警电路 6 4.4 液晶显示电路 65电路程序设计76课程设计心得体会147参考文献14附录1设计总体
3、电路图 15附录2数字密码锁源程序 16一 绪论在日常的生活和工作中, 人们的住宅与各种部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。由于住宅各单位需要保护的与保存的并不需要那种大型的机械式钥匙式密码锁,若使用机械式钥匙开锁,人们常常需要携带多把钥匙,使用时需要寻找,极不方便,且钥匙容易丢失,钥匙丢失后,安全性即大打折扣。随着科学技术的发展,人们对日常生活中的安全保险要求越来越高,为了满足人们对锁的要求,且增加其锁的安全性与其方便性,不需要携带钥匙,用密码代替钥匙的密码锁越来越受到人们的喜爱。数字式密码锁具有成本低,安全系数高,容易操作等优点。随着生活的发
4、展,人们对锁的要求是能够简单易行,需求成本低,使用灵活性好,使用安全系数高。数字式密码锁的设计相对合理,能够符合人们的住宅、办公室用锁要求,具有很好的推广价值,且数字式电子密码锁采取电子电路控制,能够通过密码输入来控制电路与及芯片的工作从而完成开锁、闭锁任务。而且能够改变密码,能够更加安全。本次设计使用C51 单片机构成最小系统,接以键盘,报警系统,液晶显示构成人性化的方便易用的电子密码锁。能够实现我们需要的一些功能。二 设计内容及要求课程设计中,锁体用LED代替(如“绿灯亮”表示锁体被打开,“黄灯亮”表示密码输入错误,锁体为被打开,“红灯亮”表示三次密码输入都不正确,系统报警)。其密码为方4
5、位到6位数字组成,由自己设定。开锁指令为串行输入码,当开锁密码与所设置的密码一致时,则绿灯亮,锁体将被打开。当开锁密码与所设置的密码不一致时,则黄灯亮,提示密码错误,可再次输入密码。若连续三次输入密码错误,未将锁体打开,则会红灯亮,电路则报警并实现自锁。根据自己的设定,设置密码输入的时间,且时间可以任意修改,在规定的时间内没有输入密码时,系统会自锁且报警。密码可以更新,可以根据自己的需求,修改密码,实现更安全的保护。三 系统的设计3.1系统设计结构图如下图所示,此为设计原理框图:图3.1 系统设计框图如图3.1所示,此系统主要是由44矩阵键盘,复位电路,LED显示灯,蜂鸣器,以及液晶显示电路组
6、成。3.2 系统的工作原理说明本系统采用C51单片机为核心的系统,加以44矩阵键盘、LED显示灯、蜂鸣器等组成。系统通过运行后,通过提示进行输入密码,输入密码后,按确认键,如果输入密码正确时,则会绿灯亮,表示锁体已打开。如果密码输入不正确时,则会黄灯亮,可再进行输入密码,且为了防止有人恶意尝试,故此可以设置输入密码的次数,假设设置次数为三次,若连续三次密码输入错误,则红灯亮,发出报警声,并且自锁,防止有人盗窃行为。而且可以设置输入密码的时间,当在设定的时间内输入密码时则有效,反之,未在设定的时间内输入密码时,系统也自动报警,并自锁。四 系统硬件设计4.1复位以及振荡电路如下图所示,既为C51单
7、片机系统的复位和振荡电路的结构: 图4.1 系统的复位电路图4.1所示,在此电路中,时钟电路进行工作后,在管脚上加两个机器周期的高电平,当芯片内部开始工作,进行初始复位,此次设计中的晶振选择的频率为12MHZ,电容选择33pF。因此,此单片机工作胡机器周期为: 12(112M)=1us4.2 44矩阵键盘如图4.2 所示,本系统中采用的是44矩阵式的键盘输入,16个按键分为输入数字键:0、1、2、3、4、5、6、7、8、9;功能键:左移、右移、退格、Enter、AC。按键的键盘与C51单片机相连接,其连接方式如图4.2所示: 图4.2 44矩阵键盘电路4.3 报警电路在此次设计中,由于没有轰鸣
8、器,故此用LED显示其结果,当我们输入密码时,当输入的密码为正确的设定密码,则显示绿灯以表示输入正确密码,锁体已被打开,当输入的密码错误时,第一次显示黄灯,表示输入密码错误,请从新输入,当三次输入错误时,则显示红灯,并锁定,此为报警电路。4.4 液晶显示电路 为了能够使得数字式电子密码锁更加人性化,能够让人们看到输入了几位密码,我们可通过LED数码显示管显示,通过显示管来显示我们的输入,能够更加的直观,明朗。五 电路程序设计在本系统中,我们根据硬件电路可得所需要的程序流程,本程序可用C语言编写,也可用汇编编写此程序,程序主要的功能要实现允许输入三次密码,三次后报警,存放原始的密码,然后进行密码
9、对比。比较密码的对错,并进行判断,当密码正确时,锁体解开,亮绿灯,密码错误时亮黄灯,三次密码错误后,亮红灯,并报警。且能够实现修改密码。如图5.1所示:图5.1 程序框图运用C语言编写的程序如下:#include #include#includeunsigned char code ps =1,2,3,4,5;unsigned char code dispcode =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;unsigned char pslen=9;unsigned char templen;unsigned ch
10、ar digit;unsigned char funcount;unsigned char digitcount;unsigned char psbuf9;bit cmpflag;bit hibitflag;bit errorflag;bit rightflag;unsigned int second3;unsigned int aa;unsigned int bb;bit alarmflag;bit exchangeflag;unsigned int cc;unsigned int dd;bit okflag;unsigned char oka;unsigned char okb;void
11、main(void) unsigned char i,j; P1=dispcodedigitcount; 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) /function key for(i=10;i0;i-) for(j=248;j0;j-); if(P3_6=0) if(hibitflag=0) funcount+; if(funcount=pslen+2) funcount=0; cmpflag=1; P1=dispcod
12、efuncount; else second3=0; while(P3_6=0); if(P3_7=0) /digit key for(i=10;i0;i-) for(j=248;j0;j-); if(P3_7=0) if(hibitflag=0) digitcount+; if(digitcount=10) digitcount=0; P2=dispcodedigitcount; if(funcount=1) pslen=digitcount; templen=pslen; else if(funcount1) psbuffuncount-2=digitcount; else second3
13、=0; while(P3_7=0); else cmpflag=0; for(i=0;ipslen;i+) if(ps!=psbuf) hibitflag=1; i=pslen; errorflag=1; rightflag=0; cmpflag=0; second3=0; goto a; cc=0; errorflag=0; rightflag=1; hibitflag=0;a: cmpflag=0; void t0(void) interrupt 1 using 0 TH0=(65536-500)/256; TL0=(65536-500)%256; if(errorflag=1) & (r
14、ightflag=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(cc1000) okflag=1
15、; else if(cc2000) 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芯片,编写一些程序,了解了如何利用它组成一些小系统并实现所要求的功能。
16、其次是对仿真软件的应用,学会使用这些仿真软件,了解如何进行单片机的仿真。七 参考文献1 胡汉才. 单片机原理与接口技术. 北京:清华大学出版社,19962 张洪润. 单片机应用技术. 北京:清华大学出版社,19973 刘守义. 单片机应用技术. 西安:西安电子科技大学出版社,20024 张先庭 单片机原理,接口与C51应用程序设计 国防工业出版社 2010年附录1设计总体电路图 总体设计电路图附录2数字密码锁源程序ORG 0000HMAIN: MOV 43H,#03H ;允许输入错误密码三次 记数单元 MOV 50H,#00H ;6个显缓单元 存放输入密码单元 MOV 51H,#00H MOV
17、 52H,#00H MOV 53H,#00H MOV 54H,#00H MOV 55H,#00H MOV 57H,#06H ;存放原始密码位数 记数单元 MOV 58H,#01H ;存放原始密码 MOV 59H,#02H MOV 5AH,#03H MOV 5BH,#04H MOV 5CH,#05H MOV 5DH,#06H MOV P1,#0FFH ;关灯;START: MOV 56H,#00H ;存放输入密码位数初始化 MOV 42H,#50H MOV SP,#60H MOV P2,#0FFH MOV 7EH,#11H ;6个显示管初始值 MOV 7DH,#10H MOV 7CH,#10H MOV 7BH,#10H MOV 7AH,#10H MOV 79H,#10H MOV A,#81H ;控制字 MOV DPTR,#0FF23H ;控制口 MOVX DPTR,A ;显示控制字内容 MOV R0,#59H ;R0初始地址59H MOV A,#7EH MOVX R0,A ;R0初始地址内容为7E 7E的内容为11H LCALL LCK0 LCALL PTDS0PTDS0: MOV R0,#79H ;密码地址R0 MOV A,22H ACALL PTDS MOV A,21H ACALL PTDS MOV A,20H ACALL PTDS RET
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1