基于单片机的电子密码锁设计.docx

上传人:b****2 文档编号:1256202 上传时间:2023-04-30 格式:DOCX 页数:16 大小:201.37KB
下载 相关 举报
基于单片机的电子密码锁设计.docx_第1页
第1页 / 共16页
基于单片机的电子密码锁设计.docx_第2页
第2页 / 共16页
基于单片机的电子密码锁设计.docx_第3页
第3页 / 共16页
基于单片机的电子密码锁设计.docx_第4页
第4页 / 共16页
基于单片机的电子密码锁设计.docx_第5页
第5页 / 共16页
基于单片机的电子密码锁设计.docx_第6页
第6页 / 共16页
基于单片机的电子密码锁设计.docx_第7页
第7页 / 共16页
基于单片机的电子密码锁设计.docx_第8页
第8页 / 共16页
基于单片机的电子密码锁设计.docx_第9页
第9页 / 共16页
基于单片机的电子密码锁设计.docx_第10页
第10页 / 共16页
基于单片机的电子密码锁设计.docx_第11页
第11页 / 共16页
基于单片机的电子密码锁设计.docx_第12页
第12页 / 共16页
基于单片机的电子密码锁设计.docx_第13页
第13页 / 共16页
基于单片机的电子密码锁设计.docx_第14页
第14页 / 共16页
基于单片机的电子密码锁设计.docx_第15页
第15页 / 共16页
基于单片机的电子密码锁设计.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的电子密码锁设计.docx

《基于单片机的电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁设计.docx(16页珍藏版)》请在冰点文库上搜索。

基于单片机的电子密码锁设计.docx

基于单片机的电子密码锁设计

1.绪论

1.1引言

在日常生活和工作中,锁是每个人都离不开的,它是保护个人财产安全、保护资料档案的关键元素。

随着电子技术的飞速发展,传统弹子锁的缺点渐渐被放大,社会对新式电子密码锁的需求越来越大,前景广阔。

本课题主要采用单片机完成了一套具有按键输入、显示、解锁、报警及密码修改等多种功能的电子密码控制系统。

据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。

这种锁是通过键盘输入一组密码完成开锁过程。

研究这种锁的初衷,就是为提高锁的安全性。

由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。

电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。

电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。

但较实用的还是按键式电子密码锁。

目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。

1.2 电子密码锁的背景 

随着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。

在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。

(如指纹、眼底视网膜等)来控制锁的开启。

从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。

当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。

1.3 本设计特点

本系统由24C02和12864显示的电子密码锁设计单片机系统、4×3矩阵键盘、12864显示和报警系统等组成,具有设置、修改六位用户密码、超次报警、超次锁定、密码错误报警等功能(本设计由P0口控制LCD显示,密码正确则进入系统。

密码错误显示“密码错误,重新输入密码”)除上述基本的密码锁功能外,依据实际的情况还可以添加遥控功能。

本系统成本低廉,功能实用。

 

2.设计要求

2.1设计任务

设计一种基于单片机的密码锁

2.2设计要求

2.2.1密码用键盘输入(4-8位)

2.2.2用户可预置密码(4-8位)

2.2.3用LED数码管或LCD显示密码值,密码设置成功或开锁后显示“******”

2.2.4密码输入成功后开锁,密码输入错误时数码管或者LCD提示错误信息,并且红色的LED亮,三次输入错误后,扬声器报警。

 

3.硬件电路设计

3.1设计方案的选择

3.1.1方案一

采用数字密码锁电路的好处就是设计简单。

用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。

电路由两大部分组成:

密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。

密码锁电路包含:

键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。

3.1.2方案二

采用一种是用以80C51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。

其原理如图所示。

 

图3-1系统总设计结构图

3.1.3方案确定

通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。

 

另外从经济实用的角度出发,采用80C51单机,研制了一款具有防盗自动报警功能的电子密码锁。

该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有一定的推广价值。

3.2密码输入方式的选择 

3.2.1方案一

指纹输入识别 :

指纹识别技术主要涉及四个功能:

读取指纹图像、提取特征、保存数据和比对。

