利用数字电路实现电子密码锁毕业设计.docx
《利用数字电路实现电子密码锁毕业设计.docx》由会员分享,可在线阅读,更多相关《利用数字电路实现电子密码锁毕业设计.docx(28页珍藏版)》请在冰豆网上搜索。
利用数字电路实现电子密码锁毕业设计
利用数字电路实现电子密码锁
学生:
XXX指导老师:
XXX
内容摘要:
本数字密码锁采用单片机AT89S52为主控芯片,由EEPROM存储密码。
硬件部分包括主控制系统、人机交互界面以及输出系统三大部分。
主控制系统中主控制芯片使用了AT89S52单片机,该单片机性能优良,能满足一般的普通应用;EEPROM采用AT24C02芯片,掉电后可以存储密码,从而保证了系统的安全性。
人机交互通道部分采用了4×4矩阵键盘输入以及LCD1602标准字符型液晶显示。
输出系统部分包括驱动开锁电路和报警电路;其中,在本系统设计中,驱动开锁电路用发光二极管表示,而报警电路则使用蜂鸣器。
本系统中使用的AT24C02芯片是一个带有I2C总线接口的EEPROM存储器。
I2C总线是一种双向二线制总线,它的结构简单,可靠性和抗干扰性能好。
I2C总线结构很简单,只有两条线,包括一条数据线(SDA)和一条串行时钟线(SCL)。
具有I2C接口的器件可以通过这两根线接到总线上,进行相互之间的信息传递。
本数字密码锁的功能为:
密码位数为8位,可选值为0~9,从而保证足够的锁体强度;用户可以自行设定和修改密码;防止密码被盗,输入密码错误次数超过3次则报警;友好的人机界面;输入正确的密码后,驱动开锁电路。
软件部分应用单片机C语言实现了本设计的全部控制功能。
C语言编译方便,易读性好,且移植性方便,能够满足实现本系统的功能要求。
在设计过程中,给出了本系统C语言编程的原理和流程图。
本数字密码锁系统稳定性好,设计人性化,由于使用单片机控制并有记忆模块,功能齐全可靠,并有很好的扩展性,而且成本低廉,具有良好的发展前景。
关键词:
数字密码锁AT24C02芯片安全性
Electroniccombinationlock
Abstract:
Usingthedigitalcircuitrealizeelectroniccombinationlock
ThisdigitallocksUSESthemonolithicintegratedcircuitAT89S52asthecontrollerchip,byEEPROMmemorypassword.Hardwareincludingmastercontrolsystem,man-machineinterfaceandoutputsystemofthree.
TheLordcontrolsystemusedinthecontrolchipAT89S52SCM,thissinglechipgoodperformance,cansatisfythegeneralcommonapplication;TheAT24C02chipEEPROM,afterpoweroffcanbestoredpassword,soastoensurethesecurityofthesystem.Man-machineinteractivechannelpartadoptsthe4x4matrixkeyboardinputandLCD1602standardcharactertypeLCDdisplay.Theoutputofsystemincludingdrivecircuitandalarmlockcircuit;Which,inthesystemdesign,drivethelockcircuitusinglight-emittingdiodessaid,andalarmcircuitisusingabuzzer.
ThesystemusedAT24C02chipisawiththeI2CbusinterfaceEEPROMmemory.TheI2Cbusisatwo-waytwowirebus,itssimplestructure,reliabilityandanti-interferencecapability.TheI2Cbusstructureissimple,onlytwolines,includingadataline(SDA)andaserialclockline(SCL).HastheI2Cdevicesthroughthisinterfacetotwolinesonthebus,themutualinformationtransfer.
Thisdigitallocksfunctionfor:
passworddigitsforeight,optionalvalueis0~9,soastoensureenoughlockbodystrength;Theusercansetandmodifythepassword;Topreventthepasswordisstolen,theinputpasswordmistakenumbermorethanthreetimesthealarm;Friendlyhuman-machineinterface;Toenterthecorrectpassword,drivethelockcircuit.
ApplicationsoftwareofsinglechipmicrocomputerClanguagerealizedthisdesignofallcontrolfunction.Ccompilerconvenient,easytoreadthegenderisgood,andeasyportability,andcanmeettherequirementofsystemfunctionrealization.Inthedesignprocessaregiven,andthesystemoftheCprogramminglanguageprincipleandflowchart.
Thisdigitallockssystemstability,humanizeddesign,becauseuseasingle-chipmicrocomputercontrolandamemorymodule,completefunctionandreliable,andhaveagoodscalability,andthecostislow,havegooddevelopmentprospect.
Keywords:
ElectroniccombinationlockAT24C02chipsafety
利用数字电路实现电子密码锁
前言
随着社会物质财富的日益增长,安全防盗已成为社会问题。
而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。
目前国内,大部分人使用的还是传统的机械锁。
然而,眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。
所谓互开率,是各种锁具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。
经国家工商局、国家内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍。
为何弹子锁的“互开率”会如此之高?
据有关专家人士剖析,弹子锁质量好坏主要取决于弹子数量的多少以及弹子的大小,而弹子的多少和大小受一定条件的限制。
此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。
机械锁的这些弊端为一种新型的锁---电子密码锁,提供了发展的空间。
电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。
其性能和安全性已大大超过了机械锁,主要特点如下:
保密性好,编码量多,远远大于弹子锁,随机开锁成功率几乎为零。
密码可变。
用户可以经常更改密码,防止密码被盗,同时也可以避免因人的更替而使锁的密级下降。
误码输入保护。
当输入密码多次错误时,报警系统自动启动,防止试探密码。
从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。
键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。
但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。
当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。
因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示”技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”技术使得单组密码不一定有效,适合多人分权使用,需要输入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,则保密性还可提高。
在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。
总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。
1系统的硬件设计
1.1硬件的总体结构和原理
1.1.1硬件系统的总体结构图
硬件系统的总体结构图如图1.1.1-1所示。
图1.1.1-1体结构图
1.1.2硬件系统组成
如图1.1.1-1所示,本系统的硬件部分主要由单片机AT89S52、存储芯片AT24C02、4×4矩阵键盘、LCD1602、报警电路和驱动电路组成;其中驱动电路用发光二极管LED表示,而报警电路使用蜂鸣器。
总的来说,数字密码锁主要由微处理器模块、记忆模块、键盘模块、声光提示模块和显示模块构成。
微处理器模块,也就是AT89S52单片机,因为本系统要实现密码检测、密码设定、声光提示等功能,要求微处理器必须能提供很多I/O口,而且由于系统体积限制,很难扩展I/O口和使用外部程序存储器,所以选用AT89S52单片机。
记忆模块,AT24C02芯片作为记忆模块的核心部分,作用是存储用户设置的有效开锁密码。
由于一片AT24C02拥有256字节存储空间,而本设计中只需要存储8个字节的数据,所以只需要一片AT24C02就已足够了。
并且AT24C02是一种非易失性存储器,掉电后数据不会掉失,而且该存储器内数据保存寿命可以保证达到100年以上,功耗低,十分适合本设计使用。
声光提示模块,由发光二极管LED和蜂鸣器组成,由单片机控制。
发光二极管LED有绿色和红色两种,绿色LED亮表示密码输入正确,驱动开锁电路;相反,红色LED亮就表示输入密码错误。
蜂鸣器采用5V驱动蜂鸣器,作为报警电路。
当输入密码错误次数超过3次后就发出声音警报。
显示模块,考虑到友好的人机界面,采用LCD1602液晶显示。
显示模块的作用主要是显示提示信息和输入的密码,以方便用户使用。
键盘模块,键盘模块的作用是让用户输入密码和修改密码。
考虑到本系统需要用到大量的按键,键盘模块采用4×4的16矩阵键盘模式。
1.1.3系统的可能性分析
系统工作原理分析:
使用AT89S51单片机、4×4矩阵键盘、发光二极管LED、蜂鸣器等。
4×4矩阵键盘的按键分别为0、1、2、3、4、5、6、7、8、9、取消、全取消、确定、修改密码、密码初始化还原、返回。
系统启动后,开始时LCD1602显示时钟界面,切换到密码锁输入界面后,LCD1602显示“EnterPassword”提示输入密码;输入密码时,LCD1602显示输出为“*”,以保证密码的安全性。
当密码输入完毕按下确定键时,对输入密码与设定的密码进行比较,若密码正确则LCD1602显示为“Right!
”,并驱动开锁电路,绿色发光二极管LED亮;若密码不正确,LCD1602显示为“Error!
”,红色发光二极管LED亮;若连续3次输入不正确,则发出警报声同时锁定键盘。
在按下修改密码键时,LCD1602显示“EnteroldKey”提示输入旧密码,此时若输入正确的旧密码,则LCD1602显示会有提示输入新密码,在输入新密码后,LCD1602显示会再次提示“再次输入新密码”。
若两次输入的新密码不一致,则修改密码失败;一致则成功,并将新密码保存到AT24C02芯片中。
在修改密码的过程中,如果一开始输入的旧密码错误LCD1602会显示错误提示,同时系统返回到开始界面。
若在“再次输入新密码”的时候输入新密码与前次不一致,则会返回到系统并要求重新输入新密码。
修改密码完成后,系统自动储存到AT24C02中,要再次开锁则需要输入正确的新密码。
系统中取消键用于退格,在输入密码时,若输入错误且未按下确定键,按下取消键可以删除刚输入的密码,然后再次输入。
为了防止恶意尝试,系统采用若连续输入3次错误密码则发出报警声,同时锁定键盘。
以此提高系统的安全系数,同时也能够保护合法用户的正常使用。
若用户忘记了密码,可以按下密码初始化还原键,恢复到最原始的密码。
1.2单片机AT89S51简介
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU在掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
1.2.1主要性能
◆与MCS-51单片机产品兼容
◆8K字节在系统可编程Flash存储器
◆1000次擦写周期
◆全静态操作:
0Hz~33Hz
◆三级加密程序存储器
◆32个可编程I/O口线
◆三个16位定时器/计数器
◆八个中断源
◆全双工UART串行通道
◆低功耗空闲和掉电模式
◆掉电后中断可唤醒
◆看门狗定时器
◆双数据指针
◆掉电标识符
1.2.2引脚功能描述
AT89S52的引脚如图1.2.2-1所示,其中各引脚为:
图1.2.2-1AT89S52引脚图
VCC:
供电电压。
GND:
接地。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL 逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。
在Flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能:
◆P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出。
◆P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)。
◆P1.5 MOSI(在系统编程用)。
◆P1.6 MISO(在系统编程用)。
◆P1.7 SCK(在系统编程用)。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4 个TTL 逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。
在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL 逻辑电平。
对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,在Flash编程和校验时,P3口也接收一些控制信号。
引脚号第二功能:
◆P3.0 RXD(串行输入)。
◆P3.1 TXD(串行输出)。
◆P3.2 INT0(外部中断0)。
◆P3.3 INT0(外部中断0)。
◆P3.4 T0(定时器0外部输入)。
◆P3.5 T1(定时器1外部输入)。
◆P3.6 WR(外部数据存储器写选通)。
◆P3.7 RD(外部数据存储器写选通)。
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST 脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。
在Flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。
否则,ALE 将被微弱拉高。
这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在Flash编程期间,EA也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
1.3AT24C02简介
AT24C02如图1.3.2-1所示,是一个2K位串行CMOSEEPROM内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗,有一个16字节页写缓冲器,该器件通过I2C总线接口进行操作;有一个专门的写保护功能。
1.3.1功能描述
AT24C02支持I2C总线数据传送协议,I2C总线协议规定任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器。
数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。
主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据发送或接收的模式通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。
1.3.2管脚描述
AT24C02的管脚如图1.3.2-1所示,其中各管脚为:
SCL串行时钟:
AT24C02串行时钟输入管脚,用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。
SDA串行数据/地址:
AT24C02双向串行数据/地址管脚,用于器件所有数据的发送或接收。
SDA是一个开漏输出管脚。
A0A1A2器件地址输入端:
这些输入脚用于多个器件级联时设置器件地址。
当这些脚悬空时默认值为0。
使用AT24C02时最大可级联8个器件.如果只有一个AT24C02被总线寻址,这三个地址输入脚A0、A1、A2可悬空或连接到Vss。
WP写保护:
如果WP管脚连接到Vcc,所有的内容都被写保护只能读;当WP管脚连接到Vss或悬空,允许器件进行正常的读/写操作。
图1.3.2-1AT24C02引脚图
1.3.3I2C总线协议
I2C总线是一种双向二线制总线,它的结构简单,可靠性和抗干扰性能好。
目前很多公司都推出了基于I2C总线的外围器件,AT24C02芯片就是一个带有I2C总线接口的EEPROM存储器,I2C总线结构很简单,只有两条线,包括一条数据线(SDA)和一条串行时钟线(SCL)。
具有I2C接口的器件可以通过这两根线接到总线上,进行相互之间的信息传递。
连接到总线的器件具有不同的地址,CPU根据不同的地址进行识别,从而实现对硬件系统简单灵活的控制。
I2C总线协议定义如下:
只有在总线空闲时才允许启动数据传送。
在数据传送过程中当时钟线为高电平时,数据线必须保持稳定状态不允许有跳变;时钟线为高电平时数据线的任何电平变化将被看作总线的起始或停止信号。
起始信号:
时钟线保持高电平期间数据线电平从高到低的跳变作为I2C总线的起始信号。
停止信号:
时钟线保持高电平期间数据线电平从低到高的跳变作为作为I2C总线的停止信号。
1.4LCD1602介绍
液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。
目前液晶显示模块已经是单片机应用设计中最常用的信息显示器件。
其中LCD1602液晶显示模块是常用的选择,它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。
考虑到本系统设计中友好的人机界面,相对采用多个LED作为显示模块,LCD1602更合适。
1.4.1引脚描述
1602采用标准的16脚接口,如图1.4.1-1所示,其中:
◆第1脚:
VSS为地电源。
◆第2脚:
VDD接5V正电源。
◆第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
◆第4脚:
RS为寄存器选择,高电平时选择数据寄