设计以STC12C5A60S2单片机作为密码监控装置和控制核心,结合键盘电路,12864显示电路,报警电路和开锁机构,利用单片机灵活的编程设计和丰富的I/O端口及其控制的准确性通过软件程序来控制整个系统实现电子密码锁的基本功能。软件设计采用自上而下的模块化思想,使系统朝着分布式、小型化方向发展,使系统的可靠扩展性和运行稳定性增加。测试结果表明,设计各项功能已达到设计要求。
5.1.2Keil C51调试 启动Keil uVision4后新建工程文件,选择CPU厂商及型号,本设计中选择STMicroelectronics公司的STC89C51单片机,然后新建C51文件。程序写入后,开始编译工程文件,如果在错误和警告处看到0个错误则表示编译通过。 uVision4调试程序过程如图5.1。 图5.1 uVision4调试程序过程 要uVision4生成.hex文件供Proteus调用,必须勾选“产生HEX文件(X)”,uVision4设置对话框如图5.2。 图5.2 uVision4设置对话框5.3.1 实物调试 用51开发板相匹配的烧录软件将HEX文件写入单片机中。单片机程序烧录界面如图5.12。
图5.12单片机程序烧录界面 调试后,实物电路板可以完成本设计中Proteus仿真运行的所有结果。通电后初始化状态,如图5.13(a)。初始密码000000,输入密码过程,如图5.13(b)。密码正确,如图5.13(c)。密码错误,如图5.13(d)。修改密码过程,输入管理员密码后输入新密码两次,如图5.13(e)。修改密码成功,如图5.13(f)。修改密码失败,如图5.1(g)。 (e) (f) (g) 图5.13设计实物运行图 结论 经过一个月的反复探索、修改与整理,最终本设计在众多方案中选择了经济实用的以STC12C2A60S2单片机作为主控芯片,结合矩阵键盘输入、LCD液晶显示、蜂鸣器报警、开锁等电路,用C语言编写主控芯片的控制程序,设计了一款可修改密码、具有报警功能、锁定键盘功能和机械上锁功能的电子密码锁。 现已满足设计的基本要求:(1)正确输入密码前提下,开锁;(2)错误输入密码情况下,报警;(3)设定输入密码时限≤1分钟,超过该时限,即使密码正确,也不能开锁;(4)密码可更改。并且有了报警后锁定键盘功能和开锁后等待机械上锁功能,还附加了遇到强制开锁时能持续报警,等待用户管理解除报警功能。 在整个设计中我懂得了许多东西,也培养了我独立工作的能力和与同学老师的交流能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了我的动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。我相信在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。 万事开头难,在最初不知从何入手,只能利用网络和图书馆查阅资料,通过请教老师和同学,经历了不少艰辛,但是最终做完了设计的基本要求后有了种如释重负的感觉,然后再加上自己的想法尽量使设计完美一些。但始终因为我的水平有限,此电路中也存在一定的问题。比如说电路的密码不能遗忘,一旦遗忘,就很难打开;不过这可以通过增加电路或者编写程序来解决,但由于复杂或者不能仿真,本设计并未加入。 对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。 此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以只有到真正会用的时候才是真的学会了。
分为主程序和中断服务子程序,主程序负责扫描键盘输入、密码判断和LCD12C5A60S2显示功能。中断服务子程序主要是负责机械上锁、开锁、智能锁定键盘及报警。 4.1主程序流程图 通电之后,程序进行初始化设置,选择输入密码还是修改密码,若为输入密码,系统扫描键盘,密码正确,开锁提示,密码错误3次报警锁屏两分钟。若为修改密码,先输入管理员密码,管理员密码正确后才可以设置新密码。程序循环上述过程,主程序流程图如图4.1。 4.2开锁程序流程图 开始时输入密码,进行与AT24C02存储单元中解密处理后的原密码比较,若密码正确则开锁并提示。若输入位数不够六位继续输入,连续三次错误则报警并锁屏。开锁程序流程图如图4.2。 4.3密码修改程序流程图 开始时按下修改密码键,输入管理员密码,与AT24C02存储单元解密处理后中的原密码比较,若密码一致则提示输入新密码,再次输入新密码,若两次密码相同则修改密码成功,新密码经过加密处理后存入AT24C02存储单元中,新密码也必须为六位。密码修改程序流程图如图4.3。 图4.1 主程序流程图 图4.2 开锁程序流程图
完整的Word格式文档51黑下载地址:
基于单片机的电子密码锁设计.docx
(19.65 MB, 下载次数: 60)
|