基于单片机的电子密码锁的设计.docx
《基于单片机的电子密码锁的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁的设计.docx(60页珍藏版)》请在冰豆网上搜索。
基于单片机的电子密码锁的设计
毕业设计[论文]
题目:
电子密码锁的设计
学院:
电气与信息工程学院
专业:
电子信息工程
姓名:
学号:
093409142
指导老师:
陈英
完成时间:
2013年5月28日
摘要
随着经济社会发展,人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出。
传统的机械锁,由于其构造简单,安全性能低,无法满足人们的需要。
随着电子产品向智能化和微型化的不断发展,数字密码锁作为防盗卫士的作用显得尤为重要。
而单片机以其实用,功能强大,价格低廉等功能,已成为电子产品研制和开发中首选的控制器。
本文从经济实用的角度出发,阐述一个基于单片机的液晶显示电子密码锁的设计与实现。
系统采用ATMEL公司的AT89C51单片机作为系统核心,液晶显示器LCD1602作为输出设备显示系统提示信息,4*4矩阵键盘作为输入设备,CMOS串行E2PROM存储器AT24C02作为数据存储器,配合蜂鸣器、继电器等电路构成整个系统硬件;系统软件采用C语言编写。
设计的系统液晶显示,密码修改方便,具有报警、锁定等功能,使用便捷简单,符合住宅、办公用锁需求,具有一定的实用价值。
关键词:
单片机,密码锁,AT89C51,LCD1602,AT24C02
Abstract
Withthedevelopmentofoursocietyandtheimprovementofpeople’slivingstandard,howtoensurethefamilysecurityisbecomingmoreandmoreimportantinparticular.Traditionalmechanicallockisunabletomeettheneedofusbecauseofitssimplestructureandlowsecurity.Nowadays,electronicproductsbecomesmarterandsmaller,electronicpasswordanti-theftlockplaysamoreimportantroleasthesecurityguards.TheMCUwithitspractical,strongfunction,lowpriceandotherfunctions,hasbecomethepreferredcontrollerinelectronicproductresearchanddevelopment.
Thisarticleiswrittenfromtheeconomicperspective,elaboratesthedesignandimplementationofaLCDelectronicpasswordanti-theftlockwhichisbasedonMCU.ThissystemiscomposedofAT89C51whichisdesignedasthecoreofthissystem,LCD1602astheoutputdevicetodisplaythemessageofthissystem,4*4matrixkeyboardastheinputdevice,aCMOSserialE2PROMAT24C02asthedatastorage,andabuzzer,relaycircuit.
ThesoftwareofthesystemiswritteninClanguage.ThesystemdisplaysinaLCD,itcanchangepasswordeasily,andhasthefunctionofalarming,locking,andsoon.Thissystemhassomepracticalvalue,anditissimpleandeasytouse,meetsthedemandofresidentialandtheneedofofficelock.
KeyWords:
MCU,Password-Lock,AT89C51,LCD1602,AT24C02
1引言
1.1课题的背景和意义
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤为突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜。
现在安防监控系统是一门被人们日益重视的新兴专业,就目前发展看,应用普及越来越广,科技含量越来越高。
其中,数字密码锁电路简单,易于安装维护,而且价格便宜,因而被广泛应用于家庭防盗,银行,保险柜等场合。
数字密码锁是由电子电路控制锁体的新型锁具,它采用触摸按键方式输入开锁密码,操作方便,灵活性好,保密性强,安全系数高,不会磨损,寿命长,成本低、功能全和可连网的等优点。
正是这些优点使它广泛地被用于小区楼道的安全管理中。
这种成本相对低的安全措施却提供了不小的安全作用。
它的功能强,成本低和无钥匙等特点注定了它的成功。
1.2课题的研究现状
本课题国内外研究现状综述:
在国内早几年由于电子技术尚不发达,数字密码锁的研究比较滞后,产品种类很少。
而且由于人们对数字密码锁还没有完全的认识,同时其价钱较普通弹子锁贵,应用较少。
近几年随着电子技术的发展,电子密码锁应运而生。
由于电子锁的密码量极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人使用。
由于电子锁的功能、安全是弹子锁无法相比的,因此,发展前景是非常大的。
总的来说,目前国内对单片机的密码锁的研究比较深入,技术也比较成熟。
因此,单片机密码锁的发展大有前途。
在国外,电子密码锁发展已经到了非常高的境界,其技术相对先进,种类齐全,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子密码锁获得高度的保密性。
现电子密码锁普遍被人们所接受,已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。
由于电子元件特别是单片机应用在这几年得到空前发展,产品无论是从功能性上还是从稳定性上都比较全面,在保密方面已做到人眼识别,指纹识别,人声识别等。
数字密码锁在国外发展比较早应用也比较广泛,主要在家庭装较贵重地方,银行,保险柜等应用较多。
1.3课题研究内容
设计制作一个数字密码锁,替代传统的机械锁。
电子密码锁可以根据设定好的密码,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键一定时间,比如3秒钟,同时发出报警声,直到没有按键按下,3秒钟后,再打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。
要求液晶显示,在输入密码时,显示“*”。
以单片机为主控芯片,完成密码输入键盘设计。
时钟复位电路、密码复位电路设计。
电子阀的使用和设计。
硬件连接与调试。
软件设计与调试。
2数字密码锁总体设计
2.1系统方案论证
随着电子产品向智能化和微型化的不断发展,数字密码锁的种类也不断增多,本节主要讨论了目前较为常见的数字密码锁,有采用数字电路为控制核心和采用以单片机为控制核心的两种数字密码锁。
2.1.1采用数字电路的设计方案
数字电路的设计方案的设计原理方框图如图2.1所示:
图2.1基于数字逻辑电路的数字密码锁框图
采用数字密码锁电路的好处就是设计简单。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。
电路由两大部分组成:
密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:
键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差。
故而本设计不采用此设计方案。
2.1.2采用以单片机为核心设计方案
用以AT89C51为核心的单片机控制方案:
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加掉电存储、声光提示甚至添加遥控控制功能。
由于单片机种类繁多,因此在选用时要多加比较合理选择,以期获得最佳的性价比。
一般来说在选取单片机时从下面几个方面考虑:
性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性。
除了以上的一些的还有一些最基本的比如:
中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。
在开发过程中单片机还受到:
开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等因素。
基于以上因素本设计选用单片机AT89C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接液晶显示器用于显示作用。
其操作过程为:
当用户需要开锁时,先按键盘的数字键0到9输入密码之后按键盘开锁键。
如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误,则发出报警。
当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。
新密码输入无误后按确认键使新密码将得到存储,密码修改成功。
可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案。
2.2基于单片机的数字密码锁的设计原理
基于单片机的数字密码锁的设计原理图如图2.2所示:
图2.2基于单片机的电子密码锁的设计原理图
本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。
用户通过矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。
本系统共有两部分构成,即硬件部分与软件部分。
硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成。
软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。
3系统硬件设计
3.1主要元器件介绍
数字密码锁硬件系统实现开锁,上锁,密码修改,报警等功能所需硬件主要有:
主控芯片AT89C51、继电器、存储芯片AT24C02、LCD1602显示器,矩阵键盘模块等。
3.1.1主控芯片AT89C51的的介绍
本次毕业设计选用的是AT89C51,AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除1000次以上。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51芯片引脚如图3.1所示:
图3.1AT89C51单片机的引脚图
AT89C51主要特性:
与MCS-51兼容,4K字节可编程FLASH存储器
寿命:
1000写/擦循环以上,数据保留时间:
10年
全静态工作:
0Hz-24MHz
三级程序存储器锁定
128×8位内部RAM
32可编程I/O线
两个16位定时器/计数器,5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
AT89C51单片机引脚:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.1.2继电器的介绍
继电器是一种电控制器件。
它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。
通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
当输入量(如电压、电流、温度等)达到规定值时,继电器被所控制的输出电路导通或断开。
输入量可分为电气量(如电流、电压、频率、功率等)及非电气量(如温度、压力、速度等)两大类。
继电器具有动作快、工作稳定、使用寿命长、体积小等优点。
广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中。
电磁继电器工作原理和特性:
图3.2继电器原理图
电磁继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。
只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。
当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。
这样吸合、释放,从而达到了在电路中的导通、切断的目的。
对于继电器的“常开、常闭”触点,可以这样来区分:
继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。
继电器一般有两股电路,为低压控制电路和高压工作电路。
3.1.3存储芯片AT24C02的介绍
AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含256×8位存储空间,具有工作电压宽、擦写次数多、写入速度快、抗干扰能力强、数据不易丢失、体积小等特点。
而且他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。
AT24C02中带有的片内地址寄存器。
它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。
AT24C02运用I2C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。
主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。
无论是主机还是从机,收到一个字节后必须发出一个确认信号ACK。
AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。
AT24C02引脚如图3.3所示:
图3.3AT24C02存储器引脚图
3.1.4LCD1602显示器的介绍
1602字符型LCD具有价廉、显示内容丰富、美观、使用方便等特点。
字符型显示器把LCD控制器、点阵驱动器、字符存储器等做在一块板子上,再与液晶屏一起组成一个显示模块。
因此,它的安装与使用都非常简单。
液晶显示的原理是利用液晶的物理特性通过电压对显示区域进行控制,只要输入所需控制电压,就可以显示出字符。
1602型LCD采用标准的14引脚(无背光)或16引脚(带背光)接口,其各引脚的功能如下所示:
引脚1(VSS):
电源地
引脚2(VDD):
电源正极
引脚3(VL):
反视度调整
引脚4(RS):
寄存器选择,RS=1,数据寄存器;RS=0,指令寄存器
引脚5(
):
读写选择,高电平,读;低电平,写
引脚6(E):
模块使能端,E由高电平跳变成低电平时,液晶模块开始执行命令
引脚7-引脚14(D0-D7):
双向数据总线的第0位到第7位
引脚15(BLA):
背光显示器电源+5V
引脚16(BLK):
背光显示器接地
LCD是一个慢显示器件,所以在写每条指令前一定要先读LCD的忙碌状态。
如果LCD正忙于处理其他指令,就等待;如果不忙,再执行写指令。
为此LCD专门设置了一个忙碌标志位BF,该位连接在8位双向数据线的DB7位上。
如果BF为低电平,表示LCD不忙;反之表示忙碌,就需要等待。
表3.1列出了1602型LCD的读写操作规定:
表3.1:
1602型LCD的读写操作规定
读状态:
输入
RS=0,
=1,E=1
输出
DB0~DB7=状态字
写指令:
输入
RS=0,
=0,DB0~DB7=指令码,E=高脉冲
输出
无
读数据:
输入
RS=1,
=1,E=1
输出
DB0-DB7=数据
写数据:
输入
RS=1,
=0,DB0-DB7=指令码,E=高脉冲
输出
无
3.1.5矩阵键盘模块的介绍
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图3.4所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,下图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
矩阵键盘模块的原理图如图3.4所示:
图3.4阵键盘模块的原理图
3.2系统硬件部分
数字密码锁系统的硬件部分主要有:
系统电源、键盘输入、密码存储、复位、显示、报警、开锁等部分。
3.2.1系统电源部分
系统电源设计如图3.5所示。
该电路以稳压集成模块7805为核心,先将家用50Hz、220V交流电经过变压器变压,在经过4个二极管全波整流,配合滤波电路即可转换成稳定的可供单片机使用的5V直流电压。
加入5V电池作为备用电池,即使在停电情况下依然能保证密码锁的正常工作。
系统电源原理图如下图3.5所示:
图3.5系统电源原理图
3.2.2键盘输入部分
键盘输入部分原理图如下图3.6所示:
图3.6键盘输入原理图
本设计所用到的按键数量较多而不适合用独立按键式键盘。
采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。
本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。
键盘的每个按键功能在程序设计中设置。
3.2.3密码存储部