基于单片机的电子密码锁设计.docx
《基于单片机的电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁设计.docx(41页珍藏版)》请在冰豆网上搜索。
基于单片机的电子密码锁设计
毕业设计
学生姓名
学号
学院
物理与电子电气工程学院
专业
电子信息工程
题目
基于单片机的电子密码锁设计
指导教师
讲师/硕士
2014
年
5
月
毕业论文独创性声明
本人郑重声明:
本论文是我个人在导师指导下进行的研究工作及取得的研究成果。
本论文除引文外所有实验、数据和有关材料均是真实的。
尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或者撰写过的研究成果。
其他同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
作者签名:
__________
日期:
_________
摘要:
随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器,所以具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少,安全性能差的缺点。
本课题设计了一种基于单片机的电子密码锁,这种电子密码锁以单片机作为数据处理主控芯片。
电子密码锁的设计主要由四部分组成:
4×4矩阵键盘接口电路、以AT89S51芯片为核心的密码锁的数据处理及控制电路、掉电情况下依然能保存密码的EEPROM存储器芯片。
另外系统还有LED提示灯,报警蜂鸣器,单片机复位电路等。
电子密码锁设计的关键问题是实现密码的输入、清除、开锁、更改等功能。
结合这种情况,本文对单片机的电子密码锁的设计进行了分析和探究。
关键词:
AT89S51,电子密码锁,报警
Abstract:
Alongwiththeelectronicproductstointellectualizedandthemicrominiaturizedunceasingdevelopment,themonolithicintegratedcircuithasbecomeintheelectronicproductsdevelopmentandthedevelopmentthefirstchoicecontroller,thereforehassecurityreportstothepolicethefunctionelectronicpasswordcontrolsystemtoreplacetraditionalgraduallythemechanicalpasswordcontrolsystem,overcamethemechanicalpasswordcontrolpasswordquantitytobefew,secureenergybalanceshortcoming.Thistopichasdesignedonekindbasedonthemonolithicintegratedcircuitelectronicpasswordlock,thiskindofelectronicpasswordlocksbythemonolithicintegratedcircuittakesthedataprocessingmastercontrolchip.Theelectronicpasswordlocksthedesignmainlyiscomposedbyfourparts:
4×4thematrixkeyboardconnectionelectriccircuit,byat89S51chipthedataprocessingandthecontrolcircuitwhichlocksforthecorepassword,fallsintheelectricitysituationstilltobeabletopreservethepasswordtheEEPROMmemorychip.MoreoverthesystemalsohastheLEDpromptlamp,reportstothepolicethebuzzer,themonolithicintegratedcircuitrepositionstheelectriccircuitandsoon.Theelectronicpasswordlocksthedesignthekeyquestionisrealizesfunctionsandsoonpasswordinput,elimination,unblanking,change.Unifiedthiskindofsituation,thisarticlethedesignwhichlockedtothemonolithicintegratedcircuitelectronicpasswordhascarriedontheanalysisandtheinquisition.
Keywords:
at89s51,electronictricklock,alarm
4.5程序调试....................................................18
1绪论
1.1课题背景和意义
随着电子技术和计算机技术的飞速发展,单片机性能不断完善,性能价格比显著提高,技术日趋完善。
由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因而在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。
本设计利用单片机及附加电子元器件实现数据采集和控制算法,来完成某一实际功能,检验并提高同学对整体电路设计和把握能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力。
同时也加强对数字电路、单片机和微机原理等课程知识的实际应用能力,也为同类产品的进一步发展奠定理论和实践基础。
随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。
这种电子密码锁是通过键盘输入一组密码完成开锁过程。
研究这种锁的初衷,就是为了提高锁的安全性。
由于电子锁的密码量极大,可以与机械锁配合使用,而且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需要记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人欣赏。
电子锁的种类多种多样,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
但较实用的还是按键式电子密码锁[1]。
20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用只局限在一定的范围内,难以普及,因此对其研究一直没有明显的进展。
目前,在西方国家,电子密码锁技术比较先进,种类齐全,电子密码锁已经被广泛应用于智能门禁系统中,通过多种更加安全和更加可靠的技术实现对大门的管理。
在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。
但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛[2]。
国内的不少企业也引进了世界上先进的技术,发展前景非常可观。
希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。
1.2电子密码锁发展趋势
电子密码锁应用于金融业,其根本的作用是“授权”,即被“授权”的人才可以存取钱、物。
广义上讲,金融业的“授权”主要包括以下三种层次的内容:
1、授予保管权,如使用保管箱、保险箱和保险柜;2、授予出入权,如出入金库、运钞车和保管室;3、授予流通权,如自动存取款。
目前,金融行业电子密码锁的应用主要集中在前两个层面上。
下面将介绍几种在金融行业中使用较多的电子密码锁以及它们的技术发展方向。
当然,以上所说的授权技术再高超,都必须由精良的“锁具”担当承载结构部件,实现开启、闭锁的功能,而且承担实体防护作用,抵抗住或者尽量延迟破坏行为,让电子密码锁“软、硬不吃”。
一般情况下,锁具防盗的关键是锁身外壳、闭锁的部件的强度、锁止型式、配合间隙和布局。
提高电子密码锁之防护能力的必然途径是报警,在金融业的许多场所有人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用。
报警的前提是具备探测功能,根据电子密码锁的使用场所和防护要求,可选择多种多样的探测手段。
在中国的城市金融业中,实现联网报警已经成为对各金融网点的基本要求。
[3]根据国内外的实践经验,金融业实行安全防范风险等级很有必要,即依据使用的防盗报警器材的性能、安装布局和人员值守状况等,可以评估被防护物或者区域的防护能力,得出风险等级,其中,电子密码锁的性能至关重要[3]。
由于对数字、字符、图形、图像、人体生物特征和时间等要素均可以成为钥匙的电子信息,组合使用这些信息能够使电子密码锁获得高度保密性,如金库等需使用复合信息密码的电子密码锁,这样对盗贼来说是“道高一尺、魔高一丈”。
组合使用信息也能使电子密码锁获得无穷的扩展可能,使产品多样化,对用户而言是“千挑百选、自得其所”。
2电子密码锁的总体设计方案
2.1电子密码锁设计的具体要求
(1)本设计为了防止密码被窃取要求在输入密码时在LCD屏幕上显示*号。
(2)设计开锁密码位六位密码的电子密码锁。
(3)在密码正确时LCD能够显示PASSWORDOK,密码错误时显示PASSWORDERROR,输入密码时显示INPUTPASSWORD。
(4)实现输入密码错误超过限定的三次电子密码锁定。
(5)4×4的矩阵键盘其中包括0-9的数字键和A-F的功能键。
(6)本产品具备报警功能,当输入密码错误时蜂鸣器响并且LED灯亮。
(7)密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
2.2总体设计方案选定
方案一:
采用数字电路控制。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。
采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。
故不采用。
方案二:
采用一种是用以AT89S51为核心的单片机控制方案。
选用单片机AT89S51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。
其原理如图2.1所示。
图2.1单片机控制密码锁原理图
可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用方案二。
3基于单片机的电子密码锁硬件设计
3.1单片机AT89s51简介
AT89s51是美国atmel公司生产的低功耗,高性能CMOS8位的单片机,片内含有4kbytes的可系统编程的Flash只读程序存储器,器件采用了atmel公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,atmel公司的生产功能强大,低价位AT89s51单片机可以为您提供许多高性价比的应用场所,可以灵活应用在各种控制领域。
本设计选定AT89S51,其引脚排列见图3.1。
图3.1单片机引脚图
Vcc:
电源电压;GND:
接地;
P0口:
P0口是一组8位漏极开路型的双向I/0口,也即地址/数据总线复用口。
作为输出口使用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可以作为高阻抗输入端使用。
在访问外部数据存储器或者者程序存储器时,该组口线分时转换地址(低8位)和数据总线复用,在访问期间激活上拉电阻。
在F1ash编程期间,P0口接收指令字节,而当程序校验时,输出指令字节,校验时,必须外接上拉电阻。
P1口:
Pl是一个带上拉电阻的8位双向I/O口,Pl输出的缓冲级可驱动(吸收或者输出电流)4个TTL的逻辑门电路。
对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电(IIL),Flash编程和程序校验期间,Pl接收低8位地址。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或者输出电流)4个TTL的逻辑门电路。
对端口写上“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL),当访问外部程序存储器或者者16位地址的外部数据存储器(如执行MOVX@DPTR指令)时,P2口送出高8位的地址数据。
当访问8位地址的外部数据存储器(例如执行MOVX@RI指令)时,P2口线上内容即特殊功能寄存器(SFR)区中P2寄存器中的内容,在整个访问期间不改变。
Flash编程或者者校验时,P2也接收高位地址和其它的控制信号。
P3口:
是一组有上拉电阻的8位双向I/0口。
P3口输出缓冲级可驱动(吸收或者输出电流)4个TTL的逻辑门电路。
P3口除作为一般的I/0口线外,更加重要的用途是第二功能,另外P3口还接收一些用于Flash闪速存储器编程和程序校验时的控制信号。
RST:
即复位输入。
当振荡器工作的时候,rst引脚会出现两个或者者两个以上的机器周期高电平使单片机复位。
WDT溢出使这个引脚输出高电平,设置sfrauxr的disrt0位(地址为8EH)可打开或者者关闭这个功能。
disrt0位缺省为reset输出的高电平打开状态。
ALE/PROG:
当访问外部程序存储器或者数据存储器时,ALE输出脉冲用来锁存地址的低8位字节。
即便不访问外部存储器,ALE仍可以时钟振荡频率的六分之一输出固定正脉冲信号,所以它可对外输出时钟或者用于定时的目的。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89s51由外部程序存储器读取指令(或者数据)时,每个机器周期两次PSEN有效,即输出了两个脉冲。
当访问外部数据存储器,没有两次有效的PSEN信号。
EA/VPP:
外部访问允许。
如若使CPU只访问外部程序存储器(地址为0000H-FFFFH),EA端则必须保持低电平。
必须注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如果EA端为高电平(接Vcc端),则CPU执行内部程序存储器中指令。
当F1ash存储器编程时,这个引脚加上+12V的编程电压Vpp。
XTALl:
振荡器反相放大器及内部时钟发生器输入端。
XTAL2:
振荡器反相放大器输出端[4]。
根据电子密码锁控制要求,本文单片机AT89S51的硬件分配如下:
P0.0~P0.7用于LCD液晶显示作用;P2.6、P2.7用于蜂鸣器和报警灯的控制;P2.0用于开锁电路的控制;P1.0~P1.7用于键盘电路的控制;P3.3~P3.5用于LCD显示模块的控制端口的控制。
3.2单片机最小系统的设计
当MCS-5l系列单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和开关复位。
图3.2即为上电复位电路。
图3.2上电复位电路
复位后的状态:
a、复位后PC值为0000H,表明复位后的程序从0000H开始执行。
b、SP值为07H,表明堆栈底部在07H,一般需要重新设置SP值。
c、P0~P3口值为FFH。
P0~P3口用作输入口时,必须先写入“1”。
单片机在复位后,已使P0~P3口每一端线为“1”,为这些端线用作输入口做好了准备。
WDT溢出将使该引脚输出高电平,所以本设计采用图3.3的开关复位电路:
图3.3开关复位电路
AT89s51中有一个用来构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是这个放大器的输入端和输出端。
该放大器和作为反馈元件的片外石英晶体或者陶瓷谐振器共同构成自激振荡器,振荡电路如图3.4(a)。
外接石英晶体(或者陶瓷谐振器)及电容Cl、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容Cl、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。
如果使用石英晶体,推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10F。
[5]用户也可以采用外部时钟。
采用外部时钟的电路如图3.4(b)所示。
这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
图3.4单片机自激振荡电路
由于单片机有内部振荡器,所以本设计采用图3.5的晶振电路。
图3.5晶振电路
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节
被重复编程以前,该操作必须被执行。
此外,AT89S51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.3开锁机构
用户通过LCD提示信息,用键盘输入正确密码,从而达到开锁的目的。
当用户输入的密码正确并且是在按下确定键的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。
电路驱动和开锁两级组成。
由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管如9014、9018都可以满足要求。
D5作为开锁的提示;由D6、C24、T11组成。
其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。
T11可选用中功率的三极管如8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
密码锁开锁机构电路图如图3.6所示。
图3.6密码锁开锁机构电路图
3.4键盘设计
本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
4×4矩阵键盘的工作原理:
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图5所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
扫描原理:
把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
比如说扫描码送入01111111,前面的0111是代表此时扫描第一行P1.0列,而后面的1111是让读取的4行接脚先设为VDD,若此时第一行的第三列按键被按下,那读取的结果就会变成01111101(注意1111变成1101),其中LSB的第三个bit会由1变成0,这是因为这个按键被按下之后,会被垂直的扫描码电位short,而把读取的LSB的bit电位拉到0,此即为扫描原理[5]。
由于这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让8051误判为多次输入同一按键,
必须在侦测到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。
图3.7为键盘整体模框图。
图3.7键盘整体模框图
3.5显示电路设计
显示设计采用字符型液晶屏设计,由单片机的p0口控制显示,由p3.3~p3.5控制lcd的控制端口。
本设计采用图3.8液晶显示设计。
图3.8LCD液晶显示电路抓图
3.6电路设计总图
Proteus软件是LabcenterElectronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。
Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等[7]。
通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。
本文电子密码锁采用proteus进行电路图设计,经过元件选型,用万能实验版进行硬件焊接,以实现硬件部分。
图3.9为proteus设计的密码锁电路图整体抓图。
图3.9proteus设计的密码锁电路图
4基于单片机的电子密码软件设计与仿真
4.1主程序流程图
因设计主要是作用汇编语言来开发的51单片机项目程序,所以首先必须有一个可以在WindowsXP或者Windowsvista操作系统下执行的汇编语言编译器,本设计采用Keil编译器进行编程。
电子密码锁主程序流程图如图4.1所示。
图4.1主程序的流程图
4.2主程序设计
主程序主要是完成系统初始化、设置中断向量、检查有无键按下、以及调用显示等等。
主程序部分如下所示。
enbitp3.5;将lcd的en管脚连接到单片机的p3.5口
rwbitp3.4;将lcd的rw管脚连接到单片机的p3.4口
rsbitp3.3;将lcd的rs管脚连接到单片机的p3.3口
displayequp0;将lcd的显示端口连接到p0口上
spea