电子密码锁的设计.doc

电子密码锁的设计.doc

ID:51409871

大小:76.00 KB

页数:15页

时间:2020-03-23

电子密码锁的设计.doc_第1页
电子密码锁的设计.doc_第2页
电子密码锁的设计.doc_第3页
电子密码锁的设计.doc_第4页
电子密码锁的设计.doc_第5页
资源描述:

《电子密码锁的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、结合51单片机设计电子密码锁【一】实验目的电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:1)保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3)误码输入保护,当输入密码多次错误时,报警系统自动启动。4)无活动零件,不会磨损,寿命长。5)使用灵活性好,不像机械锁必

2、须佩带钥匙才能开锁。6)电子密码锁操作简单易行,一学即会。本次课程要求电子密码锁的设计是要求实验者具备了解和熟悉电子密码锁的功能和基本实现方法,具备一些电子时代操作人的基本素质。【二】实验原理本设计从实用的角度出发,采用单片机AT90C52RC作为主控芯片,AT24C02作为数据库存储单元,与外围的键盘输入、开锁、显示、报警等电路相结合,用C语言编写控制程序,设计的是一款不但具有报警功能而且能够多次更改密码的电子密码锁。本次设计使用的AT90C52RC芯片实现的基于单片机的电子密码锁的设计,其主要功能如下:(1)使用数码管显示器来显示密码输入的相关消息及提示。(2)设置5位数字(0-9)密

3、码,密码通过3x4矩阵键盘输入,若密码正确,则将锁打开,初始化密码为(00000)。(3)密码可以由用户自己修改设定(5位密码),锁打开后才能修改密码。再次输入密码,在输入新密码。(4)密码输入正确则有相应的提示音,蜂鸣器会发出滴声响。(5)密码输入错误,数码管显示会出现错误提示,若密码输入3次错误,蜂鸣器报警并且自动锁定键盘。(6)密码输入功能:按下一个数字键,实现隐藏功能。(7)密码清除功能:当清除键被按下时,清除前面输入的一个值,并可以清除所有示。(8)断电后密码仍然存在(保存在24C02中)。【三】实施方案及本人承担的工作项目名称为电子密码锁,是利用单片机开发板数码管模块,键盘输入

4、模块来实现。由于此次试验程序比较长,所以在开始编写程序的时候,我们计划一个模块一个模块编写,在开发板上一个一个实现之后再通过调用进主函数来完成,具体思路很清晰,但是具体实现就有点困难了。这次实验我主要负责的是键盘扫描和主程序的编写,说实话我的单片机学的并不是很好,但是这并不影响我设计键盘扫描和主程序的代码.键盘扫描要的就是找到相关联的那两根线,然后通过输出的端口进行判断到底代码应该是多少.然后进行编写就是不是件困难的事了.在原来显示驱动试验中做过相应的程序,所以模块写入的过程倒不是很难。主程序的代码由于是用c语言做的,因此在我们理解上而言还是通俗易懂的,我们比较吃力的地方也就是几个循环的位

5、置商讨的较多,除此之外一切还是挺顺利的.还有在程序中扫描函数用的比较多,在扫描函数运用上分歧还是比较大,最后还是统一了。【四】程序框本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由键盘输入部分、密码存储部分、显示部分、开锁部分组成,软件部分对应的由主程序、初始化程序、键盘扫描程序、启动程序、关闭程序、密码设置程序等组成。具体原理框图如附录图所示。AT90C52键盘输入电源显示电路开锁电路【五】实验结果在keil软件上输入完成程序之后运行逻辑没有错误,然后将程序下载如开发板。完成之后,依次输入5个数字密码,由于程序中设有原始密码,输入后将与设定好的密码对比,若5个数字相同进入in界

6、面,说明密码正确。若5个数字不与设定密码相同,系统返回help界面,说明密码不正确。最后用户在3次内都没能输入正确的密码,则蜂鸣器长时间报警,结束之后开始60秒倒计时,在这一分钟之内用户不能在键盘上进行任何操作,直至60S结束才能重新进行操作。在输入密码的时候,输入的数字不显示,密码只有操作者自己知道。在一段时间确认没有键盘输入时,*键上锁或者一段时间后自动上锁,时间由确定的j的大小决定,自动上锁的时间不会很长。修改密码的时候,密码输入成功之后进入in界面之后才能修改。【六】设计中遇到的问题及解决方法这次密码锁设计遇到的最大的两个问题一个是错误三次锁死无法实现,一个是定时器功能无法实现。一

7、个问题产生的主要原因是因为早期将键盘扫描程序mat_keyget()写在了错误是否小于3次的判断语句之前,导致即使错误3次仍然能执行键盘扫描,未能达到锁死键盘的效果。后来将mat_keyget()写在了主程序判断错误语句的里面,这样一旦错满3次,自动跳到外面,脱离了键盘扫描,从而达到了锁死键盘的效果。实习中还遇到了其他些许问题,如定时12s,使用户若未能在12s内输入完密码并且按下确认键,即使密码输入正确也会被判为无效,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。