基于单片机的电子密码锁的方案设计书.doc

上传人:牧羊曲112 文档编号:4958023 上传时间:2023-05-26 格式:DOC 页数:48 大小:419.50KB
返回 下载 相关 举报
基于单片机的电子密码锁的方案设计书.doc_第1页
第1页 / 共48页
基于单片机的电子密码锁的方案设计书.doc_第2页
第2页 / 共48页
基于单片机的电子密码锁的方案设计书.doc_第3页
第3页 / 共48页
基于单片机的电子密码锁的方案设计书.doc_第4页
第4页 / 共48页
基于单片机的电子密码锁的方案设计书.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《基于单片机的电子密码锁的方案设计书.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁的方案设计书.doc(48页珍藏版)》请在三一办公上搜索。

1、摘要1Abstract1前言2第1章绪论3第1.1节电子密码概述31.1.1 电子密码锁的特点31.1.2 电子密码锁发展趋势3第1.2节设计任务与要求4第2章电子密码锁的方案设计5第2.1节系统工作原理5第2.2节系统方案选择52.2.1 键盘输入模块方案的选择52.2.2 显示模块方案的选择7第3章电子密码锁的硬件设计10第3.1节主要元器件103.1.1 主控芯片AT89S52103.1.2 EEPROM数据存储器24C02133.1.3 串入并出移位寄存器74HC164143.1.4 八位数据锁存器7427315第3.2节系统硬件电路的设计163.2.1 数据处理及控制模块163.2.

2、2 键盘输入模块173.2.3 密码存储模块173.2.4显示模块183.2.5 其他模块19第3.3节电子密码锁总体结构图20第4章电子密码锁软件设计20第4.1节系统软件设计流程图20第4.2节系统功能软件224.2.1 初始化程序224.2.2 按键检测程序224.2.3 按键处理子程序234.2.4 密码修改子程序25第5章系统整体调试26结论27参考文献28致谢29附录30基于单片机的电子密码锁的设计XX大学应用技术学院 06测控 朱剑波摘 要本课题设计以AT89S52单片机为核心器件,结合按键电路、LED数码管显示电路、存储电路、报警指示电路和开锁机构,利用单片机灵活的编程设计、丰

3、富的I/O端口来控制整个系统实现电子密码锁的基本功能。系统能实现密码的输入、清除、显示。密码正确开锁,密码错误报警,密码修改功能。关键词:单片机,电子密码锁,44矩阵键盘,EEPROMAbstractbined with the pressed key circuit,LED digital display circuit, storage circuit, alarm instruct ion cilcuit and unlock machine the design takes the SCM of AT89S52 as the core ponent to control the ent

4、ire system achieving the basic functions of the electronic cipher lock through the software program with its flexible programming designand rich I/O port.This system has the following functions: password input,clear and display,unlock when the passwordis correct, alarm when the password is wrong, an

5、d user can change passwordKey words: Single-chip,Electronic locks,44matrix keyboard,EEPROM前 言当今社会物质财富的日益增长和人们生活水平的提高安全防盗己成为现代居民最关心的社会问题之一。而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。日前,最常用的锁大部分还是传统的机城锁,其机构简单、便用方便、价格便宜。但在使用中暴露了很多缺点:一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。然而,眼下假冒伪劣的机械锁泛浅成灾,互开率非常

6、之高。所谓互开率,是各种锁具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。经国家工商局、国家内贸局,中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍。据统汁,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。根据国外的统计资料,装有电子防盗装置的商业区或居民区盗窃犯非率平均下降30 左右。二是钥匙一旦丢失,无论谁捡到都可以将锁打开,三是机械锁的材料大多为黄铜质地较软,容易损坏。四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。许多智能锁相继问世,但这类产品的特点是针对特定指纹或有效卡,只

7、能适用于XX要求高且仅供个别人使用的箱、柜、房间等。另外,卡片式的易丢失,加上其成本一般较高,在一定程度上限制了这类产品的普及和推广。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生密码锁具有安全性高、成本低、功耗低、易操作等优点。电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁XX性差的缺点。如果采用4位密码,则密码组合可达到1000个,每增加1位,密码组合就增加10倍:同时电子密码锁利用EEPROM存储器,将设置的密码存入EEPROM中,从而克服旧式电子密码锁电路断电后所设置密码丢失的缺点 在安全技术防X领域,具有防盗报警功能的电子密码

