1、基于单片机的密码锁设计基于单片机的密码锁设计二零一四年四月基于单片机的密码锁设计摘要:电子密码锁具有安全性强,不易被破坏的优点,与传统的机械锁相比有其独特的优势。研究这种锁的初衷,是提高锁具的安全性,因为电子密码锁的密钥量(密码量)极大,可以和机械锁配合,避免因钥匙被仿制而出现的问题。本论文从电子密码锁系统的功能,硬件电路设计,软件设计分别论述这一系统。通过使用单片机STC89S52作为控制核心,连接外部存储器24C02,实现密码断电保存,通过七段数码管显示,制作一种密码锁。该锁具有开锁、解密、修改、保存密码、用户密码等基本的密码锁功能,还具有调电存储、数码提示等功能。关键字:单片机;存储器;
2、七段数码管;自动化摘 要 I1绪论1.1 本设计课题的目的和意义1.1.1 机械锁的缺点社会不断的进步,人们生活水平也在不断地提高,安全成为现代居民最关心的问题之一。从古至今,锁一直就是保护人们财产的必不可少的工具。目前,我们最常用的锁就是圆柱形销栓的弹子锁,其机构简单,使用方便,价格便宜,但在使用中暴露了很多缺点: 容易被开启。目前,传统机械门锁仅仅是单纯的契合型机械装置,无论其宣称如何复杂、坚固,所谓的“开锁大王”仍然能在数分钟之内就可将其开启,并且不留任何痕迹。 内部机械结构复杂、故障率高:机械门锁由单纯的契合型机械装置构成。由于机械结构复杂,制造、装配工艺落后,在使用中锁具会因为其配件
3、出现阻滞、变形、脱落等问题而导致失效。 换锁麻烦。当钥匙遗失、被人配制、房子出租收回后或有其它不安全因素存在时,就必须换锁,一年内换几次锁的情况也时有发生。 互开率高。由于机械钥匙自身编码能力极低,导致互开率高,即使机械钥匙匙形编码不同,也同样存在互开的问题。在同一幢楼里甚至是同一单元的两对门,也可能会出现别人家的钥匙能打开你家门的问题。 易被破坏。我们长期以来所使用的门锁不但很不安全,而且非常容易被破坏,因为机械锁具的锁芯孔被一点点异物堵塞就会开不了门,类似的破坏随手操作几秒钟就可得逞,报纸、电视等媒体上经常有此类报道。 带钥匙的烦恼。一道门至少需要带一把钥匙,所以我们都曾饱受携带一大串钥匙
4、的痛苦。一旦有一串钥匙丢失,出于安全考虑,会造成多把门锁需要更换的情况。 钥匙开门的烦恼。开门前总要花一定时间在许多钥匙之间挑选,在插入钥匙开门过程中还要分清左旋还是右旋,并转动几周方能开锁,经常会因为天地杆等机械运动不畅而导致开门困难,特别是老人和小孩有时根本就开不了门。1.1.2 电子密码锁的优点 硬件结构简单,功能丰富。采用单片机来实现的电子密码锁,在设计时遵循以软件代替硬件,能用软件实现的东西就不用硬件去做,而且可以在硬件不变的情况下,改动相应的软件,派生出不同功能的产品。 密码组合多,安全性好。本设计采用了09 共十个数字作为密码编码,密码可在09 位内任意设置。如果设定密码为10
5、位,则密码组合为100多亿种,即使每20秒测试一组密码,进行试探性破译,试完全部密码大约要6000多年。如果密码长度再增加,破译就更加困难。 安全方便。无需携带金属钥匙,只需记得一组密码。一旦发现密码有泄露的危险,可即时更改密码。 为社区的电子化管理提供了方便。现代社会是电子社会,电子存在于我们生活的每一角落,出于管理的统一和方便考虑,电子密码锁替代机械门锁是一种趋势。根据国外的统计资料,装有电子防盗的商业区或居民区盗窃犯罪率平均下降30%左右。1.1.3 课题的研究现状 随着电子技术的发展单片机功能的增强,出现了带微处理器的智能密码锁,它除了具有电子密码锁的功能外,还引入了智能化管理、专家分
6、析系统等功能,从而使密码锁具有很高的安全性、可靠性。目前发达国家已经大规模地应用智能门禁系统,可以通过多种更加安全,更加可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,主要出现在保险柜、密码箱、高级宾馆等场所,家居用的较少,究其原因有以下几点: 价格原因。现在买一把普通的机械锁,价格在几块到几十块左右,而电子密码锁的价格较贵,一般在百元以上,进口的甚至要上千元,买一把这样的锁对很多家庭来说,是很难接受的。 厂商的推广力度不够。电子密码锁属于较新的高科技产品,许多用户对其并不了解,更不用说拿它与传统的机械锁作比较。而一般的商场也不会经营这种产品,用户即使想买也难以买到。目前我国开发
7、的电子密码锁的技术还比较落后,开发的密码锁大多采用分离电子元件或普通数字电路设计生产的,尽管与机械钥匙锁相比有许多优点,但智能化程度低,编码组合仍较少。 采用STC89C52 单片机制作的电子密码锁,就克服了以上的两大缺陷。其主要特点为: 保密性好。由于采用6位密码,随机破码率很低,并且在密码可能泄露的情况下及时更改密码,避免因人员的更替等特殊情况而使锁的安全性下降。 破解保护。连续三次输入错误密码将锁定键盘一段时间。 界面简洁。操作简单人性化,故障率低,密码输入操作简便。 通用性强。可根据需要可安装在不同的设备上1.2 电子密码锁电路程序的功能与设计方案随着社会的发展,人民生活水平的提高,防
8、盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了人们亲睐。由单片机系统、矩阵键盘、LED 显示和报警系统组成的电子密码锁。具有开锁、超次锁定、解密、修改、保存密码、用户密码基本的密码锁的功能,还具有调电存储、声光提示等功能。克服了普通锁需要随身携带钥匙且易丢失、保密性差的缺点,在宾馆、办公大楼、仓库、保险柜和家庭普遍适用。本设计中要求电子密码锁的基本功能如下: 电源开始后,显示器显示“P0000”; 按“NC”,清除显示器为“000000”; 更改密码时,先按“a,c”再输入新号码,即可建立新号码; 键立号
9、码,再按“OK”开门键,若号码与密码相符,则门会打开,否则显示三次后器会自动报警;密码开锁电路原理图如图1.1所示。 键盘设计要求如表1.1所示。图1.1 密码锁开锁电路原理图表1.1 键盘设计0123456789空空AOKCNC2电子密码锁方案设计2.1 硬件设计方案2.1.1 主电路的原理设计基于单片机的电子密码锁主要以STC89C52单片机为电子密码锁系统核心,使用4*4矩阵键盘作为数据输入方式,驱动数码显示器提示程序运行过程和开锁的步骤,利用AT24C02芯片实现掉电存储。各电路有其特有功能,以下将分别论述,系统功能框图如图2.1所示。 图2.1 系统功能框图2.1.2 单片机应用系统
10、电路方案单片机控制电路主要由 STC89C52 与其外围设备组成 ,STC89C52 应用方案的确定如下。 STC89C52 的组成与结构 STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,包括 CPU、存储器、可编程 I/O 口、定时/计数器、串行口等,各部分通过内部总线相连。除此之外,还有驱动器、锁存器、指令寄存器、地址寄存器等部分。 STC89C52的引脚 STC89C52单片机实际有效的引脚为 40 个,为了尽可能缩小体积,减少引脚数,STC89C52的不少引脚还具有第二功能。40 个引脚大致分为 4 类:电源、时钟、 控制和 I/O 引脚。1)电源:a.VCC
11、 芯片电源,接+5V;b.VSS接地端。2)时钟:XTAL1、XTAL2 晶振电路反相输入端和输出端。3)控制线控制线共4 根,其中 3 根是复用线。a.ALE/PROG 地址锁存允许/编程脉冲。b./PSEN 外 ROM 读选通信号。c.RST/VPD 复位/备用电源。d./EA/VPP 内外 ROM 选择端/编程电源。4)I/O 线,STC89C52共有4个8位并行 I/O 端口,共 40 个引脚。STC89C52引脚如图2.2所示。a.P0口(P0.0P.07):8 位双向 I/O 口。在访问外部存储器时,P0 口用于分时传送 低 8 位地址(地址总线)和 8 位数据信号(数据总线)。在
12、不接外 ROM 和外 RAM 时,P0 口可做双向 I/O 口用。b.P1口(P1.0P1.7):8 位准双向 I/O 口(准双向是指口内部有固定的上拉电阻)。 c.P2口(P2.0P2.7):8位准双向 I/O 口。在访问外部存储器时,P2 口用于传送高8 位地址(属地址总线)。d. P3口(P3.0P3.7):8 位准双向 I/O 口。可做一般 I/O 口用,同时 P3 口每一引脚还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线) 图2.2 STC89C52引脚图2.1.3 键盘接口电路 键盘是单片机系统中最常用的人机联系的一种设备,它由若干个按键组成,用户通过键盘向 CPU 入
13、数据或命令以实现简单的人机通信。 对键盘的识别可分为两类:一类是由专门的硬件电路来识别(如 2376、74C922),它使用起来方便,但需要价格昂贵的芯片,单片机系统中一般不采用;另一类靠软件来识别 ,它结构简单,价格便宜,应用灵活。本设计中查询的方法识别键,优点是电路简洁,节省硬件,抗干扰能力强,应用灵活,缺点是占用较多的 CPU 时间资源。非编码键盘可以分为两种结构形式:独立式键盘和行列式键盘。本次设计中采用的是行列式键盘,可节省 I/O 口线。其工作原理是:行线 P1.0P1.3 是输入线,CPU 通过其电平的高低来判别键盘是否被按下。依次使列线 P1.4P1.7 中的一根输出为低电平,
14、则只有与之对应的键按下时,才能使行线为低电平。2.1.4 数码管数码显示电路显示数码管(动态)工作原理:逐个地循环点亮各位显示器,也就是说在任一时刻只有 1 位显示器在显示 。LED动态显示的优点是用较少的端口,可以扩展多位LED显示器。缺点是过多的占用CPU的时间。除了LED动态显示,还有一种是LED静态显示。LED静态显示的优点是不占用CPU的时间,缺点是占用过多的输出端口。采用动态显示的数码管为了使人看到所有显示器都在显示,就得加快循环点亮各位显示器的速度(提高扫描频率) ,利用人眼的视觉残留效应,给人感觉到与全部显示器持续点亮的效果一样。一般地,每秒循环扫描不低于 50 次。数码管显示
15、电路的工作原理:数码管显示时,P0.0-P0.3 根据程序输出高电平或低电平,送到 7447 译码器的四个输入端,经过7447译码后由 7 个输出端输出,输出信号经过限流电阻(防止数码管因电流过高而损坏)送至数码管的阴极。同时,单片机的 P0.4-P0.6 根据要求输出高电平或低电平,送到 74LS138 的三个输入端,经译码后由输出端输出,此时,74LS138 的输出端只有一位为“0”,使其中的一只三极管导通,引入电源,驱动与其对应的数码管,数码管工作。数码管的各发光二极管根据对应的高电平或低电平发光或不发光。每只数码管依次循环,就完成了发光电路的设计。2.2 软件设计方案2.2.1 系统的
16、主程序由于用户在使用系统的过程中,要完成初始化、设置中断向量、检查有无按键按下,以及调用显示等。可能在任何时刻按下任何按键,而程序都必须对此做出正确响应。所以主程序流程的主要思路是是根据按键的不同进行不同的程序处理,主程序的流程如2.3所示。图2.3 主程序的流程2.2.1 显示子程序当密码地址传送给RO后,就会调用显示子程序,OK开放后延时,返回。OK不开放的话,又会重新调用显示子程序,直到开放。显示子程序的流程如图2.4所示。图2.4 显示子程序的流程2.2.2 设定新密码程序当开机之后,输入新密码,标志位为1后,将密码存入AT24C02和AT24C02地址写入01H,这样密码就设定好了。
17、设定新密码程序框图如图2.5所示图 2.5 设定新密码程序框2.2.3 密码比较子程序框比较输入的密码与程序里的密码是否一样,直到输入正确的密码之后,开锁。密码比较子程序框如图2.6所示图2.6 密码比较子程序框2.3 密码存储电路方案2.3.1 密码存储电路 24C02是一种存储器可以定义为 16 位ORG 引脚接 Vcc或者定义为 8 位ORG引脚接GND的1K位的串行 EEPROM 每一个的存储器都可以通过 DI 引脚 或 DO引脚进行写入或读出,器件可以经受 1,000,000 次的写入/擦除操作片内数据保存寿命达到100年器件可提供的封装有 DIP-8 SOIC-8或TSSOP-8。
18、 24C02是一个有1024位内含工业标准微处理器的非易失的存储器。93C46可以选择为16位或8位结构。当选择16位结构时,24C02有7条9位的指令用来控制对器件进行读、写和擦除操作;当选择8位结构时,24C02有7条10位的指令来控制对器件进行读、写和擦除操作。24C02的所有操作都在单电源上进行,当执行任何的写操作时内部的升压电路将提供高压给芯片。 指令、地址和写入的数据在时钟信号SK的上升沿时由DI引脚输入,DO引脚除了从器件读取数据或进行写操作后查询准备/繁忙(ready/busy)的器件工作状态外,平常是高阻态的。 准备/繁忙(ready/busy)是开始了一个写操作后选择器件C
19、S为高电平后从DO引脚读的用来测定期间工作状态的信号,DO位低电平则表示写操作还没有完成。当DO为高电平时则表示器件可以输入下一条指令,此时如果有需要,可以在DI引脚移入一个高电平,DO会进入高阻态,DO引脚会在时钟SK的下降沿时进入高阻态,将DO引脚恢复高阻态值得推荐在DI和DO合用一个I/O口来读/写的应用中。 所有送往器件的指令格式为一个高电平“1”的开始位,一个2位或4位的操作码,写入数据时的6位(当选择8位结构时为7位)以及16位数据(当选择8位结构时为8位)。24C02的操作指令如表2.1所示。表2.1 24C02的操作指令指令开始位操作码 地址数据 注释X8X16X8X16XRE
20、AD110A6-A0A5-A0读地址An-A0的数据ERASE111A6-A0A5-A0擦除An-A0的数据WRITE101A6-A0A5-A0D7-D0D15-D0把数据写到地址An-A0的存储器中EWEN10011XXXXX11XXXX写允许EWDS10000XXXXX00XXXX写禁止ERAL10010XXXXX10XXXX擦除全部存储器的数据WRAL10001XXXXX01XXXXD7-D0D15-D0把数据写到全部的存储器中2.3.2 操作指令 读操作指令(READ)在接收到一个指令和地址(从DI引脚在时钟驱动下输入)之前,24C02的DO引脚是高阻态的。接收到读指令和地址后,DO引
21、脚先输出一个虚拟的第电平,然后数据根据时钟信号移位输出(高位在前)。数据在时钟信号(SK)的上升沿时输出并经过一定的时间后稳定(tpDO或tpDI)。 写操作指令(WRITE)在接收到写指令、地址和数据后,片选引脚(CS)不片选芯片的时间要必须大于Tcs-min。片选引脚(CS)在下降沿的时候,器件开动自动时钟去擦除并把数据存放到指定存储器。在器件进入自动时钟的模式后时钟信号引脚(SK)的信号不是必须的24C02的准备/繁忙状态可以选择器件并测试数据输出引脚DO得到。因为器件有在写入前自动清除的特性,所以没必要在写入之前将存储器该地址的内容擦除。 擦除操作指令(ERASE)在接收到擦除指令和地
22、址以后,片选引脚(CS)不片选芯片的时间要必须大于Tcs-min。片选引脚(CS)在下降沿的时候,器件开动自动时钟,擦除指定存储器。在器件进入自动时钟的模式后时钟信号引脚(SK)的信号不是必须的。24C02的准备/繁忙状态可以选择器件并测试数据输出引脚(DO)得到。一旦清除了,该位就回到逻辑1的状态。 擦除/写入允许(EWEN)和禁止(EWDS)操作指令。24C02在上电时是默认写禁止的。任何在上电和写禁止(EWDS)指令后的写入操作都必须先发送写允许(EWEN)指令。一旦设置了写允许,它会持续有效直到断电或发送一条写禁止指令。写禁止指令用来禁止对24C02的写入和擦除操作,同时也可以防止意外
23、的对器件进行写入和擦除。数据可以照常从器件中读取,论是写允许还是写禁止状态。 全部擦除(ERAL) 在接收到全部擦除指令后,片选引脚(CS)不片选信号的时间要必须大于Tcs-min。片选引脚(CS)在下降沿的时候,器件开动自动时钟擦除存储器的所有内容。在器件进入自动时钟的模式后时钟信号引脚(SK)的信号不是必须的。24C02的准备/繁忙状态可以选择器件并测试数据输出引脚(DO)得到。一旦清除了,所有位都回到逻辑1的状态。 写全部操作指令(WRAL) 在接收到写全部指令后,片选引脚(CS)不片选芯片的时间要必须大于Tcs-min。片选引脚(CS)在下降沿的时候,器件开动自动时钟把数据内容写满器件
24、的所有存储器。在器件进入自动时钟的模式后时钟信号引脚(SK)的信号不是必须的。24C02的准备/繁忙状态可以选择器件并测试数据输出引脚(DO)得到。没有必要去在写全部之前把存储器内容擦除。24C02引脚定义如图2.4所示:Vcc:电源引脚,+5V。GND:地线。CS:片选信号。在两条相临指令执行中,CS 必须最少产生 500NS 的低电平,以指明前条指令的结束。DI:数据输入端 DI 用于在串行时钟 SK 的同步下输入起始位,操作码地址和写入数据。DO:数据输出端。数据输出端 DO 用于在读方式中,在串行时钟 SK 的同步下输出读出的数据。SCK :时钟信号,所有操作码、址码、数据位均在 SC
25、K 信号的上升沿输入或输出,SK 信号的最高频率为 1MHz。ORG:存储器结构选择接口,当ORG接Vcc时,存储器为16位结构。当ORG接GND时,存储器为8位结构。当ORG悬空时,内部的上拉电阻把存储器选择为16位结构。图2.7 24C02引脚图3开锁控制电路设计图开锁控制电路主要由、继电器、电解电容、瓷片电容、蜂鸣器、三极管等组成。其优点是结构简单,成本低,操作简便。3.1 电路设计图3.1.1 声光提示电路设计声音提示电路采用小蜂鸣器提示。蜂鸣器能够根据脉冲信号,以及信号的频率发出各种不同的声音,这样可以根据系统要求在密码输入正确和错误时发出不同的声音提示,已达到报警的要求。光提示是在
26、密码输入正确时,绿色LED亮。密码输入三次错误时,红灯亮,蜂鸣器电路通,LED电路图如图3.1所示,发光二极管电路蜂鸣器电路如图3.2所示。图3.1 LED电路图 图3.2 发光二极管和蜂鸣器电路3.1.2 显示模块设计本设计中,显示模块采用数码显示器显示。如下所示,图3.3所示为数码显示器的电路接口示意图。图3.3 数码显示器的电路接口示意图本设计中液晶串口一共用到11根导线与单片机相连, 具体连接情况如表3.1显示模块与MCU连接说明所示。表3.1 显示模块与MCU连接说明序号数码显示器引脚STC89C52单片机引脚序号数码显示器引脚STC89C52单片机引脚1RS引脚P2.5(A13)7
27、D3引脚P0.3(AD3)2R/W引脚P2.6(A14)8D4引脚P0.4(AD4)3E引脚P2.7(A15)9D5引脚P0.5(AD5)4D0引脚P0.0(AD0)10D6引脚P0.6(AD6)5D1引脚P0.1(AD1)11D7引脚P0.7(AD7)6D2引脚P0.2(AD2)3.2 AT24C02掉电存储单元的设计本设计中掉电存储单元采用AT24C02外部存储器,其作用是在系统电源断开的时候,存储当前设定的密码数据。如下所示,图3.4为AT24C02管脚示意图,表3.2为AT24C02管脚说明。图3.4 AT24C02管脚示意图表3.2 AT24C02管脚说明管脚名称功能管脚名称功能A0
28、 A1 A2器件地址选择SDA串行数据/地址SCL串行时钟信号WP写保护VCC1.8V-6.0V工作电压VSS接地本设计中,AT24C02的SCL和SDA引脚接上拉电阻后与单片机的P3.4(T0)和P3.5(T1)脚相连,AT24C02电存储单元设计如图3.5所示。图3.5 AT24C02电存储单元设计图3.3 密码锁电路图 密码锁的主电路图如图3.6所示。图3.6 主电路图4 系统的检测与测试硬件电路组装之前一定要仔细核对硬件系统设计原理的正确性,包括电子元器件参数选用的正确性和原理的正确性,这取决于设计者的学识和经验积累。对没有把握的电路可以通过实验板上直接焊接实际电路来进行调试和验证。在
29、系统通过理论分析后,便可进行印刷电路设计和加工。4.1系统的检测4.1.1 排除逻辑故障这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线 和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。4.1.2 排除元器件失效造成这类错误的原因有两个:一个是元器件买来时就已坏了; 另一个是由于安装错,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致
30、。在保证安装无误后,用替换方法排除错误。4.1.3 排除电源故障在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查 VCC 与 GND 之间电位,若在 5V48V 之间属正常。4.2 系统的测试4.2.1 电子密码锁测试的仪器是电子密码锁,密码锁开机显示如图4.1。4.2.2 测试步骤 开机,输入初始化密码“012345”再按确认“OK”键,屏幕显示“HELLO”。并且LED绿灯亮,表示密码输入成功。密码锁开机显示如图4.2。 关机,先按重设密码。再开机按“更改密码键a和c”,再输入需要更改的密码。 输入更改密码,观察屏幕显示,观察屏幕显示“HELLO”,且绿灯亮,更改密码成功。密码锁开机显示如图4.2。 输入错误密码,按OK键确认。观察屏幕显示,跟开机状态屏幕更显示一样,再次输入错误密码,按OK键确认。然后连续输入2次错误密码,观察。还是一样,没有区别。 第三次输入错误密码,按“OK”键之后,蜂鸣器报警,红灯亮。 密码锁密码输入错误报警图如图4.3。 关机重启后,输入正确密码,显示“HELLO”,且绿灯亮,表示密码锁正常。 根据步骤(1)步骤(6),重复设置不同数据,观察结果。多次后显示无误,表示密码锁设计成功。图4.1 密码锁开机显示图4.2 密码锁密码输入正确开锁图4.3 密码锁密码输入错误报警结论随着大规
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1