1 / 23
文档名称:

电子密码锁.doc

格式:doc   大小:195KB   页数:23页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

电子密码锁.doc

上传人:lanyou1106 2018/6/23 文件大小:195 KB

下载得到文件列表

电子密码锁.doc

相关文档

文档介绍

文档介绍:目录
1
2. 整体方案设计 1
2
***机构 2
按键电路设计 3
显示电路设计 5
蜂鸣器报警电路 6
AT24C02掉电存储单元的设计 6
电源电路设计 7
通讯方式设计 8
设计总体电路图 9
4. 软件设计 10
模块介绍 10
程序流程图 11
5. 心得体会 12
6. 参考文献 13
附录 14
1. 绪论
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不***的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。
根据设定好的密码6位,采用矩阵键盘实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3分钟后,才打开按键锁定功能;否则在3秒钟内
仍有按键按下,就重新锁定按键3秒时间并报警。
2. 整体方案设计
本设计是用以AT89S51为核心的单片机控制方案。单片机以其相对较低的价格,较高的性能受到市场的欢迎。利用单片机可以灵活的进行编程设计,还有其拥有丰富的IO端口,可以方便的提供输入输出功能。另外其控制的准确性,不仅能完成本设计的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
其方框图原理如图2-1所示。
89S51
单片机
矩阵
键盘
控制
输入错误锁定键盘
延时报警控制电路
***控制电路
AT24C02掉电存储
串口显示电路
指示电路
图2-1系统方框图

***机构
通过单片机送给***执行机构,电路驱动电磁锁吸合,从而达到***的目的。其原理如图3-1所示。
单片机微控制器
***驱动电路
电磁锁
密码正确?
Y
返回
N
图3-1密码锁***机构示意图
当用户输入的密码正确而且是在规定的时间(普通用户要求在12s内输入正确的密码,管理员要求在5s输入正确的密码)输入的话,单片机便输出开门信号,送到***驱动电路,然后驱动电磁锁,达到开门的目的。其实际电路如图32-2所示。
电路驱动和***两级组成。由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管如9014、9018都可以满足要求。D5作为***的提示;由D6、C24、T11组成。其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。T11可选用中功率的三极管如8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示***;灭,表示没有***。
图3-2密码锁***机构电路图
按键电路设计
由于设计要求使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘
与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样的方法。其原理图如3—3所示。
89S51
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
X 4
X 4
VCC
图3-3 行列式键盘原理电路图
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
对照图3-3所示的4x4键盘,说明判键原理。
首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线