8、锁逐渐代替传统的机械锁,克服了机械式安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除了具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性、应用日益广泛。第1章 绪论第1.1节 电子密码概述1.1.1 电子密码锁的特点电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。密码锁是锁的一种,与传统的机械锁不同的是,它开启时用的是密码,即一系列的数字或符号而不是金属的钥匙。密码锁的密码通常都只是排列

9、而非真正的组合。密码锁的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,特点如下:(1)XX性好,编码最多,远远大于传统锁,随机开锁成功率几乎为零。(2)密码可变。用户可以经常更改密码,防止密码被盗,同时也可以通免因人员的更替而使锁的安全性下降。(3)密码输入保护。当输入密码多次错误时,报警系统自动启动。(4)电子密码锁操作简单易行,一学即会。1.1.2 电子密码锁发展趋势在日常生活和工作中,住宅与部门的安全防X、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统

10、的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便且钥匙丢失后安全性即大打折扣。针对这些锁具给人们带来的不便,用密码代替钥匙的密码锁应运而生。它的出现为人们生活带来了很大的方便,并且有广阔的市场前景。随着电子元件的快速发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全XX性更强,由以前的单密码输入发展到现在的密码加感应元件,实现了真正的电子加密。出于安全、方便等方面的需要,许多电子密码锁已相继问世。但这类产品的特点只针对特定的有效卡、指纹、或声音有效,且不能实现远程控制,只能适用于XX要求高且供个人使用的箱、柜子、房间等。由于数字、字符、图像、人体生物特征和时间等要素均可成

11、为钥匙的电子信息,组合使用这些信息能够使电子密码锁获得更高的XX性,如防X森严的金库,需要使用复合信息密码的电子密码锁。组合使用信息也能够使电子密码锁获得无穷扩展的可能,使产品多样化,让用户有更多的选择。可以看出把电子信息组合作为密码是电子密码锁以后发展的趋势。第1.2节 设计任务与要求本次设计采用单片机为主控芯片,结合外围电路,构成电子密码锁,用户想要打开密码锁,必修先通过健盘输入正确的密码才能将锁打开,操作错误或密码输入错误有提示。当用户输入有误时,可以清除相应的错误键值。为了提高安全性,当密码输入错误次数达到预设次数时,密码锁将启动报警,并封锁键盘,禁止任何输入。锁打开后可以根据用户要求

12、重新上锁或修改密码,但必须在锁打开后才能修改密码,修改密码时要求用户输入两次新密码,且两次输入一致。第2章 电子密码锁的方案设计第2.1节 系统工作原理本课题设计的数字电子密码锁系统主要由:(1)数据处理及控制模块,(2)键盘输入模块,(3)密码存储模块,(4)显示模块,(5)其他附属功能模块(包括蜂鸣器,状态指示灯,系统复位电路等),这五大模块组成。其组成原理如图2-1所示。首先,用户通过键盘输入模块输入密码,所输入的密码被传送到数据处理模块经过单片机处理后,与密码存储模块中的密码比较,判断密码是否正确,同时显示模块会为用户显示简单的提示信息。经过单片机判断,如果密码正确,则开锁,否则不开锁

13、,并警告用户密码输入错误。数 据 处 理 模 块AT89S52键 盘输 入模 块密 码存 储模 块显 示模 块其 它模 块图2-1 系统组成原理图第2.2节 系统方案选择2.2.1 键盘输入模块方案的选择在单片机系统中,常用的键盘输入有两种模式,即独立式按键结构和行列式键盘结构。本设计也是采用这两种方式作为电子密码锁键盘输入模块的备选方案。(1)独立式键盘独立式按键是指直接用I/O口线构成的单个按键电路。每个独立式按键单独占有一根I/O口线,每根I/O口线上按键工作状态不会影响其他I/O口线的工作状态。独立式按键电路如图2-2所示:+5 AT89S52P1.7P1.6 P1.5P1.4P1.3

14、P1.2P1.1P1.0图2-2 独立式按键结构通常独立式键盘的按键输入都采用低电平有效。上拉电阻保证了按键断开,I/O口线有确定的高电平。当I/O口内部有上拉电阻时,外电路可以不配置上拉电阻。独立式按键电路配置灵活,软件结构简单,但每个按键必需占用一根I/O口线,在按键数量较多时,I/O口线浪费较大。(2)行列式键盘行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构,按键设置在行列的交点上。例如,用22的行列结构可构成4个键的键盘,44的行列结构可构成16个按键的键盘。行列式键盘电路原理如图2-3所示。AT89S52 D7 D6 D5 D4 D3 D2D1 D0图 2-3 行列式键盘电路原