通过指纹读取设备读取到人体指纹的图像,然后要对原始图像进行初步的处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。

软件从指纹上找到被称为“节点”(minutiae)的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一性特征。

通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。

这些数据,通常称为模板。

通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果,从而判断输入结果的正确与否。

3.2.2方案二

矩阵键盘输入识别:

 由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。

  

行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。

通过不断读行线口线,或者中断方式触发键位扫描。

当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。

当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。

3.2.3方案确定

考虑到方案一软硬件太过复杂,而且成本也高,故不采用,而方案二每个按键都可通过程序赋予功能,从而完成密码识别本方案简单易行,故采用。

3.3主要元器件简介

3.3.124C02

串行E2PROM是基于I2C-BUS的存储器件,遵循二线制协议,由于其具有接口方便,体积小,数据掉电不丢失等特点,在仪器仪表及工业自动化控制中得到大量的应用。

随着世界上各公司对该器件的开发,市场上推出了许多牌号的24C02器件,甚至还有一些冒牌的24C02器件,这样就使批量生产的单片机控制系统的质量出现时好时坏的问题。

笔者经过大量的设计实践和试验摸索找出了24C02在应用中之所以出现数据被冲掉的原因,并总结了一套保护24C02数据安全的软硬件设计方法。

3.3.280C51

80C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。

采用40个引脚双列直插式DIP(DualInLinePackage),内有128个RAM单元及4K的ROM。

3.3.312864

12864液晶是一种统称,只说明类屏的一个特征,就是128*64个点构成。

对于液晶屏的特性则没有说明。

3.4硬件系统结构

3.4.1复位电路

单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。

无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。

在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效。

地址锁存信号ALE也为高电平。

根据实际情况选择如图2-1所示的复位电路。

该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。

增加手动复位按键是为了避免死机时无法可靠复位。

图3-2复位电路

3.4.2晶振电路 

80c51引脚XTAL1和XTAL2与晶体振荡器及电容C4、C5按图2-2所示方式连接。

晶振、电容C4/C5及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C4、C5的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C4、C5取值范围在5~30pF之间。

根据实际情况,本设计中采用12MHZ做系统的外部晶振[11]。

电容取值为20pF。

图3-3晶振电路

3.4.3存储电路 

AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。

AT24C02有一个16字节页写缓冲器。

该器件通过IC总线接口进行操作,有一个专门的写保护功能。

采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。

图3-4存储电路

3.4.4报警电路

报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P2.1引脚为低电平,三极管T3导喇叭发出噪鸣声报警。

图3-5报警电路

 

4.程序设计

4.1程序清单*****************************************************************************/

#include

#include<12864.h>

#include

#include<24C01.h>

#defineucharunsignedchar

#defineuintunsignedint

sbitLED1=P1^5;

sbitLED2=P1^6;

sbitINIT=P2^2;

sbitSOUND=P1^7;

ucharidatakey[6]={0,0,0,0,0,0};

ucharidataiic[6]={0,1,2,3,4,5};

voidpress(uchar*s)

{

uchardat;

//**************************************************

P3=0xf0;//保存第一位密码

while(P3==0xf0);

dat=key_scan();

if((dat!

=0x0a)&&(dat!

=0x0b))

{*s=dat;

Left();

star_12864(star,0x05,16);

}

s++;

//**************************************************

P3=0xf0;//保存第二位密码

while(P3==0xf0);

dat=key_scan();

if((dat!

=0x0a)&&(dat!

=0x0b))

{*s=dat;

Left();

star_12864(star,0x05,24);

}

s++;

//**************************************************

P3=0xf0;//保存第三位密码

while(P3==0xf0);

dat=key_scan();

if((dat!

=0x0a)&&(dat!

=0x0b))

{*s=dat;

Left();

star_12864(star,0x05,32);

}

s++;

//**************************************************

P3=0xf0;//保存第四位密码

while(P3==0xf0);

dat=key_scan();

if((dat!

=0x0a)&&(dat!

=0x0b))

{*s=dat;

Left();

star_12864(star,0x05,40);

}

s++;

//**************************************************

P3=0xf0;//保存第五位密码

while(P3==0xf0);

dat=key_scan();

if((dat!

=0x0a)&&(dat!

=0x0b))

{*s=dat;

Left();

star_12864(star,0x05,48);

}

s++;

//**************************************************

P3=0xf0;//保存第六位密码

while(P3==0xf0);

dat=key_scan();

if((dat!

=0x0a)&&(dat!

=0x0b))

{*s=dat;

Left();

star_12864(star,0x05,56);

}

//**************************************************

do{P3=0xf0;//键入Enter键盘继续执行下面语句,否则等待

while(P3==0xf0);

dat=key_scan();

}while(dat!

=0x0b);

}

