电子密码锁的设计与制作Word文档下载推荐.docx
《电子密码锁的设计与制作Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电子密码锁的设计与制作Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤为突出,传统的机械锁,由于其构造的简单,安全性能低,无法满足人们的需要。
在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用显得日趋重要[1]。
本次设计的题目是基于单片机的电子密码锁的设计,系统由AT89C51作为主控芯片,结合外围的键盘输入、数码管显示显示、报警、开锁等电路模块。
它能完成以下功能:
正确输入密码前提下,开锁;
错误输入密码情况下,报警;
密码可以根据用户需要更改。
本密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,具有一定的推广价值。
关键字:
电子密码锁,报警,LED显示
TheDesignofElectronicPasswordAnti-theftLock
Wangchongxiao
(ZhejiangUniversityofScienceandTechnology)
Abstract:
Withthedevelopmentofthepeople'
slivingstandard,howtoachievethefamilysecurityisbecomingimportantinparticular.Thetraditionalmechanicallockisunabletomeetthepeople'
sneedsbecauseofitssimplestructure,lowsecurity.Nowadays,withthecontinuousdevelopmentofthescienceandtechnology,Electronicpasswordanti-theftlockplaysamoreimportantroleasthesecurityguards.
ThemainpaperisaboutthedesignelectroniccodelockbasedontheMCU.ThesystemiscomposedwithAT89C51,andtheperipheralcircuitssuchasLCDdisplay,alarmingcircuit.Itcanaccomplishthefollowingfunction:
openthelockwithacorrectlypassword,giveanalarmwiththemistakepassword,changethepasswordifthehostwant.
Thelockhassomefeatureslikeareasonabledesignmethods,simpletowork,lowcostandsecurity.Italsohassomepromotionvalue.
Keywords:
Electroniccodelock,Alarm,LEDdisplay
目录
第一章引言1
第二章方案设计1
2.1方案选择1
2.1.3基于AT89C51单片机的电子密码锁设计1
2.1.3采用CMOS实现的数字电子密码锁设计1
2.1.3采用μnSPTM凌阳单片机的电子密码锁设计2
2.2方案确定3
2.3方案论证3
第三章基于AT89C51单片机的电子密码锁的总体设计3
3.1键盘输入模块4
3.2显示模块4
3.3报警模块4
3.4开锁模块4
第四章程序软件模块设计4
4.1程序流程图4
4.2主函数流程图6
4.3子程序举例7
4.3.1键盘检测函数7
4.3.2密码判断函数8
4.3.3密码重置函数与新密码写入函数8
第五章整体电路测试11
第六章总结11
附录一总电路图12
附录二程序代码12
参考文献19
第一章引言
随着人们生活水平的不断提高,安全问题已经是人们关注的重点之一,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,而且不需要用户携带钥匙.设计本课题时构思三种方案:
一种是用以AT89C2051为核心的单片机控制方案;
第二种是用以采用CMOS实现的数字电子电路控制方案;
第三种是采用μnSPTM凌阳单片机控制方案。
第二章方案设计
2.1方案选择
2.1.3基于AT89C51单片机的电子密码锁设计
选择AT89C51作为主控制器。
AT89C51来控制电路的工作电路,通过AT89C51编辑程序来实现控制硬件电路的工作方式。
实现由键盘输入密码后,AT89C51扫描输入键,将输入的密码和设定好的密码进行比较,当相同时即输出开锁信号,即电路实现开锁,而当不相等时则计数错误次数,且显示重新输入状态,三次输入错误则发出报警,可重置密码,重置密码时,先要输入原先的密码,输入正确后方可输入新密码。
其工作的原理方案如下图所示:
单片机
图2-1基于AT89C2051单片机的电子密码锁设计方案
2.1.3采用CMOS实现的数字电子密码锁设计
数字密码锁具有操作简便、保密性的特点,而采用集成电路组成数字CMOS锁控制装置,更兼有电源范围宽、功耗低、工作可靠的优点,可广泛用于家庭及保险等场合,是目前比较理想的保安锁具。
数字密码锁的实际控制对象是电磁锁的电磁线圈,可规定线圈断电为落锁或加锁,线圈通电为开锁。
电磁线圈一般为交流线圈(特殊情况下也可采用直流线圈),可用数字密码电路驱动中间继电器来控制其电流通断。
其原理方框图如下所示:
[6]
YNY
内外单键落锁
电路
室内单键开锁
Y有效3位8位Y有效
图2-2利用CMOS设计的电子密码锁原理方框图
2.1.3采用μnSPTM凌阳单片机的电子密码锁设计
μnSPTM单片机就是基于SOC的新型的数/模混合的系统级芯片。
在一个芯片内集成了单片机数据采集或控制系统所需的模拟和数字外设及其它功能部件。
凌阳公司推出的单片机有8位、16位共50多种不同的IC芯片型号及其产品,以适用于不同的应用领域,用户可根据需要选择相应的单片机系统。
凌阳单片机顺应了单片机技术的发展趋势,其系统芯片具有集成度高、数/模混合、功能全、低功耗、低电压和易于开发等特点。
另外,凌阳单片机还增加了适合于DSP的某些特殊指令;
有些系列的单片机还嵌入了LCD控制/驱动和双音多频发生器功能。
这些都进一步扩大了单片机的应用范围。
凌阳公司为μnSPTM单片机的应用开发提供了较为完善的开发支持工具:
硬件工具和软件工具。
硬件工具即为μnSPTMCPU系统仿真板,用于程序的二进制代码的下载调试;
软件工具按其操作系统分为DOS环境下的分立工具和Windows环境下操作的集成工具。
开发系统提供了高性能的C语言编译器Gcc,它采用符合ANSI标准的C语言编程,并提供了C语言的编程函数库(CLib)。
开发系统中还提供了凌阳公司推出的按照凌阳音频编码方法进行语音压缩算法的SCAMLib算法库,用于开发和实现芯片的语音功能,从而使得凌阳单片机在数字信号及语音识别应用领域中显示出更大的优越性。
2.2方案确定
我们采用第一种方案,基于AT89C51单片机控制的电子密码锁设计,因为我们在校学习的单片机是MCS—51单片机,而凌阳单片机的指令和MCS—51有较大的区别,对于这次设计完全可以使用MCS—51单片机来实现,而不需要花大量的时间在学习一种新型单片机上面,所以不采用凌阳单片机来完成。
基于CMOS的数字电子密码锁设计主要是因为它的硬件电路比较复杂,其不需要用到程序,单纯的应用多种逻辑电子器件来实现,即可以做到总体设计简单,但是由于其整体使用的是硬件电路,所以总的电路原理比较庞大,而且根据以往的实验经验,我们知道因为硬件电路的可靠性不高,很容易就受到搬拆等过程而使信用降低。
MCS—51是一个可以比较容易实现的方案选择,所以在这里我选了和MCS—51的功能和指令可以兼容的AT89C51
2.3方案论证
基于AT89C51单片机的电子密码锁设计是由4*3键盘输入键值,然后通过AT89C51单片机对读入的键值进行处理,通过报警喇叭以及LED灯和数码显示管作出相应的响应。
本次设计实现的功能如下:
1.当键盘有输入密码时,电路则将输入密码和原始密码进行比较,如果密码正确则LED亮3秒,错误则发出2秒的喇叭报警,然后自动刷新,实现允许重新输入功能。
2.如果连续输入三次及三次以上的错误密码,发出15秒的报警并锁定键盘1分钟
3.系统设有八位原始密码,可以重置密码,重置密码长度任意,但不超过12位
第三章基于AT89C51单片机的电子密码锁的总体设计
该电子密码锁系统包括:
单片机程序控制、数字输入键盘、喇叭、数码显示管和LED灯。
原理图如下图所示:
图3-1电子密码锁的原理图
3.1键盘输入模块
由于本设计所用到的按键数量较多而不适合用独立按键式键盘。
采用的是矩阵式按键键盘,它由行和列组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。
本设计中使用的这个4×
3键盘,前十个键代表数字0—9,最后两个按键分别表示确定键和密码重置键。
3.2显示模块
本次设计的显示模块由一个数码显示管组成,当按下数字键时,数码显示管显示数字,当按下确定键和密码重置键时,不显示任何数值。
3.3报警模块
报警模块由一个喇叭组成,当输入密码错误时,报警器发出2秒报警同时锁定键盘,当连续输入三次及三级以上错误密码时,报警器发出15秒报警,并且锁定键盘1分钟。
3.4开锁模块
开锁模块由一个LED灯进行模拟,密码正确时,LED灯亮三秒。
第四章程序软件模块设计
4.1程序流程图
程序流程图如下所示:
N
Y
N
YYY
Y
图4.1程序流程图
4.2主函数流程图
主函数流程图如下:
Y
N
Y
N
图4.2主函数流程图
4.3子程序举例
4.3.1键盘检测函数
voiddetect(void)//按键检测,直到检测到有按键按下,记录按键值,循环结束
{
unsignedcharF,L,i,j,k,temp;
F=FALSE;
//F为是否检测到按键的标志位
while(!
F)
P2=0xff;
L=0x01;
for(i=0;
i<
4;
i++)//列线扫描
P2=(~L);
L=L<
<
1;
temp=P2;
temp=temp&
0x70;
if(temp!
=0x70)//判断是否有按键输入
{
for(j=50;
j>
0;
j--)
for(k=200;
k>
k--);
//延迟,去抖动
0x7