基于单片机的电子密码锁设计本科毕设论文.docx
《基于单片机的电子密码锁设计本科毕设论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁设计本科毕设论文.docx(40页珍藏版)》请在冰豆网上搜索。
基于单片机的电子密码锁设计本科毕设论文
毕业设计论文
基于单片机的电子密码锁设计
1.引言
1.1课题背景和意义
随着电子技术和计算机技术的飞速发展,单片机性能不断完善,性能价格比显著提高,技术日趋完善。
由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因而在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。
本设计利用单片机及附加电子元器件实现数据采集和控制算法,来完成某一实际功能,检验并提高同学对整体电路设计和把握能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力。
同时也加强对数字电路、单片机和微机原理等课程知识的实际应用能力,也为同类产品的进一步发展奠定理论和实践基础。
随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。
这种锁是通过键盘输入一组密码完成开锁过程。
研究这种锁的初衷,就是为提高锁的安全性。
由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。
电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
但较实用的还是按键式电子密码锁。
20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。
目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。
在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。
但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。
国内的不少企业也引进了世界上先进的技术,发展前景非常可观。
希望通过不断的努力,使电子密码锁在我国也能得到广泛应用[1]。
1.2电子密码锁发展趋势
电子密码锁应用于金融业,其根本的作用是“授权”,即被“授权”的人才可以存取钱、物。
广义上讲,金融业的“授权”主要包括以下三种层次的内容:
(1)授予保管权,如使用保管箱、保险箱和保险柜;
(2)授予出入权,如出入金库、运钞车和保管室;(3)授予流通权,如自动存取款。
目前,金融行业电子密码锁的应用主要集中在前两个层面上。
下面将介绍几种在金融行业中使用较多的电子密码锁以及它们的技术发展方向。
当然,以上所说的授权技术再高超,都必须由精良的“锁具”担当承载结构部件,实现开启、闭锁的功能,而且承担实体防护作用,抵抗住或尽量延迟破坏行为,让电子密码锁“软、硬不吃”。
一般情况下,锁具防盗的关键是锁身外壳、闭锁的部件的强度、锁止型式、配合间隙和布局。
提高电子密码锁之防护能力的必然途径是报警,在金融业的许多场所有人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用。
报警的前提是具备探测功能,根据电子密码锁的使用场所和防护要求,可选择多种多样的探测手段。
在中国的城市金融业中,实现联网报警已经成为对各金融网点的基本要求。
根据国内外的实践经验,金融业实行安全防范风险等级很有必要,即依据使用的防盗报警器材的性能、安装布局和人员值守状况等,可以评估被防护物或区域的防护能力,得出风险等级,其中,电子密码锁的性能至关重要。
由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子密码锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子密码锁,这样对盗贼而言是“道高一尺、魔高一丈”。
组合使用信息也能够使电子密码锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。
2.总体设计方案
2.1电子密码锁设计的具体要求
电子密码锁设计的具体要求如下:
(1)本设计为了防止密码被窃取要求在输入密码时在LCD屏幕上显示*号。
(2)设计开锁密码位小于六位密码的电子密码锁。
(3)能够LCD显示在密码正确时显示OPNEOK!
,密码错误时显示PASSWORDERROR,输入密码时显示YOURPASSWORD。
(4)4×4矩阵键盘其中包括0-9的数字键和A-F的功能键。
(5)本产品具有报警功能,当输入密码三次错误时蜂鸣器报警。
(6)密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
2.2总体设计方案
方案一:
采用数字电路控制。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。
采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。
故不采用[2]。
方案二:
采用一种是用以STC89C52为核心的单片机控制方案。
选用单片机STC89C52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用[2]。
其原理如图1所示。
图1单片机控制密码锁原理图
由图1可知方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要,此次设计采用此方案。
2.3系统总体设计原理
本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载发光二极管换成电子密码锁的电磁铁吸合线圈即可[3]。
系统整体框图如图2所示。
图2系统结构框图
各模块功能如下:
(1)键盘输入模块:
分为密码输入按键与几个功能按键,用于完成密码锁输入功能。
(2)显示模块:
用于完成对系统状态显示及操作提示功能。
(3)复位电路:
完成系统的复位。
(4)报警电路:
用于完成输错密码时候的警报功能。
(5)密码存储模块:
用于完成掉电存储功能,使修改的密码断电后仍能保存。
(6)开锁电路:
应用发光二极管模拟开锁,完成开锁及开锁提示。
3.电子密码锁的硬件设计
3.1主控芯片STC89C52
3.1.1单片机STC89C52简介
STC89C52是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含8kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位STC89C52单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域[4]。
主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
3.1.2STC89C52功能
STC89C52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,STC89C52芯片引脚图如图3所示。
图3单片机引脚图
3.2存储电路
AT24C04是美国Atmel公司的低功耗CMOS型E²PROM,内含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。
而且他是采用了I²C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。
AT24C04中带有的片内地址寄存器。
每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。
所有字节均以单一操作方式读取。
为降低总的写入时间,一次操作可写入多达8个字节的数据。
I²C总线是一种用于IC器件之间连接的二线制总线。
他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。
AT24C04正是运用了I²C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C04)均可工作于接收器和发送器状态。
主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。
无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。
AT24C04的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向[5]。
管脚功能:
SCL为串行时钟:
串行时钟输入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚。
SDL为串行数据/地址:
双向串行数据/地址管脚用于器件所有数据的发送或接收SDL,是一个漏极开路输出管脚可与其它漏极开路输出或集电极开路输出进行线或。
A0、A1、A2为器件地址输入端:
当使用24C04时最大可级联8个器件,如果只有一个24C04总线寻址,这三个地址输入脚A0、A1、A2可悬空或连接到Vss。
WP为写保护:
如果WP管脚连接到Vcc所有的内容都被写保护只能读当WP,管脚连接到Vss或悬空,允许器件进行正常的读/写操作。
管脚图如图4所示。
图4AT24C04引脚图
3.3LCD显示模块
液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。
1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。
1602型LCD可以显示2行16个字符,有8位数据总线D0-D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能[6]。
1602型LCD基本操作程序如表1所示。
表1LCD1602基本操作程序
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
输入
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
输出
无
读数据
输入
RS=H,R/W=H,E=H
输出
D0—D7=数据
写数据
输入
RS=H,R/W=L,D0—D7=数据,E=高脉冲
输出
无
1602型LCD主要技术参数:
·显示容量:
16×2个字符
·芯片工作电压:
4.5—5.5V
·工作电流:
2.0mA(5.0V)
·模块最佳工作电压:
5.0V
·字符尺寸:
2.95×4.35(W×H)mm
1602型LCD的接口信号如表2所示。
表2LCD1602接口信号
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
3.4单片机最小系统
3.4.1晶振电路
STC89C52引脚XTAL1和XTAL2与晶体振荡器及电容C1、C2按图3所示方式连接。
晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C1、C2取值范围在5~30pF之间。
根据实际情况,本设计中采用12MHZ做系统的外部晶振。
电容取值为30pF。
晶振电路图如图3所示。
图3晶振电路
3.4.2复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。
该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C3上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于
某一数值后,CPU脱离复位状态,由于电容C3足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。
增加手动复位按键是为了避免死机时无法可靠复位。
当复位按键按下后电容C3通过R1放电。
当电容C1放电结束后,CPU处于复位状态,松手后,电容C3充电,RST端电位下降,CPU脱离复位状态。
R1的作用在于限制按键按下瞬间电容C3的放电电流,避免产生火花,以保护按键触电。
其电路如图4所示。
图4复位电路
3.5报警电路
报警部分由蜂鸣器发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入三次错误时,单片机的P3.7引脚为低电平,三极管T3导通蜂鸣器发出噪声报警[7]。
图6报警电路
3.6开锁电路
开锁控制电路的功能是当输入正确的密码后发光二极点亮将锁打开。
开锁步骤如下:
首先利用键盘上的数字键0-9输入密码,然后按下键盘上的开锁按键。
当用户输入密码后,单片机自动识别密码,如果密码输入三次不符,则报警。
只有当密码正确,单片机才能使发光二极管亮系统处于开锁状态[8]。
具体电路如图7所示。
图7开锁电路
3.7键盘输入模块
由于本设计所用到的按键数量较多而不适合用独立按键式键盘。
采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。
本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键用,比如清空显示功能等。
键盘的每个按键功能在程序设计中设置[9]。
其大体能(看键盘按键上的标记)及与单片机引脚接法如图5所示。
图54*4矩阵按键
4.电子密码锁的软件设计
本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。
4.1主程序
主程序流程图如图8所示,当开始接上电源,程序进行初始化设置,然后在键盘上输入密码,此系统进行键盘扫描,密码正确,开锁成功,密码错误3次出错报警,选择是否修改密码,若要修改密码,先输入旧密码,密码正确后设置新密码,错误时报警,需要两次确认新密码,确认后,密码修改成功,否则结束最终返回。
然后启动程序,进行保护,再次在键盘上输入密码,系统进行扫描,如果和之前一样,则执行相同程序,如不是,则执行另一种程序[10]。
图8主程序流程图
4.2按键软件设计
按键功能流程图如图9所示,在按键当中,有与输入、开锁、清除、设置、确认、清除一位的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,输入两次新密码正确时,可进行重新设置密码,最后确认程序。
图9按键功能流程图
4.3密码设置软件设计
密码设置流程图如图10所示,开始按下设置键,输入旧密码,如果错误累计三次,进行报警程序。
如果输入正确,可以修改密码,确认后再次输入新密码,如果两次输入一样,则输入成功。
如果两次输入的新密码不一样,则修改密码失败,重新返回设置新密码[11]。
图10密码设置流程图
4.4开锁软件设计
开锁流程如图11所示,当开始接上电源,程序进行初始化设置,然后在键盘上输入密码,按下开锁键,如果输入正确,则开锁成功。
如果输入错误累计达到三次,则执行报警程序。
图11开锁流程图
5.调试与实现
5.1软件调试
程序在KEILC51上调试,采用模块程序设计技术,则逐个模块调好后再进行系统程序总调。
对于模块结构程序.要一个个子程序分别调试。
调试时,一定要符合入口条件和出口条件,调试可用单步运行和断点运行方式,通过检查用者系统的CPU现场情况、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求,有无循环错误、有无机器码错误以及转移地址的错误,同时,还可以发现系统中存在的硬件设计错误和软件算法错误。
各程序模块通过后,则可以把相关功能块连在一起进行总调。
这个阶段若有故障,可以考虑各子程序运行时是否破坏了现场,缓冲单元、工作寄存器是否发生冲突,标志位的建立和清除是否有误,堆栈区是否有溢出,输入设备的状态是否正常等等,若用者系统是在开发机的监控程序下运行时,还要考虑用者缓冲单元是否和监控程序的工作单元发生冲突。
单步和断点调试后,还应进行连续调试,用以确定定时精度、CPU的实时响应等问题。
当全部调试和修改完成后,将程序固化到STC89C52中。
进行整机调试。
各功能实现则调试完成[12]。
5.2Proteus仿真
在软件能实现的条件下,利用Proteus进行仿真,通过不停的调试与改正,最后终于实现了密码锁的功能,Proteus仿真结果如图12与图13所示。
当连好各个模块电路的导线后,导入芯片程序,运行该密码锁仿真电路,通过按键可以进行密码锁的开锁,修改密码,错误密码3次以上报警的操作,LCD显示屏显示相应的操作现象,密码正确可以开锁,进而可以修改密码,密码错误三次由蜂鸣器发出报警声,如果系统出现错误还可以通过复位电路进行复位[13]。
总之,在原有的理论基础上,通过Proteus能够成功的进行密码锁基本操作的仿真,实现了相关的功能。
图12密码输入正确仿真电路图
图13密码输入错误仿真电路图
5.3Protel99SE电路设计
Protel99SE是Altium公司推出的一款著名的电子电路PCB辅助设计软件,广泛应用于原理图设计、PCB设计等。
Protel99SE的功能完善,包括Servicepack6,并且提供了各种元件库,为用户提供了大量的电子器件参考手册及全套教程。
Protel99SE基于Windows环境,功能强大,人机界面友好,能让使用者在具有最完整的功能环境下,提升设计上的品质和效率[14]。
在proteus运行仿真实现的条件下,利用Protel99SE画出原理图,生成PCB图如图14所示。
图14电子密码锁PCB图
5.4硬件调试
单片机应用系统的硬件调试和软件调试是分不开的.许多硬件故障只有通过软、硬件联调才能发现,但一般是先排除系统中比较明显的硬件故障后才和软件一起联调。
常见的硬件故障:
(1)逻辑错误
硬件的逻辑错误是由于设计错误和焊接过程中的工艺错误而造成的,包括错线、开路、短路等,其中最常见的是短路故障。
(2)元器件错误
元器件错误的原因有器件损坏或性能不符合要求,电解电容、二极管的极性接反或集成块装反等。
(3)可靠性差
应用系统可靠性差的原因很多,如内部和外部的干扰、电压纹波系数过大、器件负载过重等均会造成系统的可靠性差。
另外,走线和布置的不合理也会造成系统可靠性差。
(4)电源故障
电源故障包括:
电压值不符合设计要求、电源功率不足、负载能力差、纹波太重等。
硬件调试办法:
脱机调试是在加电前,先用万用表等工具,按图纸仔细核对线路是否正确,并对元器件的安装、型号、规格等进行仔细检查,特别焊接时有无走线之间相互短路等[15]。
经过软件和硬件调试成功后,所做实物演示如图15、16以及图17所示。
图15输入密码时实物演示图
图16密码输入正确时实物演示图
图17密码输入错误时实物演示图
6.结论
以上为毕业期间所作的毕业论文---基于单片机的电子密码锁设计,它经过多次修改和整理,可以满足设计的基本要求。
输入密码时,如三次输入错误,则进行报警,在输入时,LCD显示为“*”,在修改密码时,则显示数字。
次设计还具有防盗功能,如对密码控制系统进行破坏,有报警功能。
通过对该课题的研究,加深对所学知识的理解,提高对课外知识的学习能力,增强知识的应用能力,提高解决实际问题的能力,培养自我创新意识。
积累实践经验,为以后的发展打下基础,也为以后我们自己在这方面的发展打下基础,并能够在这方面培养自己的兴趣。
在设计中我们必须首先熟悉和掌握单片机的结构及工作原理,单片机的接口技术及相关外围芯片的外特性,控制方法。
以单片机核心的电路设计的基本方法和技术了解表关电路参数的计算方法。
单片机不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机了解计算机原理与结构的最佳选择。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
随着单片机的广泛应用,将大大促进各领域的技术更新,向自动化、小型化、智能化方向迈进。
而对于我们来说,我们这代人的目标和任务是把这些高科技产品更升一个层次。
毕业设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
通过这次毕业设计,无论从选题到定稿,从理论到实践都使我学到了很多东西,它不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
同时也明白了理论与实践相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论