电子密码锁的设计

上传人:枫** 文档编号:557263761 上传时间:2022-08-31 格式:DOC 页数:21 大小:54.50KB
返回 下载 相关 举报
电子密码锁的设计_第1页
第1页 / 共21页
电子密码锁的设计_第2页
第2页 / 共21页
电子密码锁的设计_第3页
第3页 / 共21页
电子密码锁的设计_第4页
第4页 / 共21页
电子密码锁的设计_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《电子密码锁的设计》由会员分享,可在线阅读,更多相关《电子密码锁的设计(21页珍藏版)》请在金锄头文库上搜索。

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

2、锁必须佩带钥匙才干开锁。6) 电子密码锁操作简朴易行,一学即会。本次课程规定电子密码锁的设计是规定实验者具有理解和熟悉电子密码锁的功能和基本实现措施,具有某些电子时代操作人的基本素质。【二】实验原理本设计从实用的角度出发,采用单片机T90C52RC作为主控芯片,T2402作为数据库存储单元,与外围的键盘输入、开锁、显示、报警等电路相结合,用C语言编写控制程序,设计的是一款不仅具有报警功能并且可以多次更改密码的电子密码锁。本次设计使用的AT0C52RC芯片实现的基于单片机的电子密码锁的设计,其重要功能如下:(1)使用数码管显示屏来显示密码输入的有关消息及提示。(2)设立5位数字(09)密码,密码

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

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

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

6、对的。若个数字不与设定密码相似,系统返回hlp界面,阐明密码不对的。 最后顾客在3次内都没能输入对的的密码,则蜂鸣器长时间报警,结束之后开始60秒倒计时,在这一分钟之内顾客不能在键盘上进行任何操作,直至60S结束才干重新进行操作。在输入密码的时候,输入的数字不显示,密码只有操作者自己懂得。在一段时间确认没有键盘输入时,*键上锁或者一段时间后自动上锁,时间由拟定的的大小决定,自动上锁的时间不会很长。修改密码的时候,密码输入成功之后进入n界面之后才干修改。【六】设计中遇到的问题及解决措施这次密码锁设计遇到的最大的两个问题一种是错误三次锁死无法实现,一种是定期器功能无法实现。一种问题产生的重要因素是

7、由于初期将键盘扫描程序ma_keyge()写在了错误与否不不小于次的判断语句之前,导致虽然错误3次仍然能执行键盘扫描,未能达到锁死键盘的效果。后来将makeyge ()写在了主程序判断错误语句的里面,这样一旦错满3次,自动跳到外面,脱离了键盘扫描,从而达到了锁死键盘的效果。 实习中还遇到了其她些许问题,如定期12s,使顾客若未能在12内输入完密码并且按下确认键,虽然密码输入对的也会被判为无效,即错误一次。在实际操作过程中,t自加一次用时ms,因此定期应为:50*20*12。而在实际操作过程中,由于晶振误差和操作误差,实际时间长于2s,因此最后将数值设为200,在循环内进行操作,减小了误差。【七

8、】总结实践是检查真理的唯一原则,固然也是检查学习成果的原则。在通过一段时间的学习之后,我们需要理解自己的所学应当如何应用在实践中,由于任何知识都源于实践,归于实践,因此要将所学的知识在实践中来检查。从这次实验如果要一种人来做,我想也是做不了这样快的,因此我们不得不归功于集体的力量,分派合伙对于这种近乎于模块化设计的东西来说是非常有利的,固然我们也遇到过问题,这在调试错误这一节中也说得很是明白了,但是我们也并没有灰心丧气,也是把问题一点一点地克服了下来.在这个之中我也是深切的感受到了理论知识的重要性,不能光是从手头上从硬件上找问题,我们也要从软的例如程序上或是设计思路上思考这样的解决方案是不是有

9、较大的缺陷 通过这个不难也不是很简朴的实验我们结识到了团结协作,互帮互助的好处,这次课程设计也可以说是考完试后通过实践检查真理的一次珍贵机会,我们都为可以顺利完毕本次实验感到无比的骄傲和自豪。附录:重要源程序以及原理实现框图程序代码:main.c#incluee52.#includestrinh#includisplay.h#iludematkeyeth#ilue2c02#icldstatus.husigne cardiit_isplay16,16,16,16,6,1,16,16;ugned car e2po_adr00,0x01,0x02,0,x04;unsige cr coipher=2,

10、,3,5;siged car ciher_mp6,pasrd;nsned ca error_nm=;unsigned cr odigtal_lk=6,2,7,8,19,26,2,26; /-unigned harcode digital_open26,2,2,2,22,23,26,26; /-OPN-uigned char co digital_help=,6,20,2,5,1,26,2;/-HEL-nsinedhar ce dgtl_i=2,6,26,2,5,6,2,2 ;/-IN-vod lock(void)/关锁usgnedhri;o(i=0;8;i+)dgiaipla=digt_loc

11、ki;buze_on();eay_50us(20);bzzr_of();o o(oid)/开锁unine char i;r(i=0;)i-;digtal_dislayi=23;ele(j=12);/#键无效eleciphr_tempi;digital_dispayi2;/隐藏密码i+;hie(mat_eet()!=0)dgital_tue(igitadisplay);/松手检测digitaltbe(digita_dspla);hile(mt_yget()!=12)digial_tbe(digta_dplay); fo(j=0;j;j+)wbye_242(2po_add,ciper_empj);for(=0;j5;j)sordj=rdbt_24c2(oaddj);读取密码or(=0;j;j+) /显示成功界面dgal_displayj=digitaij;while(j20)/*键上锁或者一段时间后自动上锁,时间有I的大小决定;if(mat_kget()=)/*键上锁gital_u(diiadiply);if(at_keyet()=11)lo();bek;dgita_tb(diital_display);voi cipe_nput()unsined chr i=0;unsgned intj;dgitdip

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号