电子密码锁文档格式.docx
- 文档编号:21747450
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:39
- 大小:175.43KB
电子密码锁文档格式.docx
《电子密码锁文档格式.docx》由会员分享,可在线阅读,更多相关《电子密码锁文档格式.docx(39页珍藏版)》请在冰豆网上搜索。
3.8、其他10
4.软件设计11
5.系统操作说明12
6.结束语12
7.参考文献13
8.附录14
8.1、附录Ⅰ完整源程序14
1.引言
随着科技的不断发展,人们越来越重视对具有私密、重要物质的场所的安全性,所以具有报警功能的电子密码锁在日常生活中用的越来越多,因此研究与设计单片机为主要控制器的电子密码锁具有工程意义和解决日常应用需求的价值。
本此课程设计主要是以单片机STC89C52型号为主要控制器的电子密码锁的设计并介绍其设计方法和设计的成果。
1.1、电子密码锁的背景与发展趋势
随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。
这种锁是通过键盘输入一组密码完成开锁过程。
研究这种锁的初衷,就是为提高锁的安全性。
由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。
电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
但较实用的还是按键式电子密码锁。
20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。
目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。
在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。
但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。
国内的不少企业也引进了世界上先进的技术,发展前景非常可观。
希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
在实际应用中,由于程序容易跑飞,系统的可靠性能较差。
基于现场可编程逻辑门阵列FPGA器件的电子密码锁,用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。
由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。
1.2、电子密码锁的介绍
电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
电子密码锁有以下性能特点:
1.保密性好,编码量多,远远大于弹子锁。
随机开锁成功率几乎为零。
2.密码可变。
用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。
3.误码输入保护。
当输入密码多次错误时,报警系统自动启动。
4.电子密码锁操作简单易行,一学即会。
5.干扰码功能。
在输入正确密码前可输入任意码。
6.安保功能。
密码出错过多时,将锁定键盘。
7.操作方便。
1.3、本设计所要实现的基本要求
(1)密码通过键盘输入,若密码正确,则将锁打开。
(2)报警、锁定键盘功能。
密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。
(3)电子密码锁的设计主要由三部分组成:
4×
4
矩阵键盘接口电路、密码锁的控制电路、1602LCD显示电路。
另外系统还有LED提示灯,报警蜂鸣器等。
(4)使用1602LCD显示器显示,给用户相应提示。
(5)修改密码,通过修改密码增强密码锁可靠性。
(6)系统具有一键还原出厂密码功能,如果对密码管理不善可以使用本功能进行密码还原。
(7)成功开锁后,通过关锁键关锁。
2.密码锁总体设计
2.1、基本工作原理
电子密码锁结构如图2-1。
图2-1.电子密码锁结构图
电子密码锁以STC89C52为主控芯片,采用4x4矩阵键盘作为输入设备,同时外接24C02EPROM用于存储用户使用的密码。
此外采用LCD作为显示协助用户使用。
当密码验证正确时,通过开锁模块中继电器控制开锁,然后手动关锁。
当密码验证错误时,将发出警报一小段时间后方可继续输入密码。
当密码输错3次,将持续发出警报,并且锁定键盘。
用户通过LCD提示,使用键盘输入密码,如果正确则由单片机控制开锁。
若密码错误,由单片机控制报警。
通过24C02存储用户密码,所以支持修改密码。
2.2、总体设计
2.2.1、各模块方案选择
(1)单片机的选择
方案一:
采用AT89C51单片机,内部RAM为128、内部ROM全部采用FLASHROM、最高时钟频率可达24MHz且能以3V超低压工作。
但不支持ISP在线编程技术、内部ROM仅为4KB不利于功能扩展。
方案二:
采用AT89C52单片机,它具同时被AT98C51的全部功能外,内部RAM为256,内部ROM为8KB有利于功能扩展。
(2)键盘的选择
使用独立式按键来控制
使用独立式按键来控制数码管的显示,这样需要很多的按键,每个按键实现一个能,易于控制,程序编写简单,但是每个按键都要接上拉电阻,占用了单片机大量的I/O接口资源,要对单片机外扩I/O口,并且在电路焊接方面又不方便,还要浪费大量的资源,提高了成本。
采用矩阵式键来控制
把按键按行列组成矩阵,在行列交点上都对应有一个键,这样使用的按键要少,为判定有无键被按下以及被按键的位置,这种称为键扫描法。
这样虽然提高了编程难度,但是节约了单片机大量的I/O口,免去了上拉电阻为焊接带来了方便,提高了整块电路板的美观度。
(3)显示模块选择
数码管显示
采用LED数码管动态扫显示方法,只需一块数码管驱动器芯片和一块译码器芯片就可以驱动多个数码管,价格便宜,只需要7个I/O口就可以同时驱动8个数码管显示。
硬件利用效率高,驱动程序容易理解和编程。
液晶显示
采用LCD液晶显示,显示的位数多,由单片机驱动。
此方案有美观、显示清晰多样的优点。
但同时液晶显示器的驱动程序复杂,编程困难,成本高,价格昂贵,浪费大量的资源。
(4)外部存储器ROM选择
方案:
采用24C02EPROM,具有记忆功能,并且在掉电时可防止数据丢失。
(5)报警模块的选择
采用语音报警,虽然可以使整个系统更加完美,但是会使程序更加复杂而且提高了整个系统的造价。
采用发光二极管和蜂鸣器来报警,可以发出声光报警且降低了成本。
(6)开锁模块选择
采用控制继电器来控制锁的开关,简单便利。
2.2.2、键盘、显示功能的定义
4x4矩阵键盘组成输入加功能键,对应按键如图2-2。
1
2
3
4
5
6
7
8
9
确认
删除
输入密码
修改密码
返回
未定义
图2-2矩阵键盘定义图
0到9:
数字密码输入键。
确认:
密码输入完成确认键。
删除:
密码输入错误退格删除键。
输入密码:
选择输入密码功能键。
修改密码:
选择修改密码功能键。
返回:
返回到密码输入或修改选择页面键。
此外还有系统复位键,恢复出厂密码键和关锁键。
复位键:
使报警锁定消除,单片机进入初始化。
恢复出厂密码键:
使密码锁密码恢复到出厂密码。
关锁键:
实现开锁后关锁功能。
2.3、软件总体设计
2.3.1、存储单元的分配、标志位的定义
矩阵键盘扫描定义:
ENTER=0x0a;
BACKSPACE=0x0b;
ucharidatapassword0[8]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
设置初始密码为01234567;
LCD1602数据命令选择端:
LCDRS=P2^7;
LCD1602读写选择端:
LCDRW=P2^6;
LCD1602使能端LCDEN=P2^5;
密码锁开锁控制端:
open=P2^2;
报警控制端:
warn=P3^4;
恢复出厂密码端:
reset=P3^2;
密码锁关锁控制端:
close=P2^0。
2.3.2、主程序框图及清单输入修改
主程序流程图如图2-3所示:
N
NN
YY
Y
Y图2-3主程序流程图
3.硬件设计
本设计包括7个电路模块,其中包括:
晶振电路模块、复位电路模块、LCD显示电路模块、矩阵键盘电路模块、24C02电路模块、开锁电路模块、报警电路模块。
3.1、复位电路模块
单片机的复位本设计手动复位,复位的作用是防止程序由于某些原因跑飞,通过此键来保证单片机运行的可靠性,设计电路如下图所示:
图3-1复位电路模块
3.2、晶振电路模块
晶振电路这里采用的是内部振荡器接法,晶振的频率为12MHZ,它为单片机提供内部时钟源,设计电路如下图所示:
图3-2晶振电路模块
3.3、矩阵键盘电路模块
矩阵键盘包括0到9数字键和确认键,退格键,输入密码选择键,修改密码选择键和返回键。
其中行扫描接P1.0到P1.3,列扫描接P1.4到P1.7。
设计电路如下图所示:
图3-3矩阵键盘电路模块
3.4、LCD显示电路模块
单片机的P0.0~P0.7连接液晶显示器的7~14脚(8位数据),实现从单片机向液晶显示器传输数据的功能;
P2.7连接液晶4脚(RS端),从而实现单片机向其发送命令或数据功能;
P2.6连接液晶的5脚(RW端),从而实现单片机对其读写的功能;
P2.5连接液晶的6脚(EN端),这个引脚是用来编程控制lcd使能的。
还有lcd显示器的3引脚连接10K欧姆的可变电阻器,当改变它的阻值大小时可以改变lcd显示的对比度如,设计电路下图所示:
图3-4LCD显示电路模块
3.5、24C02电路模块
24C02数据输入输出端SDA接P3.1,时钟输入端接P3.0,写读保护端WP与地址输入端A2、A1、A0接地,且WP接P3.2中间加个按键。
设计电路下图所示:
3-5EPROM24C02电路模块
3.6、开锁电路模块
开锁模块通过控制PNP三极管c9012的导通截止来驱动继电器工作,当继电器导通时,开锁灯点亮提示,继电器断开时开锁灯熄灭。
3-6开锁电路模块
3.7、报警电路模块
报警电路模块中的蜂鸣器和LED通过三极管c9012的导通截止来驱动。
三极管基极接P3.4。
3.7报警电路模块
3.8、其他
由于无需使用外部ROM,所以EA接Vcc。
4.软件设计
//-------------------------------------------------
int0()interrupt0using0//外部中断0服务程序,第0组工作寄存器
{ucharkey;
//恢复原始密码
EA=0;
EX0=0;
while(!
reset);
EA=1;
EX0=1;
write_cmd(0x01);
//清屏
write_cmd(0x06);
//整屏显示不移动,光标不动
write_cmd(0x80);
//设置光标位置在第一行首位
show_char("
resetpassword"
);
//向LCD输入一串字符
write_add(password0,0x00,8);
write_cmd(0x80+0x40);
pressback"
//提示按返回
}
//--------------------------------------------------//
main()
{
IT0=1;
while
(1)
{
password_deal();
//密码处理函数
}
}
5.系统操作说明
接通电源,按下电源开关,即进入主界面。
根据LCD提示,选择输入密码或修改密码,然后进行密码输入或修改。
若进入密码输入,则在输完8位密码后按确认键。
(本密码锁只识别8位密码,低于8位或高于八位均视为密码错误)密码正确则开锁,密码错误则提示错误。
若错误超过3次,就会锁定键盘并报警。
此时选复位键才能解除报警。
若进入密码修改,则先输入旧密码(超过三次错误同样会锁定键盘和报警),正确后进入新密码输入界面,输入新密码(8位),确认后再次输入,当两次输入密码相同时,密码修改成功,当两次输入密码不同时,返回选择密码输入或修改主界面。
在其中任何时候(除了键盘被锁之外)按下返回键,都会返回到选择密码输入或修改主界面。
6.结束语
此次设计的基于单片机的电子密码锁实现了密码锁的常用功能和技术指标。
本次课程设计所遇到最大的困难是在编程仿真时发现自己所编程序存在很多漏洞,导致仿真失败、功能残缺等,然后只能回过头去找程序漏洞出在哪。
刚开始以为此次课程设计并不是一件太难的事,但自己亲身体验过后可以感受到编程调试的确是一件不容易的事,但在成功之后的那种喜悦感又是不言而喻的。
在这次历时两周的课程设计过程中,通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。
在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。
虽然这个设计做的也不太好,但是在设计过程中所学到的东西设计的最大收获和财富,使我终身受益。
课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说是无处不在。
因此作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。
对我而言,知识上的收获重要,精神上的丰收更加可喜。
让我知道了学无止境的道理。
我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。
挫折是一份财富,经历是一份拥有。
7.参考文献
[1]郭天祥.51单片机C语言教程,2008,电子工业出版社。
[2]李全利.单片机原理及接口技术,2008,高等教育出版社。
[3]皮大能.电子密码锁功能介绍.单片机课程设计指导书,2010,北京理工大学出版社。
[4]宋戈.指纹识别密码锁.51单片机应用开发范例大全,2012,人民邮电出版社。
8.附录
8.1、附录Ⅰ完整源程序
#include<
reg52.h>
string.h>
#include"
24c02.h"
#defineucharunsignedchar
#defineuintunsignedint
#defineENTER0x0a
#defineBACKSPACE0x0b
//设置初始密码为01234567
sbitLCDRS=P2^7;
sbitLCDRW=P2^6;
sbitLCDEN=P2^5;
sbitopen=P2^2;
sbitwarn=P3^4;
sbitreset=P3^2;
sbitclose=P2^0;
externuinti=0;
delay(unsignedintx)//延时程序,延时ims
{unsignedinti,j;
for(i=x;
i>
0;
i--)
for(j=110;
j>
j--);
//---------------------------------------------------//
//LCD1062驱动程序
write_cmd(ucharx)//LCD控制写入函数
{
LCDRW=0;
//LCD设置为写状态
LCDRS=0;
//LCD设置为控制状态
delay(5);
//延时
LCDEN=1;
//开使能
P0=x;
//输入命令
LCDEN=0;
//关使能,执行命令
write_Data(ucharx)
LCDRS=1;
//LCD设置为数据状态
//输入数据
//管使能,显示数据
lcd_initialize()//LCD初始化
write_cmd(0x38);
//显示模式设置
//清屏
write_cmd(0x0c);
//整屏右移,同时光标随之移动
show_one_char(ucharx)//向LCD输入一个字符
write_Data(x);
show_char(uchars[])//向LCD输入一串字符
uchari;
for(i=0;
;
i++){
show_one_char(s[i]);
if(s[i+1]=='
\0'
)
break;
}
//密码输入
keyboard_input_change(uchar*p)//输入修改按键扫描函数
uchartemp,key=0Xff;
P1=0xf7;
//第4行
temp=P1;
temp=temp&
0xf0;
//取高4位(列)
if(temp!
=0xf0)
delay(10);
//按键去抖
temp=P1;
temp=temp&
if(temp!
{
temp=P1;
switch(temp)
{
case0xe7:
key=12;
break;
case0xd7:
key=13;
case0xb7:
{key=14;
*p=1;
}break;
default:
key=0xff;
}
while(temp!
{//等待按键释放
temp=P1;
temp=temp&
}
}
returnkey;
//键盘被按下返回key值,未被按下返回值为0xff
//---------------------------------------------------
keyboard_input_password()//密码输入扫描函数
P1=0xfe;
/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 密码锁