电子密码锁设计(4)
分类号 TP332 单位代码 11395 密 级 公开 学 号0705230209
学生毕业设计(论文)
题 目
作 者
院 (系)
专 业
指导教师
答辩日期 电子密码锁设计 任渭龙 能源工程学院 电气工程及其自动化 郭红霞 年 月 日
榆 林 学 院
毕业设计(论文)诚信责任书
本人郑重声明:所呈交的毕业设计(论文),是本人在导师的指导下独立
进行研究所取得的成果。毕业设计(论文)中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。尽我所知,除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经公开发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人毕业设计(论文)与资料若有不实,愿意承担一切相关的法律责任。
论文作者签名:
年 月 日
榆林学院本科毕业设计
摘要
随着科学技术的发展,人们生活水平的不断提高,家庭防盗的问题也变得越来越重要。传统的机械锁,由于结构简单,安全性能比较低,无法满足人们的需要。在科学技术不断发展的今天,电子密码锁在安全防盗方面的的作用也越来越显得重要。
本次设计的是电子密码锁,系统由单片机AT89C51与存储器AT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、LCD液晶显示、报警模块、开锁模块等电路模块。它能实现以下功能:密码输入正确时,开锁;密码输入错误时,报警并锁定键盘,但可以按切换键切换;用户可以根据需要来更改密码。
本密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,具有一定的推广价值。
关键词:电子密码锁 单片机AT89C51 存储器AT24C02 LCD液晶显示
I
电子密码锁设计
ABSTRACT
With the development of science and technology,improving people's living standard.How to achieve the family security issues are becoming increasingly important. Traditional mechanical locks can not meet people's needs because of its simple structure, relatively low security.Nowdays ,with The congtinous development of science and technology, electronic anti-thef locks play an increasingly important role in security aspects.
The main paper is about the design of the electronic code lock. The system is composed with the microcontroller AT89C51 ,AT24C02 and data memory unit, combined with the external keyboard, LCD display, alarm module, unlocking module circuit module. It can realize the following functions: open the lock with the correct password;give an alarm with the password input error, and lock the keyboard, but you can press the shift key to switch; user can change the password if he or she want. The lock has some features as a reasonable design methods, simple to work, low cost, security and practical features.It also has some promotional value.
Keywords: electronic code lock SCM AT89C51 memory AT24C02 LCD display
II
榆林学院本科毕业设计
目 录
摘要 .......................................................................... I ABSTRACT ..................................................................... II 目 录 ....................................................................... III
1 绪论 ........................................................................ 1
1.1选题背景 ............................................................... 1
1.2国内外研究现状 ......................................................... 1
1.3电子密码锁的发展趋势 ................................................... 2
1.4本文完成的工作 ......................................................... 2
2 电子密码锁设计 .............................................................. 4
2.1设计方案 ............................................................... 4
2.2 主要芯片介绍........................................................... 5
2.2.1主控芯片AT89C51性能简介 ......................................... 5
2.2.2存储芯片AT24C02 .................................................. 7
2.2.3 LCD1602显示器 ................................................... 7
2.3单片机最小系统 ......................................................... 8
2.3.1复位电路 ......................................................... 8
2.3.2晶振时钟电路 ..................................................... 9
2.4电源模块 ............................................................... 9
2.5键盘模块 .............................................................. 10
2.6存储模块 .............................................................. 11
2.7显示模块 .............................................................. 11
2.8报警模块 .............................................................. 12
2.9开锁模块 .............................................................. 12
3 系统软件设计 ............................................................... 14
3.1主程序设计 ............................................................ 14
3.2按键功能子程序 ........................................................ 14
3.3密码设置子程序 ........................................................ 14
3.4开锁子程序 ............................................................ 14
3.5显示子程序 ............................................................ 14
结论 ......................................................................... 20
参考文献 ..................................................................... 21
III
电子密码锁设计
致谢 ......................................................................... 22
附录1总原理图 ............................................................... 23
附录2部分程序 ............................................................... 24
IV
榆林学院本科毕业设计
1 绪论
1.1选题背景
当今市场上最常用的锁是由外国人发明的机械锁,也是由于它价格便宜、易于使用、结构简单,才占据了一定的市场地位。同时它也存在很多的不足之处:(1)机械锁一般都是由铜、铁、铝、锌等金属制作而成,简单的结构,不够过硬的加工制作使的这种锁很容易被损坏;(2)机械锁的互开率也比较的高,有自称为“开锁大王”的人说只要是机械锁,他就能打开;(3)钥匙也比较容易丢失,而且任何人只要持有该钥匙就可以将锁打开;(4) 机械锁的钥匙也比较容易复制,一般用于安全系数要求比较低的场合[4]。由于人们对锁具提出了更高的安全性和方便性等性能要求,各种各样的锁——机械密码锁,智能锁等一个个接踵出现,但是智能锁主要用于那些安全系数要求比较高的场所,单价也比较的高,在一定程度上限制了这类产品的大众化。
随着科技的不断发展,人们财富值的不断提高,电子密码锁在安全防盗方面的地位也在不断提高。由于电子密码锁用密码取代了钥匙,既少了戴钥匙的麻烦,又解决了普通门锁安全性能差的缺点。越来越重要的防盗问题,耐用性差的机械锁频繁发生的被撬事件,机械锁所暴露出来的种种弊端将一种新型的锁——电子密码锁,推向了历史的舞台。
1.2国内外研究现状
锁,一直是人们在日常生活中不可或缺的安全卫士,在家庭、学校、银行、宾馆等场所都要运用到各式各样的锁。传统的机械锁由于使用铜、铁、铝、锌等金属材料制成的,而且每把锁到要佩戴一把钥匙,钥匙多的话携带起来不方便,而且还极其容易丢失,也很容易被人们复制。随着国民经济的改善,科技的不断发展,人们对锁的安全性能的要求越来越高。社会上发生的撬锁盗窃和开锁大王开锁事件以及密码代替钥匙的思想的出现。使得一种新的锁具——密码锁应运而生。密码锁具有操作简单、价格低、安全性高等优点。
在一些安全系数要求较高的场所,各式各样的电子密码锁已经应用的极为普遍了,渐渐取代了传统的机械锁和机械式密码锁,电子密码锁有密码数量多,安全系数高等优点,这些也是机械锁和机械式密码锁所远远不能相比的。随着单片机的出现,更多的智能密码锁出现了。它不仅具有电子密码锁的功能,而且还引入了专家分析系统、智能化管理等功能。从而使密码锁有了更高的安全性、可靠
1
电子密码锁设计
性,生活中的运用也越来也普遍。
随着科技的不断发展,人们在电子密码锁方面的技术也成熟很多,许多电子智能锁如指纹识别、IC卡辨认等已在国内外相继面世。但这些产品只是针对特定的指纹和有效卡,仅限于安全系数要求高的场所使用。而且在公共场所使用指纹识别器容易机械损坏,IC卡也容易丢失和损坏[1]。再加上其成本比较高也就限制了它的大众化。但是一种新型的更加智能化的电子密码锁走进了我们的生活,它用单片机作为它的主控芯片。从现在的科技情况和市场的使用情况来看,键盘式电子密码锁在国内外的使用最为普遍。这种密码锁简单易懂,安全性高,价格适中,用户可随意修改和设定密码等,被广泛用在家庭、学校、银行、宾馆等场合。
1.3电子密码锁的发展趋势
以前开发的电子密码锁,由于技术和器件的限制,控制系统种类较少,保密性能较差,最简单的就是用模拟电子开关来实现的,制作简单而且安全性能差。后来的控制系统用EDA来实现,但是电路中的器件多,连接复杂。那时候也有用AT89C2051单片机来实现的,由于密码数量少,安全性低,推广受到了一定的限制。伴着科学技术的提高,电子器件的种类也多了,功能也多了,性能也好了,供选择的空间也大了[12]。由以前的单键盘输入到现在的用密码和各种感应元件结合起来实现,真正起到了电子密码锁的电子加密,安全性能也越来越受人们的信赖了。
根据目前的科学技术和市场上人们所用的类型,键盘式的电子密码锁占着主导地位。其具有简单易学的特点,这也是其占有一定市场地位的主要原因。由数字、字符、图像、人体生物特征和时间等要素组合来作为电子信息使用,使电子密码锁的保密性变得更好了。电子信息的组合使用给电子密码锁系统功能的扩展提供了无穷的空间,这也将会成为将来的市场主流。
1.4本文完成的工作
电子密码锁是一种由主控芯片单片机AT89C51结合外围电路通过用户对键盘的密码输入来使电路和芯片工作,进而控制电磁阀的开与关,实现开锁、闭锁任务的电子产品。电子密码锁的特点如下:
1.
2.
3.
编码数量多,其中可以设一组管理员密码,性能远大于了机械锁。随机开用户可以根据需要对密码锁进行密码修改和设置,不仅可以防止密码被当用户几次密码输入错误后,系统会启动报警并锁定键盘一段时间。 2 锁率接近于零。 盗,而且也避免替换人员后降低了系统的保密性。
榆林学院本科毕业设计
4.
5.
6. 活动零件少,减少了磨损,使其更耐用。 使用方便灵活,只要记好密码就能开锁。 电子密码锁操作简单,容易掌握。
本设计的主控芯片采用AT89C51单片机与存储器AT24C02,结合外围电路模块,再通过程序软件设计,能够实现:
1. 用户输入密码正确时,开锁提示;
2. 用户输入密码错误时,蜂鸣器报警;
3. 用户可以根据需要对密码进行更改。
3
电子密码锁设计
2 电子密码锁设计
2.1设计方案
本课题选用AT89C51单片机作为系统的核心部件,实现控制和处理的功能。单片机具有容易编程、引脚资源丰富、处理速度快等优点。利用单片机内部的随机存储器RAM和只读存储器ROM及其引脚资源,外接LCD液晶显示,4*4键盘等实现数据的处理传输和显示功能,能实现设计的工作要求。
本设计主要由AT89C51单片机、4*4键盘、存储模块等部分组成。其中4*4键盘用于输入密码和实现相应功能。由用户通过4*4键盘输入密码,经过单片机对用户输入的密码与自己保存的密码进行比较,来判断密码是否正确,然后控制引脚的高低电平传到开锁电路或报警电路,控制开锁还是报警。系统整体框图如图2-1所示:
图2-1 系统结构框图 各模块功能如下:
1.键盘模块:分为数字键和功能键,用于实现密码锁的输入功能。
2.显示模块:用于实现对系统状态显示及操作提示功能。
3.最小系统:使系统复位并产生时钟信号。
4.报警模块:用于输错密码时报警。
5.存储模块:用于实现掉电存储功能,使修改的密码断电后仍能保存。
6.开锁模块:应用继电器及发光二极管模拟开锁,实现开锁和开锁提示。
4
榆林学院本科毕业设计
电子密码锁设计
输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出频率为振荡器频率的1/6的正脉冲信号。
5. PSEN:程序储存允许, PSEN输出是外部程序存储器的读选通信号,当
AT89C51由外部程序存储器取指令或数据时,每个机器周期两次PSEN有效(即输出两个脉冲)。但此期间访问外部数据存储器时,这两次有效的
________________
__________
__________
__________
PSEN信号将不出现。
______
6. EA/VPP:外部访问允许。当EA保持低电平时,则在此期间外部程序存
储器(0000H-FFFFH),不管是否有内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源VPP。 7. XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 8. XTAL2:振荡器反相放大器的输出端。
9. P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL
门电流。
10. P1口:是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接
收输出4个TTL门电流。
11. P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可
接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
12. P3口: P3口输出缓冲级可吸收4个TTL逻辑门电流。对P3口写入“1”
时,P3口被内部上拉电阻拉高,可作为输入端口。P3口不仅可以做I/O口线,最重要是它的第二功能,P3口的第二功能如下表2-1。
表2-1 为 P3口的第二功能
6
榆林学院本科毕业设计
2.3.2晶振时钟电路
11
电子密码锁设计
3 系统软件设计
3.1主程序设计
在正常状态下要开锁, 先按开锁按钮,再输入密码,然后按确定键开锁,完毕后按关锁键关锁。密码限输入三次,如果输错三次,则报警。如果要修改密码和用户号,必须是在开锁的状态下。方法是:先按修改密码或修改用户键,输入内容,按下确定键确定修改,然后可以关锁。如果忘记密码,可以先按管理员键,输入管理员密码开锁后可进行密码修改操作。主程序设计流程图如图3-1所示。
3.2按键功能子程序
如图3-2为按键功能子程序,在按键当中,有与CLR(清除)、EN(确认)、F1(管理模式切换键)、F2(设置/修改)、F3(关闭/开启)、F4(开锁)的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,输入两次正确的可进行重新设置,最后确认程序。
3.3密码设置子程序
如图3-3为密码设置子程序,开始按下F2键,启动了定时,输入原密码,若错误,且达到三次,则报警并锁定键盘。若输入正确,可以改密码,需要两次确认若两次输入一样,则更改成功。
3.4开锁子程序
如图3-4为开锁子程序,开始时按F4键,输入密码,如果输入正确,则开锁成功。如果输入错误累计达到三次,则执行报警程序。当用户不小心3次输入密码都错误,键盘被锁定,这时就可以启动管理模式,使用管理员的密码来开门。
3.5显示子程序
此模块包括LCD液晶初始化、命令的输入、显示数据的输入。其中命令是用于控制液晶状态是否显示光标, 光标是否闪烁, 是否清除原来数据以及显示的具体
14
榆林学院本科毕业设计
位置。数据显示主要是将要显示的信息按需要准时显示出来。如图3-5所示。
图3-1主程序流程图
15
电子密码锁设计
图3-2 键功能子程序
16
榆林学院本科毕业设计
图3-3密码设置子程序
17
电子密码锁设计
图3-4开锁子程序
18
榆林学院本科毕业设计
图3-5 显示子程序
19
电子密码锁设计
结论
以上为毕业期间所设计的电子密码所,它经过大量的查阅资料以及反复的修改和整理,终于可以满足设计的基本要求。本文的主要内容如下所述:设计中使用单片机AT89C51实现了一种电子密码锁,其主要具有如下功能:(1)通过键盘设置6位密码,输入密码正确,则开锁;(2)用户可以根据需要对密码锁进行密码修改和设定,修改密码前必须先开锁;(3)修改密码是要进行两次输入,第二次主要是为了确认第一次的输入,以免误操作;(4)此密码锁具有光报警功能,密码输入错误LCD1602显示器会出现错误提示同时LED发光;(5)输入密码时,若3次输入错误,则报警,输入时,LCD显示为“*”,也可进行管理员切换,修改密码时显示的是数字。
此次设计的密码锁克服了机械式密码锁设置密码数量少,安全性低等缺点,可以说是一种全新的科技产品,各种性能都有了很大的提高。随着科技的不断发展,人们在电子密码锁方面的技术也成熟很多,一种新型的更加智能化的电子密码锁走进了我们的生活,它用单片机作为他的主控芯片。从现在的科技情况和市场的使用情况来看,键盘式电子密码锁在国内外的使用最为普遍。这种密码锁简单易懂,安全性高,保密性好,用户可随意修改和设定密码等特点,被广泛用在家庭、学校、银行、宾馆等场所。
受到本人水平的限制,此次设计的密码所还存在很多的问题:(1)密码锁的密码和用户号必须牢牢记住,否则自己锁上的密码锁也将无法打开;(2)设计中没有使用更加智能或者具有感应能力的模块,仅仅是最基本的设计而已。本系统用的是6位密码输入,有106种密码输入方案,由于他人不知道密码和密码的位数,并且要求在规定的时间内把密码输入正确,所以他人开锁的几率很小。由于使用的是单片机作为核心的控制元件,配合其它器件,使本密码控制系统具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。对于存在的不足之处,希望后人将其更加完善,更加先进。给密码锁结合一些人体的指纹、声音、视网膜等信息,那样组合起来更加使其智能化,还望后人的开发与研究。
20
榆林学院本科毕业设计
参考文献
[1] 宁爱民.应用AT89C2051单片机设计电子密码锁[J].淮海工学院学报,2003(6). [2] 张金光.基于AT89S52单片机的电子密码锁 [J].制作天地,2010(10). [3] 张云等.基于AT89S51的多功能电子密码锁设计[J].电子设计工程,2009. [4] 李捷等.一种基于单片机的电子密码锁的设计[J].农机化研究,2004. [5] 高海,郭红霞.基于AT89S51的密码锁设计[J].元器件与应用,2010. [6]肖景和.数子集成电路应用精粹[M].人民邮电出版社,2002.
[7]潘永雄.电子线路CAD实用教程[M].西安:西安电子科技大学出版社,2002. [8]林申茂.8051单片机彻底研究基础篇[M].人民邮电出版社,2004. [9]阎石.数字电子技术基础[M].高等教育出版社,1998. [10]童诗白.模拟电子技术基础[M].高等教育出版社,1998. [11]候振鹏.嵌入式C语言程序设计[M].人民邮电出版社,2006. [12]徐士良.C语言程序设计教程[M].人民邮电出版社,2001.
[13]唐晨光等. 单片机原理与应用及上机指导[M]. 清华大学出版社,2010. [14]魏丑君.CMOS 4000系列60种常用集成电路的应用[M].人民邮电出版社,1995. [15]吴桂秀.传感器应用制作入门[M].浙江科学技术出版社,2004. [16]李建忠.单片机原理及应用[M].西安电子科技大学出版,2002.
21
电子密码锁设计
致谢
本设计花费了自己大量的时间终于完成了,能够最终完成这个设计,获得这份劳动成果,与帮助过我的老师、同学、朋友的关系是离不开的。回想起做论文是的辛勤努力,品味现在获得的喜悦,一个个帮助过我的人,关心过我的人也都一个个浮现在了我的脑海里。首先我得感谢我的指导老师郭红霞老师。在我们做论文的过程中郭老师总是不厌其烦的给我们进行论文指导,并多次把我们小组成员叫过去,给我们进行修改论文,非常关心我们的论文进度和设计情况。占用了她很多的私人时间,但她仍不忘记在指导论文的过程中给我提一些可行性的意见和建议,再次感谢我的指导老师郭老师。
再是我要感谢大学四年来伴我成长的各位老师,感谢一直支持我的父母、亲戚、朋友和同学,也感谢答辩组的各位老师,感谢母校对我的培养,我要用我的所学,来回报母校,回报社会。
22
电子密码锁设计
附录2部分程序
)按键程序:
#include #include "Key.h" #include "Lcd.h"
static void _delay_ms(uchar t) { uint m,n; for(n=0;m
}
}
uchar Key_Status() { Wr_Row(0xf); Wr_Col(0x0); if(Rd_Row==0xf)
{return 0;} else return 1;
}
uchar get_value(uchar q) { uchar value=0; switch(q) { case 1:value=1;break; case 2:value=2;break; case 4:value=3;break; case 8:value=4;break; default :value=0;break;
}
return value;
}
uchar read_Key()
24
1
榆林学院本科毕业设计
{ uchar Row=0,Col=0;
Wr_Row(0xf);
Wr_Col(0);
Row=(~Rd_Row)&0xf;
Wr_Col(0xf);
Wr_Row(0);
Col=(~Rd_Col)&0xf;
_delay_ms(5);
Col=get_value(Col);
Row=get_value(Row);
return ((Col-1)*4+Row);
}
2)LCD显示程序:
#include
#include
#define NOP _nop_()
sbit Lcd_F2=P1^5;
sbit Lcd_F1=P1^6;
sbit Lcd_EN=P1^7;
sbit Ic_F3=P1^0;
sbit Ic_CLK=P1^1;
#define Lcdp P0
typedef unsigned char uchar ;
typedef unsigned int uint ;
static void delay(uint q)
{ while(--q); }
static uchar Lcd_read()
{ uchar p;
Lcd_EN=0;
Lcd_F2=0;
Lcd_F1=1;
Lcd_EN=1;
p=Lcdp;
Lcd_EN=0;
25
电子密码锁设计
return p;
}
static void Lcd_busy()
{ delay(1000); }
static void Lcd_write_cmd(uchar p) { Lcd_busy();
Lcd_F2=0;
Lcd_F1=0;
Lcd_EN=1;
Lcdp=p;
Lcd_EN=0;
}
static void Lcd_write_data(uchar p) { Lcd_busy();
Lcd_F2=1;
}
void Lcd_print(uchar *k)
{
while(*k!='\0')Lcd_write_data(*k++); }
Void Lcd_set_addr(uchar y)
{
}
void Lcd_init()
{
Lcd_write_cmd(0x01);
Lcd_write_cmd(0x0c);
Lcd_write_cmd(0x38);
26
Lcd_F1=0; Lcd_EN=1; Lcd_EN=0; Lcdp=p; Lcd_write_cmd(y);
榆林学院本科毕业设计
Lcd_write_cmd(0x01);
Lcd_write_cmd(0x80);
}
void Lcd_clear()
{ Lcd_write_cmd(0x01); }
static void Ic_start()
{
Ic_F3=1;
Ic_CLK=1;
NOP;
Ic_F3=0;
Ic_CLK=0;
}
static void Ic_stop()
{ Ic_CLK=0;
Ic_F3=0;
Ic_CLK=1;
NOP;
Ic_F3=1;
}
static void Ic_write_byte(uchar p) { uchar m;
for(m=0;m
{ Ic_CLK=0;
Ic_F3=dat&0x80;
NOP;
Ic_CLK=1;
NOP;
p
}
Ic_CLK=0;
}
static uchar recive_ack()
27
电子密码锁设计
{ uchar m=0;
Ic_CLK=0;
NOP;
NOP;
Ic_CLK=1;
NOP;
NOP;
while(Ic_F3);
Ic_CLK=0;
return 1;
}
static void send_ack()
{ uchar m=0;
Ic_F3=1;
NOP;
Ic_CLK=0;
NOP;
Ic_F3=0;
NOP;
Ic_CLK=1;
NOP;
Ic_CLK=0;
Ic_F3=1;
}
void Ic_write(uchar y,uchar p)
{ Ic_start();
Ic_write_byte(0xa0);
recive_ack();
Ic_write_byte(y);
recive_ack();
Ic_write_byte(p);
recive_ack();
Ic_stop();
28
榆林学院本科毕业设计
}
static uchar Ic_read_byte()
{ uchar m;
}
uchar Ic_read(uchar y)
{ uchar p;
}
void Ic_writes(uchar y,void *buf,uchar num) { uchar m;
uchar *f=(uchar *)buf;
for(m=0;m
29
电子密码锁设计
{ Ic_write(y+m,f[m]); delay(1000);
}
}
void Ic_reads(uchar y,void *buf,uchar num) { uchar m;
uchar *f=(uchar *)buf;
for(m=0;m
}
}
30