基于单片机的电子密码锁设计
摘 要
近年来,在我国社会经济不断进步和迅猛发展的背景下,人们的生活水平越来越高,更多的人开始享受高质量的生活。就拿我们家家离不开的锁具来说,从我国古代历史上就有了各种锁的记载和使用,发展到今天人们追求的不单单只是用来锁门的一个工具。人们对于锁的追求体现在一种心理的安全感和使用过程中的先进技术体验上。
本课题为电子密码锁设计。该设计采用STC89C51控制器来进行关键部分的运作,主要包括主控部分、显示部分、报警部分、电磁锁控制、电源。报警选择蜂鸣器。显示电选取LCD1602显示相关信息。用户可以通过键盘输入密码数据,系统判断密码数据是否正确,来完成电子密码锁的开和关,键盘具有更改密码的作用。采用C语言进行软件设计,其开发上手容易,通过单片机的专用Keil设计工具来实现程序文件的执行,系统软件设计完成后,利用Proteus来完成对系统的验证,成功功能验证。并改善设计,完成系统设计要求。
关键词 STC89C51 密码锁 报警电路
1 系统方案设计
1.1系统整体架构设计
无线电子密码锁主要包括显示控制、键盘输入、主控制器、报警控制以及存储模块。在简易密码锁系统硬件设计中,选择单片机作为系统的核心控制原件,具体设计内容包含选取的超声波方案、单片机以及传感器的种类及型号,与此同时,我们还要根据各个部位零件设计显示模块;当我们设计系统软件的时候,最核心的内容为系统程序的设计,程序运算结果可由显示模块加以呈现。用户可以通过键盘或者红外遥控输入密码数据,系统判断密码数据是否正确,并进行开关锁的操作,密码如果输入有误,可以通过键盘重新更改输入正确的密码。系统结构框图如图2-1所示。
图2-1 系统整体框图
2 主控制器设计
以STC89C51单片机为例。这里我们针对51系列的单片机来设计讨论其功能,总体来讲,性价比还是很高的,它的安全系数很高,价格也不昂贵,功耗低,加密性强,并且对于STC系列的单片机来说,其能够进行在线的工作处理,更加方便。选用单片机STC89C51作为系统核心模块。51系列的单片机不论从性能还是价格等方面都有着很大的优势,运行稳定,性价比高,价格相对便宜,且功耗低,加密性强,此外在系统核心模块的选择上采用STC系列能够有效提高系统的工作效率,能够在工作状态下进行在线运行,让系统工作更加便捷。
2.2显示方案设计
显示方案选择LCD1602。该模块显示的内容多种多样,并且非常简单明了,价格合理,非常适合在本设计当中使用。尽管这款显示器在线路接口上显得有些复杂,接口太多,但这些接口无疑给设计后期对电路的测试与调试等提供了方便。最重要的是液晶的电源和系统电源一致,不用单独设计电源系统。LCD1602。该模块显示的内容多种多样,并且非常简单明了,价格合理,对于本设计而言,非常适用。虽然接口线连接的比较多,后期对整个电路进行测试时,就会非常容易得到测试结果。
2.3无线方案设计
通过红外遥控进行控制,红外遥控只需要搭配红外接收头既可以进行信号接收,接收端对红外信号进行解释完成对按键的识别,不同的按键发出的红外信号波形不同,所以可以实现不同按键的操作。
3 系统电路设计
3.1系统电路
无线电子密码锁虽然没有传统的机械锁那么笨重,但是它的内部组成却是很丰富的,它的系统电路构成也很复杂的,主要包括显示控制电路、键盘输入电路、主控制器电路、报警控制电路、红外遥控接收电路以及存储模块电路。电子密码锁的硬件电路设计图如图3-1所示。
图3-1 系统电路图
3.2单片机控制模块电路设计
STC89C51内部有8K的Flash存储电路,可以存储相关的数据,此单片机应用非常广,开发简单、电路设计容易,能够提高开发进展的速度,减少所用时间。开发成本低,被很多企业所选择。器件内部的运行速度很快,引脚数量大,是很多开发方案的首选。它的输出入数量有32个,分为4组,引脚口0,引脚口1,引脚口2,引脚口3,有多个定时器,定时数据准确,中断设计也很方便,定时器和中断的结合使用,能够实现很多比较复杂的功能要求,也可以嵌套很多中断执行。
除了普通使用的输入输出接口,单片机还需要时钟接口、复位接口、电源接口。时钟的接口是18脚、19脚,设计选择的是12兆赫兹的晶圆。复位接口是9脚,通过单片机的9脚输入复位信号,该信号时间是有规定的,应该超过2个小时,并且必须要接高电平来操作。AT89C52晶圆是12兆赫兹的晶振,所以时钟的周围就是12兆赫兹的12分频得到,所以计算得到周期的时间为1微妙,复位动作输入的9脚接口能够加入备用电源,这样可以保证芯片内部的数据不会因掉电消失。单片机的31脚接口是EA,这个引脚是可以确定处理器代码的存放位置,是内部还是外部,将高电平输入到31脚,这样就表示单片机使用的是内部存储的代码,如果将低电平输入到31脚,这样就表示单片机使用的是外部存储的代码。
图3-2 单片机引脚图
4 系统软件设计
4.1整体流程
图4-1 软件设计流程图
电子密码锁操作起来其实相当简单,最开始由LCD1602液晶显示需要用户在其上面输入密码,然后在键盘上按下之前设计好的几位数字密码,此时LCD上会显示输入的情况,再按下确认键,此时就存在两种情况,输入正确锁就会打开,反之,输入三遍都是错误,就会智能报警。
电子密码锁的密码如何进行设置,具体操作流程是:程序中一般密码设定在40H到45H之间,就像有的初始密码是六位数888888。通常情况下是通过功能键和数字键来进行设定的。开始先输入密码的长度,然后再输入对应位数的密码;按下确认键,这就意味着输入完毕。最后就等待给出的结果,上手容易。
5 系统测试仿真
5.1仿真界面说明
本项目通过Proteus来对系统进行测验,点开用软件绘制的系统电路图,和代码进行联机调试。仿真设计图如图5-1。仿真包括矩阵键盘、液晶显示、掉电存储、键盘电路、密码锁继电器控制。
图5-1 仿真界面
5.2开锁控制仿真
密码输入仿真验证正确之后,即可通过按键控制密码锁的开与关,点击确认键,表示密码输入完毕,此时就会进行开锁,如何肉眼看出锁已经开呢,就是通过继电器指示灯亮来判断的,这也意味着我们的密码输入没有错,并且继电器吸合。仿真界面如图5-3所示。
图5-3 密码锁控制仿真
6 总结
首先进行的是系统方案选择,方案的确定至关重要,如果前期方案确定出现问题,后期肯定会出现问题,不管是在硬件方面、软件方面。如果出现问题,就需要返回来继续修改方案,方案的选择阶段需要很多经验,这个是需要进行积累的。
系统的硬件设计,需要按照方案进行系统各个功能的电路设计。硬件的设计会觉得软件的设计难度,比如接口的定义等,都会决定软件的设计。接口的定义会决定后期实物组装的布局,如果接口定义不理想,在实物组装的时候就会很难设计布局,需要从新绘制电路图,严重会造成最终实物设计线路错综复杂,好的接口设计就会让线路设计美观、可靠。硬件电路设计也需要考虑后期调试便捷、方便,不可以只想这功能,调试也是非常重要的一个环节。
软件设计,需要按照功能进行,不可以整体进行,一个功能一个功能调试,代码要模块化设计,很多时候代码的BUG都是一些很简单的问题,有时候一个简单的问题,会调试很多天,所以代码设计方式很重要,而模块化代码设计就是最为常用的方案。模块化设计方便后期更改,查看漏洞也非常方便。
最终要对硬件、软件进行统一调试,焊接组合成一个整体并对其进行试运来检验设计是否合理有效。如果在检测系统上设计的更好完美,使用的场合会更多,但因为受到时间的限制,设计过程中没有时间也没有过多的精力去学习更多的传感器。
作者:01单片机设计