11引言1.1电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已经大大超过了机械锁。其特点如下:(1)保密性好,编程量多,远远大于弹子锁。随机开锁成功率几乎为零。(2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免人员的更替而使锁的密级下降。(3)误码输入保护,当当输入密码多次错误时,报警系统自启动。(4)无活动零件,不会磨损,寿命长。(5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。(6)电子密码锁操作简单易行,一学即会。1.2电子密码锁的发展趋势在日常生活和工作中,住宅与部门的安全防患、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的方法解决。目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。针对这些所具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引脚的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的但密码输入发展到现在的,密码加感应元件,实现了真正的电子加密,用户只有密码或电子钥匙中一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提1高出现了越来越多的电子密码锁。2出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。由于数学、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是“道高一尺,魔高一丈”、组合使用信息也能够使电子防盗锁获得无穷扩展的肯,是产品多样化,对用户而言是“千挑百选、自得其所。可以看出组合使用电子信息是电子密码锁以后的发展的趋势。1.3设计目的与任务:学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。1.4设计内容与要求设计一个具有特定功能的密码锁。该密码锁上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。1.5本设计所要实现的目标本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,该电子密码锁有个管理员密码和三个用户密码,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。当用户不记得密码时可通过专业认证服务用管理员密码使密码锁恢复出厂设置。1.6设计总体方案及工作原理说明采用以单片机为核心的控制方案,总体框图见图1.1.由于单片机总类繁多,各种型号都用一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选择单片机时下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有3一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机AT89S52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,以及控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接24C02B芯片用于密码的存储,外接LCD1602A显示器用于显示作用。当用户修要开锁时,先按键盘用户键之后按键盘的数字键0-9输入密码。密码输入完成后按下确认键,如果密码输入正确则开锁,不正确显示密码错误从新输入密码,当三次输入密码错误时则发出报警;当用户需要修改密码时,先按下用户键后再按设置键,接着输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入后按下确认键后系统要求再次输入新密码接着按下确认键当两次密码输入相同时新密码将得到存储,密码修改成功。AT89S52报警电路开锁电路密码存储电路复位电路晶振电路电源输入显示电路键盘输入图1.1设计总体框图42硬件系统的设计2.1设计原理本设计主要有单片机、矩阵键盘、液晶显示器和密码存储部分构成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由显示灯换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。本系统共由两部分构成,及硬件部分和软件部分。其中硬件部分由电源输入口,键盘输入部分,密码存储部分,复位电路,晶振电路,显示部分,报警部分,开锁部分组成。软件部分对应的由主程序,初始化程序,LCD显示程序,键盘扫描程序,启动程序,关闭程序,键功能程序,密码设置程序,E2PROM读写程序和延时程序等组成。其原理框图如图2.1所示AT89S52报警电路开锁电路密码存储电路复位电路晶振电路电源输入显示电路键盘输入图2.1电子密码锁原理框图2.2电路总体构成在确定了选用什么型号的单片机后,就要确定外围电路。其外围电路包括电源输入口、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报5警部分、开锁部分。根据实际情况键盘输入部分选择4×4矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用AT24C02芯片来完成。其原理图见附录1。2.2.1键盘输入部分按键采用矩阵式排列的独立式按键键盘,它由行线和列线组成,按键位于行列的交叉点上,密码锁的密码有按键输入完成,本设计中使用的这个4×4键盘不但能完成密码的输入还能作为特别功能键使用,比如清空显示功能等,键盘的每个按键功能在程序设计中设置。其大体功能(看按键上的标志)及与单片机引脚接法见附录1原理图。2.2.2密码存储部分用E2PROM芯片AT24C02存储密码。AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且它是采用了I2C总线式进行数据读取的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存储十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线式一种用于IC器件之间连接的二线制总线。它通过SDA及SCL两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。AT24C02正是运用了I2C规程,使用主/从机双向通信,主机和从机均可工作于接收器和发送器状态。主机产生串行时钟信号并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字有8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线的传送方向。其接线见附录1原理图。2.2.3复位部分单片机复位是使CPU和系统的其他功能部件处在一个正确的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第一个单元去指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(RST为高电平期间),P0口为高组态,P1-P3口输出高电平:外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。复位电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容上的电压很小,复位6下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键式为了避免死机时无法可靠复位。当复位按键按下后电容通过电阻放电,当电容放电结束后,RST端的复位由两电阻分压比决定。由于两电阻的电阻值差距大,因此RST为高电平,CPU处于复位状态。其接线见附录1原理图。2.2.4晶振部分AT89S52引脚XTAL1和XTAL2与晶体振荡器及其两电容的接线见附录1原理图。晶振、电容及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容的容量有关,但主要有晶振频率决定,范围在0~33MHz之间,电容取值范围在5~30pF之间。根据实际情况,本设计采用12MHz作为系统的外部晶振。电容取值为20pF。2.2.5显示部分为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。只有按下电源开关后,显示器才处于开启状态。同理只有按下电源开关后显示器才处于关闭状态。否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码,每按下一个数字键后再显示器上显示一个*,输入多少位就显示多少个*,当密码输入完成时,按下确认键,如果输入的密码正确的话,显示真确的提示信息,单片机其中P1.2脚会输出高电平,使密码锁打开,如果密码不正确,就会显示错误的信息,盘P1.2脚输出的是低电平,电子密码锁不能打开,通过LCD显示屏,可以清楚的判断出锁所处的状态。其显示部分引脚接口见附录1原理图。2.2.6报警部分报警部分由发声装置及外围电路组成,加电后不发声,当有键按下时,“嗡”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P1.3引脚为高电平,导通蜂鸣器发出噪鸣声报警。其图见附录1原理图。2.2.7开锁部分开锁控制电路的功能是当密码输入正确后将锁打开。系统使用单片机其中一引脚线发出信号,驱动外围电路将锁打开。用户通过按键任意设置密码,并存储在7E2PROM中作为锁码指令。开锁步骤如下:首先按下键盘上的用户按键,然后利用键盘上的数字键0-9输入密码,最后按下确认键。当用户输入一密码后,单片机自动识别,如果识别不符,则报警。只有当识别正确,单片机才能控制开锁电路将锁打开。完成本次开锁后,单片机自动清除掉由用户输入的这个密码。电路图见附录1原理图。2.3图纸及元器件清单设计电路原理图、PCB图、元器件布局图分别见附录1、附录2、附录3。设计课题元器件清单见附录4。2.4主要元器件介绍2.4.1主控芯片