voidDelay10ms(void)//延时10ms

{

uinti,j,k;

for(i=5;i>0;i--)

for(j=4;j>0;j--)

for(k=248;k>0;k--);

}

voidmain()

{

uchardat;

uchari=0,j=0,k;

ucharx;

LED1=1;

LED2=1;

SOUND=0;

INIT=1;

if(INIT==0)//密码初始化

{

x=SendB(iic,0x50,6);

Delay10ms();

}//首先从IIC器件中读出密码以供下面输入密码进行比较

x=ReadB(iic,0x50,6);

Init_12864();

//for(i=0;i<150;i++){Delay10ms();}

//**********************************若密码不正确,循环执行do{}while()********************************************

do

{

P3=0xf0;

while(P3==0xf0);

dat=key_scan();

}while(dat!

=0x0b);

if(dat==0x0b){

do{

LED1=1;

System();//显示:

"请输入密码"字幕

press(key);

if((key[0]==iic[0])&&(key[1]==iic[1])&&(key[2]==iic[2])&&(key[3]==iic[3])&&(key[4]==iic[4])&&(key[5]==iic[5]))//密码比较,若密码正确责进入系统,若密码不正确则显示密码错误,重新输入密码

{

true();

do

{

P3=0xf0;//键入1或2继续执行下面语句,否则等待

while(P3==0xf0);

dat=key_scan();

}while(dat!

=0x01&&dat!

=0x02);

if(dat==1)//开锁

{

LED1=0;

unlock();

for(i=0;i<100;i++){Delay10ms();}

continue;

}

if(dat==2)//修改密码

{

do{

System();

press(key);

again();

press(iic);

if((key[0]==iic[0])&&(key[1]==iic[1])&&(key[2]==iic[2])&&(key[3]==iic[3])&&(key[4]==iic[4])&&(key[5]==iic[5]))

{

succeed();//修改密码成功

for(i=0;i<100;i++){Delay10ms();}

Delay10ms();

x=SendB(iic,0x50,6);

Delay10ms();

x=ReadB(iic,0x50,6);break;

}

else//修改密码不成功,重新修改

{

repeat();

for(i=0;i<100;i++){Delay10ms();}

}

}while

(1);

}

}

else//密码不正确,重新输入密码

{

j++;

if(j==3)

{

for(i=0;i<8;i++)

{

LED2=0;

for(k=0;k<5;k++){Delay10ms();}

LED2=1;

for(k=0;k<5;k++){Delay10ms();}

}

j=0;

}

error();

for(i=0;i<50;i++){Delay10ms();}

}

}while

(1);

}

}

 

4.2proteus/keil仿真图

4.2.1电子密码锁开机仿真结果

 

4.2.2电子密码锁修改密码仿真结果

5.总结

使用单片机的制作的电子密码锁具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有一点的实用性。

该电路设计还具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码等多种功能。

通过本次课程设计,让我对单片机有了进一步的熟悉和了解,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。

特别感谢为辅导我们这次课程设计,一直辛苦工作的梁芳老师。

 

参考文献

[1]李建忠余新拴闵永智.单片机原理及应用.(第三版).西安电子科技大学出版社.2013.10

[2]王为青程国钢.单片机KeilCx51应用开发技术.人民邮电出版社,2007.2

[3]朱定华.单片机原理及接口技术实验.北京:

清华大学出版社.北方交通大学出版社.2002.01

[4]蔡明文冯先成.单片机课程设计.武汉:

华中科技及大学出版社.2007.08

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2