电子密码锁的设计与实现1文档格式.docx
- 文档编号:22324647
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:1.38MB
电子密码锁的设计与实现1文档格式.docx
《电子密码锁的设计与实现1文档格式.docx》由会员分享,可在线阅读,更多相关《电子密码锁的设计与实现1文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
但较实用的还是按键式电子密码锁。
20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。
目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛使用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。
在我国电子锁整体水平尚处于国际上七八十年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。
但国内自行研制开发的电子锁,其市场结构尚未形成,使用还不广泛。
国内的不少企业也引进了世界上先进的技术,发展前景非常可观。
希望通过不断的努力,使电子密码锁在我国也能得到广泛使用。
2功能设计
1完成相应C语言程序的编写。
定义相关函数,具体包括延时函数、中断函数、扫描函数、数码管显示函数和主函数等。
2在Keil环境下编译程序,生成.hex文件,要求程序编译正确,原理清楚。
3设计电子密码锁原理图,尽量有一定复杂度和难度,要求设计简洁、易懂。
4在Protues环境下完成电路原理图的绘制和仿真。
要求正确绘制电路图,完成其参数的定义和元器件的连接,注意为单片机加载.hex文件,其他包括键盘扫描电路,数码管显示电路和开锁电路的设计等等。
系统上电后,要求正确仿真,即输入所需求的四位密码,系统正确运行,模拟开锁。
分析仿真结果,并为硬件的制作打下基础。
5硬件制作和调试。
要求自己选用相关元件,选用电路板等实现硬件的制作。
完成后,自己调试运行,要求接入12V直流电源,输入四位密码,完成开锁的模拟实现过程。
找出相关问题,并进行改进。
6结果分析。
总体完成后,对整个系统进行总结,分析优点和缺点,撰写、完善实验报告,得出实验结论。
3总体方案设计
开始设计的时候,考虑到两个设计方案,分别如下:
方案一:
采用数字电路控制。
其原理方框图如图1所示。
图1数字密码锁电路方案
采用数字密码锁电路的好处就是设计简单。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;
如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。
电路由两大部分组成:
密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:
键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
方案二:
采用一种是用以AT89C52为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
其原理如图2所示。
AT89C52
单片机
矩阵
键盘
控制
数码管显示电路
指示电路
电源接入
图2单片机控制方案
通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
本方案采用一种是用以AT89C52为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
初步设计思路如下:
输入密码用矩形键盘,包括数字键和功能键。
数码管显示输入的四位密码密码,用四位共阳极数码管发光显示数码,从而控制各位显示器进行显示。
用发光二极管代替开锁的电路,发光表示开锁。
打开电源后,显示器显示“0000”,设原始密码为“6666”,只要输入此密码便可开门。
按“0”键,清除显示器为“0000”。
软件的设计主要包括键盘键值的读取、数码管显示程序、密码比较程序、中断程序和延时程序等。
4电路原理图设计
4.1键盘电路设计
使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘和单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
其原理如图3。
图3矩阵键盘
每一条水平(行线)和垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×
M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:
一种是常用的逐行扫描查询法;
另一种是速度较快的线反转法。
对照图3所示的4×
4键盘,说明逐行扫描法和线反转法工作原理。
1扫描原理:
即把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
比如说扫描码送入01111111,前面的0111是代表此时扫描第一行P1.0列,而后面的1111是让读取的4行接脚先设为VDD,若此时第一行的第三列按键被按下,那读取的结果就会变成01111101(注意1111变成1101),其中LSB的第三个bit会由1变成0,这是因为这个按键被按下之后,会被垂直的扫描码电位short,而把读取的LSB的bit电位拉到0,此即为扫描原理。
由于这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让系统误判为多次输入同一按键,我们必须在侦测到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。
2线反转法原理:
先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。
方法是:
向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。
如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。
判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。
依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;
如果不全为1,则所按下的键必在此列,而且是在和零电平行线相交的交点上的那个键。
本设计中采用键盘逐行扫描法。
4.2数码管显示电路设计
本系统设计的显示电路是为了给使用者以提示而设置的。
本系统的显示采用串行显示的方式,使用单片机的串行口,就可以完成单片机的显示功能。
并使用四位共阳极数码管作为输入密码的显示,很直观、清晰。
显示电路的电路原理图如图4所示。
图4数码管显示电路
4.3开锁电路设计
在本次设计中,基于节省材料的原则,暂时用LED发光管代替电磁锁(在实际设计中,则用一个继电器代替电子锁模拟开锁过程),发光管亮,表示开锁;
灭,表示没有开锁。
电路图如5所示。
发光管发光,即表示密码输入正确,表示开锁;
密码输入错误,则LED发光管不亮。
图5开锁电路
5程序设计
5.1基本设计思路
电子密码锁工作的主要过程是由数码管开始输入密码,通过键盘输入密码,同时数码管显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或其他处理。
密码的设定是一个很重要的部分,在此程序中密码是固定的“6666”,采用四位密码。
用C语言编写程序代码,具体设计包括头文件及其相关定义、键盘扫描子程序、数码管显示子程序、中断程序、延时程序以及主程序设计等。
编写完毕后,用Keil软件进行编译,生成.hex文件。
相关的一些关键子程序设计如下。
5.2各子程序设计
1头文件即相关定义
#include<
reg51.h>
#defineuintunsignedint
#defineucharunsignedchar
sbitP17=P1^7;
sbitP16=P1^6;
sbitP15=P1^5;
sbitP14=P1^4;
sbitdian=P3^0;
uintcount=0,num=0,k,keyword=6666;
Uchar
table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
2键盘扫描子程序
uintkeyscan()
{
uchartemp,keynum;
P1=0xff;
P17=0;
//**************扫描第一行**********************
temp=P1;
temp&
=0x0f;
if(temp!
=0x0f)
{
delay(10);
switch(temp)
case0x0e:
keynum=0;
break;
case0x0d:
keynum=1;
case0x0b:
keynum=2;
case0x07:
keynum=3;
}
while(temp!
P16=0;
//**************扫描第二行**********************
keynum=4;
keynum=5;
keynum=6;
keynum=7;
P15=0;
//**************扫描第三行**********************
keynum=8;
keynum=9;
keynum=10;
keynum=11;
returnkeynum;
}
3数码管显示子程序
voidDisplay(uintnum)
uintge,shi,bai,qian;
qian=num/1000;
P0=table[qian];
P2=0xfe;
P2=0xff;
bai=num%1000/100;
P0=table[bai];
P2=0xfd;
shi=num%100/10;
P0=table[shi];
P2=0xfb;
ge=num%10;
P0=table[ge];
P2=0xf7;
voidInit(void)
EA=1;
//开总中断
EX1=1;
//开外部中断0
IT1=0;
//设置为电平触发方式
4中断程序
voidInit1()interrupt2
count=keyscan();
num=num*10+count;
if(num>
9999)
num=0;
if(num==keyword)
dian=1;
delay(5000);
dian=0;
5延时程序
voiddelay(uinti)
uintj;
for(;
i>
0;
i--)
for(j=0;
j<
125;
j++);
6主程序
voidmain(void)
{
uinti,count1;
Init();
while
(1)
//调用键盘扫描子程序
Display(num);
6软件仿真结果
本次调试采用Protues软件仿真。
首先设计电子密码锁的源程序,源程序经过编译后,生成的目标文件经过仿真调试。
完成后可以进行相关调试和仿真。
1系统上电后,初始状态如图所示,显示四位“0”。
图6初始状态
2使用按键,输入密码“6666”后,数码管显示如图所示。
图7数码管显示所输入的密码
输入四位密码“6666”后,因为密码正确输入,所以用来代替电磁锁的LED发光管D1会发光并持续一段时间,表明密码输入正确,正确开锁。
如图8所示:
图8密码正确开锁
7硬件制作和调试
Ptotues仿真正确后,可以选购材料进行硬件的制作。
可以选用万用电路板为载体,选用相关电阻、电容、和门电路、芯片等进行制作,注意精确完成单片机程序的烧录。
焊接过程一定要细心、耐心。
电子密码锁在实物硬件制作中,就可以抛去先前仿真中使用的作为开锁仿真的发光LED灯,选用一个内部具有微电继电器的锁芯结构来代替,生动真实的模拟开锁的过程。
本次电路焊接较为复杂,鉴于经验缺乏,焊接出来的电路较为凌乱,以后需要不断改进,但是基本实现了所有功能。
具体硬件电路如下图所示:
图9硬件电路
输入密码“6666”后,开锁电路控制的锁芯结构会自动弹出,演示开锁过程。
但是注意只有当密码正确时,单片机才能控制电子锁内的微型继电器吸起。
当继电器吸起以后带动锁杆伸缩,这时,锁勾在弹簧的作用下弹起,完成本次开锁。
如图所示:
图10开锁过程演示
8结论
本设计优缺点以及改进方法总结如下:
本次设计中,大体而言实现了预设要求,从选题到编程,从绘制电路图到仿真,一直到最后硬件的制作,完成了一次系统性的单片机仿真研究,实在是一次极其有意义的经历和经验。
但是,由于自身这方面经验还是缺乏,对单片机仿真和硬件的制作还是缺乏一定理解,因此此次研究只是注重了单片机密码锁的最基本方面,即密码初始化、输入密码、密码正确开锁方面,因此只把密码“6666”固化在程序当中,不可修改,这对于现实密码锁的研究是有很大局限的,即忽略掉了修改密码和输入次数多报警这方面,整体考虑不是很完全,因此还有很大的改进的空间。
以后要加强单片机知识的学习,加深对单片机接口定义以及串行、并行工作原理的理解。
这一方面来说,是在以后的单片机设计中要重点考虑的问题。
参考文献
[1]何宏主编.单片机原理和接口技术.北京:
国防工业出版社.2006.07
[2]杨西明,朱骐主编
.单片机编程和使用入门.北京:
机械工业出版社
.2004.06
[3]叶启明.单片机制作的新型安全密码锁[J].家庭电子,2005,(10)
[4]郭海英.基于单片机的电子安全密码锁的设计[M].现代电子技术,2005,(13)
[5]李明喜.新型电子密码锁的设计[J].机电产品开发和创新,2004,(03)
[6]董继成.一种新型安全的单片机密码锁[J].电子技术,2004,(03)
[7]路而红.专用集成电路设计和电子设计自动化.北京:
清华大学出版社,2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 密码锁 设计 实现