15、理图在本次设计中,由于电子密码锁的键盘中,除了09数字键之外,还有ENTER、LOCK、SET、CLR四个辅助功能按键,总体按键数量较多,如果采用独立式按键,会对单片机I/O口线造成较大的浪费,因此,本次设计选用行列式键盘作为电子密码锁的键盘输入模块。2.2.2显示模块方案的选择通过查阅一些相关资料,设想了两种万案来作为本系统的显示模块,即LED静态显示方案与LCD显示方案。(1)用串行移位寄存器74HC164来去驱动LED静态显示所谓LED静态显示,是指七段显示数码管显示某一字符时,相应段的发光二极管恒定地导通或截止。在静态显示电路中,若七段LED显示器的a、b、c、d 、e、f 段导通,g

16、段截止,则显示0 , 以此类推,根据七段LED灯亮灭的不同组合,使数码显示管显示不同符号。这种显示方法每一位都需要有一个8位输出口控制。当需要较多的数码管显示时,单片机没有足够I/O口线分别控制各个数码管的显示。因此通常采用串口发送数据,采用串并转换芯片把串口发送的数据转换为并行数据,以驱动LED 数码显示管。在实际应用中,通常采用74HC164串行移位寄存器来驱动显示管。在图2-4中,6个74HC164芯片以单片机RXD引脚发送出的串行数据作为第一片74HC164的数据输入,而单片机的TXD引脚的输出作为6片74HC164芯片的时钟。其电路连接框图如图2-4所示:DATA 74HC164CL

17、K Q7数码管数码管AT89S52RXD TXDDATA 74HC164CLK Q7DATA 74HC164CLK Q7DATA 74HC164CLK Q7DATA 74HC164CLK Q7数码管数码管数码管数码管DATA 74HC164CLK Q7图 2-4 显示电路框图( 2 ) LCD 显示LCD是一种被动式显示器,由于他的功耗极低、抗干扰能力强,因而在低功耗的单片机系统中大量使用。LCD本身不发光、它只是调节光的亮度。液晶显示器的驱动方式有电极引线的选择方式确定。因此,在选择好液晶显示器之后用户无法改变驱动方式。静态驱动电路如田2-5(a)所示。图中为某个液晶显示端,当此端上两个电极

18、电压相位相同时,两电极之间的电位差为0,该字段不显示,当此字段上两个电极电压的相位相反时,两电极之间的电位差为两倍的方波电压,则显示该字段。ABCLCD图 2-5(a) LCD静态驱动电路图2-5(b)所示是七段液晶显示器的电极配置和静态驱动电路图。七段公用一个背极,极a、b、c、d、e、f、g互相独立,每段各加1个异或门进行驱动,显示字符同LED。译码逻辑+图 2-5(b)七段液晶显示器的电极配置第3章 电子密码锁的硬件设计第3.1节 主要元器件3.1.1 主控芯片AT89S52AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8k在系统可编程Flash存储器。使用Atmel公司高

19、密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,

20、RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图3-1为AT89S52的引脚图图3-1 AT89S52芯片引脚图AT89S52引脚说明:VCC: 电源电压GND: 地P0口:P0口是一个8位双向I/O口,即地址/数据总线复用口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时 ,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为8位地址/数据复用。在这种模式下,P0内部上拉电阻被激活。在Flash编程时,P0口也用来接收指令字节:在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双

21、向I/O口,P1输出缓冲器能驱动(吸收或输出电流)4个TTL 逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如表3-1所示。在Flash编程和校验时,P1口接收低8位地址字节。表3-1 P1口第二功能端口引脚第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI

22、(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出锁存器的内容。在Flash编程和校验时,P2口也接受高8位地址

23、字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P32输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。P3口除了作为一般I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如表3-2表3-2 P3口的第二功能端口引脚第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.4T0(定时/计数0)P3.1TXD(串行输出口)P3.5T1(定时/计数1)P3.2INT0(外中断0)P3.6WR(外部数据存储器写选通)P3.3INT1(

24、外中断1)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于Flash闪存编程和程序校验的控制信号。RST 复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRT0位(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。ALE/PROG 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳

25、过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被稍微拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN 程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,输出两个脉冲,在此期间,当访问外部数据存储器时,将有两次有效的PSEN信号。EV/VPP 外部访问允许,欲使CPU仅访问外部程序存储器(地址位0000H-FFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内

26、部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.1.2 EEPROM数据存储器24C02本次设计中采用24C02芯片作为密码存储器。它属于EEPROM芯片,在掉电情况下可以继续保存数据。24C02芯片作为系统的从器件,它与主器件之间的通信遵循I2C总线协议,I2C总线协议规定,任何将数据传送到总线的器件作为发送器。任何从总线接受数据的器件位接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控

27、制的。主器件和从器件都可以作为发送器和接收器,单由主器件控制传送数据(发送和接受)的模式,通过器件地址输入端A0、A1、和A2可以实现将最多8个24WC01和24WC02器件,4个242C04器件,2个24WC08器件和一个24WC16器件连接到总线上。引脚如图3-2所示图3-2 24C02管脚图1 82 73 64 5A0A1A2VSSVCCWPSCLSDA引脚功能描述:SCL(串行时钟):用于产生器件所有数据发送和接受的时钟。SDA(串行数据/地址):用于器件所有数据的发送或接收。A0、A1、A2(器件地址输入端):用于多个器件级联时设置器件地址,当有多个从器件连接在I2C总线上时,此端口

28、用于选择不同的从器件。本次设计中,只用到一个24C02芯片,此3个引脚可全部接地。WP(写保护):如果WP管脚连接到VCC,所有的内容都被写保护(只能读)。当WP管脚连接地线或悬空,允许器件进行正常的读/写操作。3.1.3 串入并出移位寄存器74HC16474HC164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。时钟(CP)每次由低变高,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与

29、,它将上升时钟沿之前保持一个建立时间的长度。主复位(MR)输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。该芯片具有以下特性:(1)门控串行数据输入(2)异步中央复位(3)静电放电(ESD)保护:HBM EIA/JESD22-A114-B超过2000VMM EIA/JESD22-A115-A 超过 200V(4)多种封装形式其引脚图如下:图3-3 74HC164芯片引脚图1234561413129111078DSADSBQ0Q1Q2Q3GNDVCCQ7Q6Q5Q4M RCP引脚说明:表3-3 74HC164芯片引脚说明符号引脚说明DSA1数据输入D

30、SB2数据输入Q0Q336输出GND7地CP8时钟输入(低电平到高电平边沿触发)MR9中央复位输入(高电平有效)Q4Q71013输出VCC14电源3.1.4 八位数据锁存器7427374273芯片是8位高速寄存器,其内部由8个地址锁存器构成,有共同的时钟输入端和异步复位端。其具有以下特征:l 边沿触发l 8位高速寄存器l 数据并入并出l 同步时钟,异步复位引脚图:图3-4 74273芯片引脚图引脚说明:表3-4 74273芯片引脚说明符号功能描述CP时钟脉冲输入D0D7并行数据输入端MR异步清除端(高电平有效)Q0Q7并行数据输出端第3.2节 系统硬件电路的设计3.2.1数据处理及控制模块本次

31、设计中,选用51系列单片机AT89S52芯片作为电子密码锁的数据处理及操作控制芯片。只有单片机芯片是无法完成数据处理及控制功能,必须有附加的电路,使单片机芯片组成一个可运行的系统才能实现其功能。本次设计中,有AT89S52芯片连同附加电路构成的单片机最小系统作为数据处理及控制模块,其电路连接如图3-5所示:图3-5 单片机最小系统3.2.2键盘输入模块本次设计由于按键数量较多,固采用行列式键盘作为密码锁系统的输入模块。把单个按键按44格式组合成键盘,四条“行”选线连接到单片机的P1.0P1.3四条I/O口线上,四条“列”选线连接到单片机芯片的P1.4P1.7四条I/O口线上,在系统运行时,通过

32、检测每条“行”线和“列”线上的电平变化,即可判断出用户输入的位何种信息。其电路连接如图3-6所示:图3-6 键盘连接示意图在图3-5所示电路中,单片机通过控制P1口的高低电平,然后根据检测得到的结果进行判断。首先,单片机向四条“行”线输入高电平,向四条“列”线输出低电平,在按键未被按下时,P1口的8条I/O口线会保持给定的高低电平。当用户按下某个按键时,在相应的按键位置,“行”线和“列”线被连接在一起,此时,“行”线上的高电平变为低电平,单片机通过检测即可判断用户所按下的键处于哪一“行”;然后,再以相同的原理判断出用户所按下的键处于哪一“列”,此时即可确定用户按下的是哪个按键。3.2.3 密码

33、存储模块在电子密码锁系统中,用户所设定的密码是需要永久保存的。因此,本设计采用在掉电情况下依然能保存数据的EEPROM存储芯片24C02作为密码存储模块的记忆芯片。在电子密码锁系统中,系统需要存储的仅有6位密码,数据量较小,因此,芯片的地址选择端口可以直接接地线,只需把芯片的时钟输入端口(SCK)和数据输入端口(SDA)和单片机相连。其电路连接如图3-7所示:图3-7 24C02芯片与单片机连接示意图3.2.4显示模块电子密码锁系统中,需要显示的信息较少,因此采用七段LED数码显示管作为显示器。数据传输采用串行方式,由单片机的串行数据口P3.0(RXD)发送,在经过74HC164串行移位寄存器

34、把串行数据转换成8位并行数据,用以驱动七段LED数码显示管。由于74HC164芯片中,没有数据锁存器,串行数据每达到一位,都会直接送到七段显示管中,造成所有数据都会经过七段显示数码管的每一个LED灯,使数据显示不稳定。因此在74HC164串行移位寄存器和七段数码显示管之间,加入数据锁存器(74273芯片),以稳定数码显示管的数据显示。一位LED显示电路连接如图3-8所示:图3-8 LED显示电路结构图3.2.5 其他模块电子密码锁系统除了上述几大功能模块外,还有部分附加电路,用以完善系统的功能,如单片机复位电路,蜂鸣器报警电路,电子密码锁状态指示电路等。复位电路 蜂鸣器 状态指示电路 开锁电路

35、第3.3节 电子密码锁总体结构图电子密码锁的总体结构如图3-6所示。首先,用户通过键盘输入模块输入密码。每当一个数字键被按下,一个“F”就显示在最右边的数码管上,同时将先前输入的所有“F”向左移动一位,输入的密码被传送到由AT89S52芯片和附加电路组成的数据处理模块,经过单片机处理后与密码存储模块中的密码比较,判断密码是否正确,如果密码正确,则开锁,开锁指示灯亮。如果密码错误,不开锁,报警指示等亮并且蜂鸣器发出报警声。图3-9 电子密码锁总体结构图第4章 电子密码锁软件设计第4.1节 系统软件设计流程图本课题设计的电子测量仪表系统的软件程序设计主要由(1)初始化程序(2)按键检测程序(3)按

36、键处理子程序(4)密码修改程序(5)报警子程序,五个部分组成。系统的总体流程图如图4-1所示:开始初始化,读取eeprom中密码清除1位,按键数减1键盘扫描按键次数为0?有按键?NYYY按下clr键?已开锁?报警NNY已开锁?按下set键?报警,按键次数清0YN错误次数达到定值?已开锁?按下enter键?按下lock键?进入设置程序上锁按下数字键?按键次数大于6?已开锁?已输入6位?比较错误次数加1YNNNYYYYNNNYNNYY锁死开锁图4-1 系统流程图第4.2节 系统功能软件4.2.1 初始化程序数字电子密码锁系统在接通电源后,首先要对系统进行初始化。初始化过程中包括密码锁上锁,密码的读

37、入,LED数码管的显示内容初始化,设定系统状态指示等。在初始化过程中,系统位了某些子程序设定了固定的暂存单元,如30H35H为数据在存储器中开辟的显示数据暂存单元,38H3DH为密码暂存单元,3E43H为用户输入密码暂存单元等。初始化流程图如图4-2所示:用户输入密码区清零初始化定时器0初始化开始载入预设密码至系统内存系统上锁并设定状态指示灯设定显示器为等待输入状态图4-2 初始化流程图4.2.2 按键检测程序在密码锁初始化完成后,系统便会进入键盘扫描状态,此状态下,密码锁主控芯片AT89C52会不断扫描是否有键按下,即等待用户输入。在检测到有键输入后,首先计算出用户输入的键值,把键值存入数据

38、暂存单元VAL中,然后跳转至相应键盘处理程序部分,按键检测流程图如图4-3所示:开始扫描是否按键?计算键值并存入VAL中图4-3 按键检测流程图4.2.3 按键处理子程序密码锁系统在检测到键盘有键按下后,会判断出相应的键值,并把该值存入VAL内存单元中,进而进入键值分析,即按键处理部分。此部分是整个系统的主体部分系统的所有行为都是以此部分的判断结果为依据。在此部分中,系统会从VAL内存中读出键值,进而判断用户所输入为何种信息,以实现相应的功能。其处理流程图如图4-4所示:读入键值N报警执行CLR键功能是CLR键?是SET键?已开锁?已开锁?挑战密码输入部分 Y N YN Y YYN上锁Y YN

39、已开锁?是LOCK键?已开锁?是ENT键?执行NUM键功能重新扫描键盘NYNYN执行ENT键功能图4-4 键盘处理流程图4.2.4 密码修改子程序密码锁的密码就相当于我们日常生活中用到的钥匙,而电子密码锁可以根据用户的需要,随时更改原有的密码,来提高密码锁的安全性,密码修改功能是保证密码锁有效的重要保障。在密码修改子程序中,用户只有在开锁状态下才能进行修改,即要求用户知道原有的密码,否则无法打开密码锁,更无法修改其密码。系统进入此部分后,会不断扫描键盘,其原理和等待密码输入时的按键检测和处理过程一致,用户第一次输入密码后,系统会自动把两次输入的密码进行比较,如果两次密码输入不一致,则系统会提示

40、错误信息,要求用回重新设置新密码;如果两次密码输入一致,系统会把新设的用户密码存储到EEPROM中,并把改密码作为系统的新密码,至此,新密码设置成功。其软件流程图如图4-5所示:NY储存密码并上锁两次输入且一致?计算键值,并存储有键按下?新密码输入完?操作错误,报警NYNY图4-5密码修改流程图第5章 系统整体调试系统的硬件电路设计与软件程序设计都完成之后,需对系统进行整体调试。以下是调试过程中遇到的主要问题及相应的解决方法:问题1:在向电子密码锁系统中定义密码锁的缺省密码时,程序首先把缺省密码“123456”送到密码存储芯片24C02中,但无法把密码从24C02芯片中载入到系统指定的内存单元

41、中(38H3DH)原因分析及解决方法:在系统初始化时,在缺省密码被写入24C02芯片后,立马开始读取其中的数据,此时由于I2C总线未得到释放,导致数据无法从芯片中正常读取,为了I2C总线得到释放,在缺省密码写入芯片后,调用延时程序,以等待I2C总线的释放,使系统得以正常初始化。问题2:在系统正常运行后,如果密码锁被用户打开,此时用户可以按下LOCK键对其重新上锁,但在运行过程中,虽然系统可以重新上锁,但会在重新上锁前,有一次报警,并且屏幕提示ERROR1.原因分析及解决办法:用户在按下LOCK键重新上锁时,在系统软件中,为设置按键等待程序,即当系统检测到用户有键按下时,直接跳至按键处理部分。由

42、于系统运行速度较快,在用户尚未释放按键时,再次检测到此按键,相当于用户按了多次LOCK键,系统提示错误信息。因此,应该在系统检测到按键后,应等待用户抬起按键,在跳至相应的按键处理程序。具体程序如下:LOCK:NOPW00_LOCK LCALL DLY_S CJNE A,#0FH,W01_LOCK LJMP BEGINW01_LOCK: MOV A,P1CJNE A,#0F0H, W02_LOCKLJMP BEGINW02_LOCK: SJMP W00_LOCK3 问题3:在密码修改功能模块中,用户修改密码时,必须输入两次完全一致的密码才能实现密码修改,在软件设计过程中,系统为存储新密码输入次数

43、分配了固定的数据单元57H SET_TIMES EQU 57H以方便系统的调用。但在程序运行过程中,在用户第一次输入新密码后,该计数单元的数据会随机发生变化,导致用户即使输入两次一致的新密码后,也无法完成密码修改。原因分析及解决办法:进过多次程序测试,发现该内存单元中的数据是随机变化,确定该单元的数据是被系统非正常改动,在重新定义计数单元地址后,此问题得以解决。结论通过此次毕业设计使我真正有机会对大学期间所学的专业知识进行了系统的总结,从课题的分析设计到最后的硬件电路设计和软件编程设计的实现,都是在老师的指导下逐渐完成的。本课题设计了一种基于单片机的电了密码锁,这种电子密码锁系统以单片机AT89552作为数据处理主控芯片,并以串行移位寄存器74HC164芯片、 8位数据锁存器74273芯片、 LED 七段数码显示管作为显示模块,以EEPROM芯片24C02作为永久保存密码的存储模块,附加4x4键盘和其它辅助电路构成了整个的硬件系统。用户可以通过健盘输入密码,密码正确后可以正常开锁,并且能够重新设定密码。由于能力和时间有限,系统还有一些地方不尽如人意。比如,本系统可以利用单片机的P0和P2总共16根 I/O口线,控制ISD系列的语音芯片,为电子密码锁增加语音提示模块。对用户的操作进

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号