1、超市存物柜密码锁设计毕业论文超市存物柜密码锁设计毕业论文第一章 绪论1.1 电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:1.保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2.密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3.误码输入保护,当输入密码多次错误时,报警系统自动启动。4.无活动零件,不会
2、磨损,寿命长。5.使用灵活性好,不像机械锁必须佩带钥匙才能开锁。6.电子密码锁操作简单易行,一学即会。1.2 电子密码锁的发展趋势日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性
3、差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实
4、现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。可以看出组合使用电子信息是电子密码锁以后发展的趋势。1.3 本设计所要实现的目标本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误将报警。密码
5、可以有用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入就的密码,在输入新密码的时候要二次确认,以防止误操作。第二章 总体设计方案2.1设计要求1.能检测柜中有无物品。2.密码错误自锁。3.液晶在线显示。4.按键操作。5.具有开锁功能。2.2密码锁的论证与选择2.2.1 方案一:采用数字电路控制用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不
6、便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。故不采用。2.2.2 方案二:采用以单片机为核心的控制方案由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器
7、、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机AT89S52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接12864液晶显示器用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键09输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下
8、键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案。2.3系统总体设计本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可
9、,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分、红外部分组成,软件部分对应的由主程序、初始化程序、12864显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序,红外线程序等组成。其总体框架如图2-1所示。图2-1第三章 硬件单元模块设计3.1微处理模块3.1.1主要元件介绍AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密
10、度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数
11、器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止,如图3.1所示。图3.1 AT89S52 单片机引脚排列图3.1.2微处理模块电路单片机系统由AT89S51芯片、时钟电路和复位电路三部分组成,主要是控制和处理各模块电路的数据输入、数据输出、显示、报警,红外检测等,如图3.2所示。图3.2 微处理模块电路3.2存储模块AT24C02是一个I2C总线接口E2PROM存储器,用于存储电子密码锁的密码数据。3.2.1主要元件介绍AT24C02是美国ATEML公司生产的低功耗COMS型,I2C总线接口的E2PROM存储器,其内含2
12、56x8为存储空间,具有工作电压宽(2.5V5.5V)、擦写次数多(大于1000次)、写入速度快(小于10mS)、抗干扰能力强、数据不易丢失、体积小等特点。采用了I2C总线进行数据读写的串行器件,占用很少的资源和I/O线,而且支持在线编程,实时存取数据十分方便,如图3.3所示。图3.3 24C02引脚排列图3.2.2 24c08管脚功能:管脚描述:SCL:串口时钟24c08串口时钟输入管脚用于产生机器件所有数据发送或接收的时钟,这是一个输入管脚。SDA:串口数据地址24C08双向串行数据地址管脚用于器件所有数据的发送或接收,SDA是一个开路输出管脚,可与其他开路输出或集电极开路输出进行或(wi
13、re-OR)。A0、A1、A2、A3:器件地址输入端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0,(24C01除外)。使用24C08时最多只可以连接2个器件,所有地址管脚A0、A1、A3都未使用,管脚可以连接到VSS或悬空,如果只用到一个24C08A2管脚可以连接到VSS或悬空。WP:写保护如果WP管脚连接到VCC所有内容都被写保护(只能读取)。当WP连接到VSS或被悬空,允许器件进行正常的读/写操作。表3.4 24C02引脚说明引脚说明功能A0、A1、A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护VCC+1.86.0VVSS地端3.2.3时序图II2C总线
14、协议定义:1.只有在总线空闲时候才允许启动数据传送。2.在数据传送过程中,当时钟线为高电平是,数据线必须保持稳定状态,不允许有跳变。时钟线为高电平时,数据线的任意电平变化将被看作总显的起始或停止信号。起始信号:时钟线保持高电平期间,数据线电平从高到底的跳变作为IIC总线的起始信号。停止信号:时钟线保持高电平期间,数据线电平从低电平到高电平的跳变作为IIC总线的停止信号。 图3.5 24C02时序图3.2.4存储模块电路图中上拉电阻的作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片
15、机传送数。每当成功修改一次密码,系统就自动调用存储程序,将新密码保存在芯片内;当系统需要进行密码识别时,通过程序读取存储器中的密码值存入缓冲区,与所输入密码进行比较,完成密码锁的开锁控制,如图3.6所示。图3.6 AT24C02模块电路3.3输入模块键盘可以分为独立连接式和行列式(矩阵式)两类。根据设计要求,本电路设计采用44行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目。矩阵式键盘又叫行列式键盘。用I/O口线组成行列结构,按键设置在行列的交叉点上。本电路采用4条行线和4条列线,即可组成具有44个按键的键盘。其电路图如下图2.4所示。对键的识别通常用逐行扫描查询法。首先判别键
16、盘中有无按键按下,由单片机I/O口向键盘送(输出)全扫描字,然后读入(输入)列线状态来判断。方法是:向行线输出全扫描字00H,把全部行线置为低电平,然后将列线的电平状态读入累加器A中。如果有键按下,总会有一根列线电平拉至低电平,从而使列输入不全为1。键盘中哪一个键按下,是由行线逐行置低电平后,检查列输入状态实现的,其方法是:依次给行线送低电平,然后查所有列线状态,如果全为1,则所按下的键不在此行,如果不全为1,则所按下的键必在此行,而且是在与零电平列线相交的交点上的那个键,矩阵键盘如图3.7所示。图3.7 矩阵键盘3.4电源模块给整个电路模块提供所需的能量,使电路能够正常工作。我们采用性能稳定
17、可靠、价格低廉的LM78系列稳压块如图3.8所示,由于它内部有电流的限制以及过热保护和安全工作区的保护使得它不会轻易损坏,电源模块如图3.9所示。 图3.8 7805引脚排列图图3.9 电源模块模块电路3.5开关锁模块通过单片机P3.7控制三极管的工作状态来决定继电器的断开与吸合,从而达到开关锁的目的。当用户输入的密码正确而且是在规定的时间输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示锁开;灭,表示锁合,如图3.10 所示。图3.10 开关锁模块3.6报警模块报警部分由蜂鸣器发声装置
18、及外围电路组成,高电平不发声,当输入三次密码错误时,单片机的P3.6引脚为低电平,三极管Q1导通蜂鸣器发声报警,如图3.11所示。图3.11 报警模块电路3.7显示模块本系统采用LCD12864液晶显示,用于直观地提示用户输入开锁密码、密码信息的正误提示、开锁信息的显示等,显示整个电子密码锁的工作状态,如图3.12所示。 图3.12 12864液晶显示模块电路图3.13 12864液晶显示引脚功能表管脚号管脚名称电平管教功能描述1GND0地2VDD+5V%10电源电压+5V3VO0-10液晶显示驱动电压4RSHLRS=“H”表示DB7DB0为显示数据RS=“L”表示DB7DB0为指令数据5R/
19、WHLRW=“H”数据被读到DB77DB0RW=“L” DB7DB0的数据写到IR或DR6EHL数据线7DB0HL数据线8DB1HL数据线9DB2HL数据线10DB3HL数据线11DB4HL数据线12DB5HL数据线13DB6HL数据线14DB7HL数据线15FSBHL并串/行接口选择 H并行 L串行16N.CHL空脚17RSTHL复位信号18VEE-10LCD驱动负电压输入19LEDK+5背光电源20LEDA0背光3.8红外模块电路原理图1、红外模块电路如图3.14。图3.14 红外模块电路如上所示,左图为红外输入,其中P3是红外接收头,“1”脚为信号输出端,连接到单片机。“2”脚为接地端,
20、“3”脚为电源端,其中C5起电源滤波作用,R9为信号端提供上拉电平。红外线的光谱位于红色光之外, 波长是0.761.5m,比红光的波长还长。红外检测是利用红外线进行传递信息的一种控制方式,红外检测具有抗干扰,电路简单,容易编码和解码,功耗小,成本低的优点。红外遥控几乎适用所有家电的控制。红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号(载波信号) ,通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。脉时调制(PPM)是红外数据协会(IrDA)和国际电子电工委员会(IEEE)都
21、推荐的调制方式,本设计采用脉时调制方法,即用两个脉冲串之间的时间间隔来表示二进制信息,数据比特的传送仿照不带奇偶校验的RS232 8通信,首先产生一个同步头,然后接着 8 位数据比特。第四章 软件设计4.1软件工作流程软件工作流程包括7个部分:系统的初始化、调用显示、24C08的读写操作、校对开锁、出错报警处理、数据显示、红外检测。初始化主要包括:中断和定时器的初始化,以及系统参数等的初始化;对24C08的读写操作主要完成对原先密码进行更改或相关设置的目的,然后将更新后的密码保存到其中。校对开锁是要对输入的密码和保存在存储器中的密码相比较,相同就通过,否则要进入出错报警阶段。3次都输入的是错误
22、密码,系统将长时间报警并自锁,输入管理员密码解锁。其它子模块均为各个芯片的具体读写操作,通过单片机模拟读写时序。程序流程图图4.1 流程图其余子模块均为单片机模拟各芯片的读写时序,此处不做仔细阐述。4.2密码修改流程按下更改密码键,提示输入旧密码,旧密码经验证后,提示输入新密码,两次输入新密码无误,按下确认键,密码被存入24C08中,更改密码成功,如图4-2。图4.2 密码修改流程图第五章 调试与实现5.1硬件调试单片机应用系统的硬件调试和软件调试是分不开的许多硬件故障只有通过软、硬件联调才能发现,但一般是先排除系统中比较明显的硬件故障后才和软件一起联调。常见的硬件故障: (1)逻辑错误 硬件
23、的逻辑错误是由于设计错误和焊接过程中的工艺错误而造成的,包括错线、开路、短路等,其中最常见的是短路故障。 (2)元器件错误 元器件错误的原因有器件损坏或性能不符合要求,电解电容、二极管的极性接反或集成块装反等。 (3)可靠性差 应用系统可靠性差的原因很多,如内部和外部的干扰、电压纹波系数过大、器件负载过重等均会造成系统的可靠性差。另外,走线和布置的不合理也会造成系统可靠性差。 (4)电源故障 电源故障包括:电压值不符合设计要求、电源功率不足、负载能力差、纹波太重等。 硬件调试办法 脱机调试是在加电前,先用万用表等工具,按图纸仔细核对线路是否正确,并对元器件的安装、型号、规格等进行仔细检查,特别
24、焊接时有无走线之间相互短路等。5.2软件调试程序在KEIL C51上调试,采用模块程序设计技术,则逐个模块调好后再进行系统程序总调。 对于模块结构程序要一个个子程序分别调试。调试时,一定要符合入口条件和出口条件,调试可用单步运行和断点运行方式,通过检查用者系统的CPU现场情况、RAM的内容和IO口的状态,检测程序执行结果是否符合设计要求,有无循环错误、有无机器码错误以及转移地址的错误,同时,还可以发现系统中存在的硬件设计错误和软件算法错误。 各程序模块通过后,则可以把相关功能块连在一起进行总调。这个阶段若有故障,可以考虑各子程序运行时是否破坏了现场,缓冲单元、工作寄存器是否发生冲突,标志位的建
25、立和清除是否有误,堆栈区是否有溢出,输入设备的状态是否正常等等,若用者系统是在开发机的监控程序下运行时,还要考虑用者缓冲单元是否和监控程序的工作单元发生冲突。 单步和断点调试后,还应进行连续调试,用以确定定时精度、CPU的实时响应等问题。 当全部调试和修改完成后,将程序固化到AT89S51中。进行整机调试。各功能实现则调试完成。5.3软件调试心得1.由于Keil C对中文支持不太好,因而会出现显示的光标与光标实际所在不一致的现象,这会对修改中文注释造成影响。在电脑界面下面,我们可以把字体设置为Courier,这样就可以显示正常。2.当使用有片外内存的MCU(如W77E58,它有1K片外内存)的
26、时候,肯定要设置标志位,并且编译方式要选择大模式,否则会出错。3.当使用Keil C跟踪程序运行状态的时候,要把引起Warning的语句屏蔽,否则有可能跟踪语句的时候会出错。4.在调用数组的时候,Keil C是首先把数组Load进内存。如果要在C中使用长数组的时候,我们可以使用code关键字,这样就实现了汇编的DB的功能,Keil C是不会把标志code的数组Load入内存的,它会直接读取Rom。5.当编程涉及到有关通信,时序是很重要的。拉高管脚的执行速度远远比检查管脚电平的要快。6.在等待管脚电平变化的时候,我们需要设置好超时处理,否则程序就会因为一个没有预计的错误而死锁。7.能用C语言实现
27、的地方,尽量不要用汇编,尤其在算法的实现,用汇编是晦涩难懂。8.程序的几个参数数组所占篇幅很大,其中液晶背景数组最长,有四千个Byte,因而把那些初始化数组都放在另外一个C文件,在主文件使用使用关键字extern定义,这样就不会对主文件的编写造成干扰。9.所有函数之间的相关性越低越有利于以后功能的扩展。5.4结果分析通过以上的测试分析,超市存物柜密码锁能够实现密码开关锁功能,在没有输入密码前12864液晶显示界面模式,当有人随意按某个键后,系统退出界面模式进入输入密码模式,输入三次密码仍然错误系统报警,按键进入恢复出厂模式,输入管理员密码解锁后蜂鸣器停止报警,恢复了出厂设置。如果要更改原密码,
28、在输入原密码后,按键进入密码修改模式,键入两次新密码无误后,按确认键后密码修改成功。5.5 Proteus仿真在硬件和软件都能实现的条件下,利用Proteus进行仿真,通过不停的调试与改正,最后终于实现了密码锁的功能,Proteus仿真结果如图5-1所示。当连好各个模块电路的导线后,导入芯片程序,运行该密码锁仿真电路,通过按键可以进行密码锁的开锁,修改密码,错误密码3次以上报警的操作,LCD显示屏显示相应的操作现象,密码正确可以开锁,进而可以修改密码,密码错误三次以上由喇叭发出报警声,如果系统出现错误还可以通过复位电路进行复位。总之,在原有的理论基础上,通过Proteus能够成功的进行密码锁基
29、本操作的仿真,实现了相关的功能。如图5-1。 图5-1 5.6 PCB板制作图5-2第六章 总结与展望以上为毕业期间所作的毕业论文-超市存物柜密码锁设计,它经过多次修改和整理,可以满足设计的基本要求。输入密码时,如三次输入错误,则进行报警,在输入时,12864显示为“*”,在修改密码时,则显示数字。次设计还具有防盗功能,如对密码控制系统进行破坏,有报警功能。通过对该课题的研究,加深对所学知识的理解,提高对课外知识的学习能力, 增强知识的应用能力,提高解决实际问题的能力,培养自我创新意识。积累实践经验,为以后的发展打下基础,也为以后我们自己在这方面的发展打下基础,并能够在这方面培养自己的兴趣。毕
30、业设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。通过这次毕业设计,无论从选题到定稿,从理论到实践都使我学到了很多东西,它不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。同时也明白了理论与实践相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实
31、际动手能力和独立思考的能力。致 谢三年的大学生活不知不觉中就要结束了,在这段难忘的生活中,有许多美好的回忆,在毕业论文设计之中,我的老师和我的同学都不吝的指导我,我需要感谢的人太多太多,首先要感谢我的学校,感谢在这三年中让我领悟到诚实做人,踏实做事,扎实做学问的深刻道理,让我从一个懵懂得高中生变成一个成熟的大学生,其次我要感谢的是我的导师王老师。虽然王老师平日里工作繁多,但在我做毕业设计的每个阶段,都给予我悉心的指导和帮助,关心我们每个阶段所做的工作,当然,还要感谢寝室的兄弟们在我完成论文的过程中给予我的帮助和鼓励,也是他们陪我度过了这四年的生活,感谢能有这段美好的记忆。现在即将挥别我的学校、老师、同学,还有我三年的大学生活,虽然依依不舍,但是对未来的路,我充满了信心。最后,感谢在大学期间认识我和我认识的
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1