毕业设计(论文)基于单片机的电子密码锁设计1

上传人:1777****777 文档编号:38303372 上传时间:2021-11-06 格式:DOC 页数:72 大小:621.03KB
收藏 版权申诉 举报 下载
毕业设计(论文)基于单片机的电子密码锁设计1_第1页
第1页 / 共72页
毕业设计(论文)基于单片机的电子密码锁设计1_第2页
第2页 / 共72页
毕业设计(论文)基于单片机的电子密码锁设计1_第3页
第3页 / 共72页
资源描述:

《毕业设计(论文)基于单片机的电子密码锁设计1》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的电子密码锁设计1(72页珍藏版)》请在装配图网上搜索。

1、 本 科 毕 业 设 计(论文) 题目 基于单片机的电子密码锁设计 院(系部) 河北大学 专业名称 电子信息工程 年级班级 学生姓名 指导教师 2011年 月 日河北大学本科毕业论文摘要本课题设计了一种基于单片机的数字电子密码锁,这种数字电子密码锁以单片机作为数据处理主控芯片。电子密码锁的设计主要由四部分组成:44矩阵键盘接口电路、以AT89S52芯片为核心的密码锁的数据处理及控制电路、掉电情况下依然能保存密码的EEPROM存储器芯片,输出七段显示电路。另外系统还有LED提示灯,报警蜂鸣器,单片机复位电路等。电子密码锁设计的关键问题是实现密码的输入、清除、开锁、更改等功能。同时该密码锁具有设计

2、方法合理,简单易行,成本低,安全实用等特点,符合住宅,办公室等场所的用锁要求,具有推广价值。关键词 单片机 密码锁 4*4矩阵键盘 EEPROM存储芯片 实用经济AbstractThis project designed a digital electronic lock which used a MCU as data process and control chip. The main functions digital electronic lock are as follows:The design of the electronic password lock is mainly m

3、ade up of four parts: 44 matrix keyboard interface circuit, data processing and control circuit, eeprom memory chip that is used to keep password when the lock loses power and display circuit. In addition the system also consists of LED lights, alarm buzzers, single-chip reset circuit and so on.The

4、key question of the electronic lock designing is the realization of functions, such as the input password, clear password, unlock, change password and other functions.And the designed cipher lock is characterized by its reasonable designing methods, simple operation, low cost and property of safety

5、and practicalityBesides,it works well as a residence lock and has great potential for commercial development. Key words: SCM Cipher lock 4*4matrix keyboard EEPROM Practical economy III目录1 绪论11.1国内外研究综述11.2选题的目的和意义21.3本论文的任务32电子密码锁总体设计42.1系统总体设计42.2单片机52.3密码存储芯片选择62.4键盘输入方案比较82.5显示方案比较103电子密码锁的硬件设计12

6、3.1系统结构框图123.2主控部分133.3显示部分133.4键盘输入部分143.5密码存储部分153.6电源部分163.7其它功能部分183.8 电子密码锁的电路原理图214电子密码锁的软件组成224.1系统软件设计流程224.2 Keil uVision2软件介绍234.3各主要部分的功能实现程序设计244.3.1初始化程序设计244.3.2按键处理程序设计274.3.3密码更改程序设计315系统仿真345.1系统仿真过程345.2仿真调试中遇到的问题及解决办法35总结36致谢37参考文献38附录39i1 绪论1.1国内外研究综述在电子锁出现以前人们广泛的使用机械锁,但是随着时间的推移机

7、械锁已不能满足人们的要求,于是电子锁应用而生。以前由于电子器件所限,开发的电子密码锁种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作虽简单但很不安全。 现在电子锁的技术可以说是时时的在进步,出现了很多性能强,安全可靠的新型电子锁。如:遥控式电子密码锁,卡式电子锁,生物特征电子锁等。但是应用广泛的还是键盘式电子密码锁。遥控式电子密码锁:优点是传输信息量可以很大、速度极快、人眼识别不出来,又无法在光路径上用仪器捕获信号进行复制,因此保密性极高。缺点是需要随身保管遥控器即钥匙,对于某些方面来说不是很实用。卡式密码锁:能够在卡中存储大量的个人信息,即容量非常的大,并且可以实现一

8、卡多用。但是卡式密码锁也有很大的缺陷,开锁用的卡很可能受到一些电子产品的磁干扰,出现“失效”; 同时卡也很容易被丢失,丢失了卡就需要尽快的取消卡的授权,一面个人的重要信息丢失,这个过程也是相当麻烦的。生物特征电子锁:人的某些与生俱来的个性特征(如手、眼睛、声音的特征)几乎不可重复,作为“钥匙”就是唯一的。但是生物特征电子锁需要大量的个人身体上的信息,这就使其处理上会变得复杂,这也确定了生物特征电子锁目前仅适用于极个别的行业。键盘式电子锁:主要依靠的是键盘输入密码验证,不需要携带专一的“钥匙”,只需要记住密码即可。键盘式电子锁有采用数字电路控制的,但控制的准确性和灵活性比较的差;有以单片机为核心

9、的键盘式电子锁,它的性能比较的稳定,而且性价比也比较的高,受到了广泛的关注。尽管新式电子防盗锁层出不穷,但键盘式电子密码锁仍然“老树发新芽”,在市场上居于主流地位。伴随着科学技术的发展,电子的应用技术的提高,又出现了一些带有微型处理器的智能电子锁,它除了具有电子密码锁的功能外,还引入了智能化管理的功能,从而使电子密码锁具有更高的安全性和可靠性。目前发达国家大规模使用的智能门禁系统,就是一种使用多种更加安全,可靠方法来实现大门管理的新型电子密码锁。发达国家的电子密码锁技术已经相当的成熟,智能化、集成化程度很高。而我国的应用还不是很广泛,一般应用在一些高级的场所之中,例如银行的保险柜、保险箱、高级

10、酒店等,家居应用很少。我国的电子密码锁的技术也是比较落后的,不是很成熟。开发的密码锁大多采用的是普通的数字电路设计生产的,与机械锁相比较的确存在着很多的优点,但智能化的程度不高,编码的组合很少。1.2选题的目的和意义在我们的日常生活中,经常会遇到一些地方需要进行防护,而这些地方的防护多是以使用各种各样的锁来进行的。常见的大致有两个大的方面,一种是机械锁,一种是电子密码锁锁。传统简单的机械锁一般是结构比较的简单,很容易遭到外部的破坏,而机密复杂的大型机械锁又比较的笨重,不适合大众的需要。在科学技术不断发展的今天,电子密码锁已经受到了越来越多的关注。电子密码锁具有保密性高,无灵活零件,不会磨损,寿

11、命长,灵活性好等特点。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。但是电子密码锁也存在着缺陷1.价格比较的昂贵;2推广性不强。现在采用单片机制作的电子锁就克服了这些缺陷。单片机具有体积小、功能强,性价比高等特点,广泛应用于电子产品。基于单片机的电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。本次选题的就是设计一种基于单片机控制的具有本机开锁和报警功能的电子密码锁,在电子密码锁的显示和键盘输入有方案的比较,使电子密码锁更加的实用经济,能够实际生活中得到广泛的应用。用单片机制作的电子锁有以下的特点:1.保密性好,采用的是

12、多位密码输入。2.破解保护,能够及时的锁定键盘报警。3.界面简洁,密码操作也非常简单。1.3 本论文的任务本设计的电子密码锁的实现是基于单片机的,任务及工作如下:1、在Proteus软件环境中进行硬件电路图的设计。2、在Keil软件环境中进行系统的软件编程,并进行程序源文件的编译和调试,最后生成.hex文件。此.hex文件是硬件电路运行实现的源代码来源。3、把.hex文件加载到单片机芯片,然后在Proteus软件环境中运行硬件电路。2 电子密码锁总体设计2.1系统总体设计本设计主要由单片机、矩阵键盘、LED数码管显示和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户

13、通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。其设计原理框图如图2.1所示:单片机显示 部分其它 部分键盘输入部分密码存储部分图2.1 原理框图单片机:本部分的功能包括写入和读取各种控制命令及数据处理,同时还要对各执行单元进行控制。单片机是整个系统的控制核心及数据处理核心。键盘部分:本部分由用户通过键盘输入各种信息送入到单片机进行处理。显示部分:本

14、部分完成的是单片机处理后的数据和信息的显示以及系统提示信息的显示。密码存储部分:本部分完成存储原始密码和用户更改密码数据的功能。其它部分:本部分的目的是为了提高系统的可用性和实用性。主要包括电源部分、复位部分、晶振部分、开锁部分和报警部分。电源部分主要的功能是为单片机提供适当的工作电源,同时也为其它的部分提供电源。复位部分功能是使单片机在出现故障时进行成功的复位。晶振部分功能是给单片机提供时钟。开锁部分主要是根据单片机数据处理的结果驱动继电器控制开锁的操作。报警部分主要的功能就是在错误操作下实现报警提示。2.2单片机选择单片机的种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合

15、理选择,以期获得最佳的性价比。在多数的电子设计中,基于性价比的考虑,8位单片机为首选。8位单片机中以MCS-51系列单片机及其兼容机所占的份额最大。MCS-51的硬件结构决定了其指令系统不会发生变化。因此在对不同公司的单片机进行选型时,只需要比较芯片内部资源即可。在以前的电子设计中,应用比较广泛的是AT89C51单片机,但是该单片机存在着致命的缺陷不支持ISP功能。Atmel公司现在已停止了AT89C51的生产,而加上了ISP功能的AT89S51、AT89S52诞生了。AT89S系列单片机在工艺上进行了改进,采用了0.35mm的新工艺,不但降低了成本,而且增加了功能,提升了单片机的性能,提高了

16、市场竞争力。AT89S系列单片机新增了许多功能,性能也有了较大的提升,但是价格仍旧与AT89C系列的价格相差不大。新增的功能之中最具影响力的就是ISP在线编程功能,这个功能的优势在于,改写单片机Flash存储器内的程序时不需要把芯片从工作环境中剥离,是一个强大易用的功能。显然,AT89S系列单片机在性能上要比AT89C系列的单片机优良的多,而且价格也没有什么提高。所以选择AT89S系列作为本系统的的主控部分。而AT89S系列中的89S51和89S52在实际应用中最多,本设计中软件部分需要大量的程序编程,89S51内的程序存储器太小,不能满足要求,因此选择AT89S系列的AT89S52作为本设计

17、的主控部分。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟

18、电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52引脚图如图2.2所示: 图2.2 AT89S52引脚图AT89S52引脚功能说明如下:VCC:电源电压GND:地P0 口:P0口是一个8位漏极开路的双向I/O口,也即地址/数据总线复用口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址

19、/数据复用。在这种模式下,P0内部上拉电阻被激活。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动(吸收或输出电流)4 个 TTL 逻辑门电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),在flash编程和校验时,P1口

20、接收低8位地址字节。P1端口引脚的第二功能如表1所示表1 P1端口引脚的第二功能端口引脚第二功能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)。在访问外部程序

21、存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。P3口除了作为一般的I/O口线外,更重要

22、的用途是它的第二功能。如表2所示:表2端口引脚第二功能端口引脚第二功能P3.0 RXD(串行输入口)P3.4TO(定时/计数器0)P3.1TXD(串行输出口)P3.5T1(定时/计数器1)P3.2 INTO(外中断0)P3.6WR(外部数据存储器写选通)P3.3 INT1(外中断1)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能。DISRTO位缺省为RESE

23、T输出高电平打开状态。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序

24、存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将有两次有效的PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。2.3密码存储芯片选择本部分主要是论证密码存储芯片的选型。存储器的类型按功能分只读存储器(Read-Only Memory,简

25、称ROM)和随机存取存储器(Random Access Memory,简称RAM)。随机存取存储器与只读存储器的根本区别在于:随机存储器在正常工作状态时可随时向存储器里写入数据或从中读出数据,在存储器断电后信息全部丢失。只读存储器又分为固定掩膜存储器和可编程存储器。固定掩膜存储器在生产时就根据用户的要求把数据和程序固化其中,其中的内容用户不可以再修改,只能读出。而可编程存储器便于用户根据自己的需要来写入特定的信息,根据存储矩阵中存储单元电路的结构不同,可编程的ROM有PROM、EPROM和EEPROM等三种。PROM的编程是由用户而不是生产厂家完成,增加了灵活性,但编程是一次性的,且可靠性较差

26、,目前已很少使用。EPROM作为一种可以多次擦除和重写的ROM,克服了掩膜式ROM和PROM只能一次性写入的缺点,满足了实际工作中需要多次修改程序或数据的可能,前提条件是存储矩阵中现有的程序或数据必须首先擦除。EPROM的擦除和编程写入是采用专门的编程器设备完成的,并且擦除的周期比较的长。电可擦除可编程只读存储器EEPROM也称E2PROM。与EPROM擦除时把整个芯片的内容全变成“1”不同,EEPROM的擦除可以按字节分别进行,且字节的编程和擦除都只需10ms,并且不需要将芯片从机器上拔下以及诸如用紫外线光源照射等特殊操作,可以在线进行擦除和编程写入。因此根据设计的要求,采用的是EEPROM

27、。常见的EEPROM芯片有28256、AT24C系列,28256的EEPROM引脚比较多,功能比较的多,且容量太大,而本设计的存储器只是存储密码数据,不需要很多的功能和很大的容量,因而选用的是AT24C系列的EEPROM。常用的AT24C系列如下表3所示:表3 AT24C系列EEPROM对比表EEPROM型号AT24C02AT24C08AT24C16容量(bytes)2K8K16K页大小(bytes)81616总页面数 3264128地址位(bits)888本设计中存储的数据不多,因此选用AT24C02即可满足要求。AT24C02是美国Atmel公司的低功耗CMOS型EEPROM,内含2568

28、位存储空间,具有工作电压宽(2.55.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失、体积小、掉电情况下可以继续保存数据等特点。AT24C02芯片作为系统的从器件,它与主器件之间的通信遵循IC总线协议,IC总线协议规定,任何将数据传送到总线的器件作为发送器。任何从总线接受数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或者是接收器。AT24C02的引脚如图2.3所示: 图2.3 AT24C02的引脚引脚的功能:串行时钟(SCL):用于产生器件所有数据发送或接收的时钟。串行数据/地址(

29、SDA):用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线。器件地址输入端(A0、A1和A2):用于多个器件级联时设置器件地址,当有多个从器件连接在IC总线上时,此端口用于选择不同的从器件。本次设计中三个引脚全部接地。写保护(WP):如果WP管脚连接到VCC,所有的内容都被写保护(只能读)。当WP管脚连接地线或悬空,允许器件进行正常的读/写操作。2.4键盘输入方案比较键盘输入是现阶段电子设计中最常用、最实用的输入设备。设计中常用的键盘输入方案有两种:独立式键盘、矩阵式键盘。独立式键盘独立式按键是指直接用I/O口线构成的单个按键的电路。每个独立式按键

30、单独占有一根I/O口线,每个按键的工作状态都是独立的不会影响到其他的按键的工作状态。独立式按键的电路如图2.4所示:图2.4 独立式按键电路原理图通常独立式键盘的按键输入都采用低电平有效,上拉电阻保证了按键的断开,I/O口线有确定的高电平。独立式按键电路配置灵活,软件结构简单,但是每个按键都需要独立的I/O口,如果按键的数量较多的时候,I/O就会造成极大的浪费。矩阵式键盘行列式键盘又叫矩阵式键盘。用I/O口线组成行列结构,按键位于行列的交点位置上。矩阵式键盘电路原理如图2.5所示:图2.5 矩阵式键盘电路原理图本次设计中电子密码锁的键盘中,出去0-9的数字键外,还需要一些辅助的功能键,总体上来

31、说按键的数量是相当的多的。采用独立式按键的方案,会对单片机的I/O口造成很大的浪费;采用矩阵式的按键方案就比较的适用于本次设计。2.5显示方案比较 设计中常用的输出显示设备有两种:数码管和LCDLCD显示方案LCD是一种被动式的显示器,利用液晶能改变光线通过方向的特性,来达到显示的目的。LCD显示清晰美观,具有功能低、抗干扰能力强的优点,广泛应用于仪器仪表、控制系统等。液晶显示器的驱动方式由电极引线的选择方式确定,选择了液晶显示器之后便无法改变驱动的方式。当LCD显示笔端上两个电极电压相位相同时,两电极之间的电位差为0,该字段就不显示;当两个电极电压的相位相反时,两电极之间的电位差为两倍的方波

32、电压,该字段显示。其原理电路如图2.6所示:图2.6 原理电路数码管显示方案七段数码管显示器是有8个发光二极管组成的(a,b,c,d,e,f,g),LED七段数码管的显示即相应的发光二极管导通或者是截断,不同的组合等到的字符显示不一样的。数码管显示的数据内容比较的直观,一个数码管可以显示一位,多个数码管就可以显示多位,且程序设计和外围电路设计都十分的简单。数码管显示的每一位都需要有一个8位输出口控制,当需要较多的数码管显示的时候,单片机如果要直接控制各个数码管的显示是不可能的,因为没有足够的I/O口线进行控制。通常采用串口发送数据,然后用串行输入并行输出的移位寄存器来驱动数码显示器。实际应用中

33、,简单的可以使用三极管来驱动,但是本设计为了使显示更加的稳定,采用的是74HC164串行移位寄存器来驱动。本次设计,显示的东西不需要很复杂,信息也较少,用数码管显示完全可以满足要求,而使用LCD显示成本可能会比较的高,所以采用数码管显示。233电子密码锁的硬件设计本部分主要介绍基于AT89S52单片机的电子密码锁的硬件设计。系统的硬件部分由键盘输入部分、密码存储部分、显示部分、电源输入部分、复位部分、晶振部分、报警部分、开锁部分组成。3.1系统结构框图 系统以AT89S52单片机作为数据和控制部分;以矩阵键盘输入作为键盘输入部分的方式;数码管显示作为数据输出显示部分;由继电器控制电磁阀动作的开

34、锁电路作为开锁部分;蜂鸣器作为报警部分,系统的硬件结构框图如图3.1所示:AT89S52键盘输入复位电路密码存储电路晶振电路电源输入显示电路报警电路开锁电路图3.1 系统的硬件结构图3.2主控部分本次设计中,选用Ateml公司的51系列单片机AT89S52芯片作为电子密码锁的数据处理及操作控制芯片。只有单片机芯片是无法完成数据处理及控制功能的,必须有附加的电路,使单片机芯片组成一个可运行的系统才能实现其功能。本次设计,由AT89S52单片机连同附加电路构成的单片机最小系统作为主控。电路图如图3.2所示:图3.2 最小系统3.3显示部分电子密码锁采用数码管进行显示,经过单片机处理过的数据信息都由

35、数码管进行显示。单片机数据传输采用串行方式,数据通过单片机的串行数据口P3.0(RXD)进行发送,接着应用74HC164串行移位寄存器把串行的数据转换成8位的并行数据,驱动LED 数码管。74HC164芯片中,没有数据锁存器,使串行数据每到达一位,直接就被送到数码管中,造成数据显示不稳定。为了使数据显示稳定,在移位寄存器和数码管之间加入数据锁存器,来稳定数码管的数据显示。显示部分如图3.3所示:图3.3 显示部分电路图3.4键盘输入部分在电子密码锁中各种信息的输入都是通过键盘输入部分完成的。把单个按键按照4*4组成键盘,四条行线连接到单片机的P1.0-P1.3四条I/O口线上, 四条列线连接到

36、单片机的P1.4-P1.7四条I/O口线上,运行的时候,单片机通过控制P1口得高低电平,然后根据变化进行判断。单片机向行线输入高电平,向列线输入低电平,按键未被按下之前保持电平给定不变,按键按下,行线的高电平变成低电平。同样对列线进行判定,即可判断所输入的信息。键盘部分的电路连接如图3.4所示:图3.4 键盘部分电路图3.5密码存储部分在电子密码锁中,存入的密码是需要永久的保存的。在设计中采用了在掉电的情况下依然能够保存数据的EEPROM存储芯片24C02存储密码。设计的密码锁因为只需要存储6位密码,数据量很小,所以24C02的地址选择端口直接接地,时钟输入端口(SCK)和数据输入端口(SDA

37、)和单片机的相连即可。电路连接如图3.5所示: 图3.5 密码存储部分电路图3.6电源部分密码锁主控制部分电源需要用5V直流电源供电,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。其主要原理是把交流电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。 由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳

38、压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。主电源如图3.6所示:图3.6 主电路图220V市电通过变压器降压成12V的交流电,再经过整流桥整流,7805稳压到5V送往电子切换电路,由于本电路功耗较少,所以选用10W的小型变压器。由R2,R3,R4,R5及J1构成电压比较器,正常情况下,V+V- J6时,由Q1,Q2构成的达林顿管使继电器K1开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证

39、电子密码锁的正常工作(视电池容量而定持续时间)。Q3,Q4构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D5亮为正在充电,D7为工作指示。由R8,R11,Q4构成电压检测电路,蓄电池电压低,则Q3,Q4导通,实现对其充电;充满后,Q3,Q4截止,停止充电,同时D5熄灭,电路中C6的作用是滤除干扰信号。如图3.7、3.8所示:图3.7 停电检测及电子开关切换电路图3.8 蓄电池自动充放电电路3.7其它功能部分密码锁系统中主要的为以上的几个部分,但是为了使系统更加的完善,还需要一些附加的部分。复位部分单片机复位是使CPU和系统中的其它功能部件都处在一个确定的初始状态,并从这个状态开始工

40、作,单片机刚开始接上电源,断电或者是发生故障时都需要复位。单片机的复位输入RST脚持续两个机器周期高电平将使单片机复位。复位部分如图3.9所示:图3.9 复位部分电路报警部分报警部分是由陶瓷压电发声装置及外围电路组成。当密码输入不正确是会发出警报。报警电路如图3.10所示:图3.10 报警电路 晶振部分本部分是为单片机提供时钟控制信号,采用的电路是外接晶振和电容组成的并联谐振回路。AT89S52引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图4-7所示方式连接。晶振、电容C1、C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有

41、关,但主要由晶振频率决定,范围在033MHz之间,电容C1、C2取值范围在530pF之间。根据实际情况,本设计中采用12MHZ做为系统的外部晶振。电容取值为20pF。如图3.11所示: 图3.11 晶振部分电路开锁部分当输入正确的密码的时候,单片机的其中一个引脚线发出信号,经过三极管放大后,由继电器驱动电磁阀动作将锁打开。同时绿色的指示灯将会点亮。开锁电路如图3.12所示:图3.12 开锁电路3.8 电子密码锁的电路原理图根据系统所需要实现的功能,进行的原理图设计如图3.13所示:图3.13 电子密码锁的电路原理图4电子密码锁的软件组成4.1系统软件设计流程 本设计的软件程序设计主要有(1)初

42、始化程序(2)按键功能实现程序 (3)密码修改程序(4)报警程序等组成。系统的总体流程图如图4.1所示: 开始初始化,设置密码等待输入计算键值是CLR?是否是确认键?否存键值首次按键?已输6位?是否否密码右移是计数值减1报警是是否比较密码正确?开锁密码左移计数值加1图4.1 系统的总体流程图4.2 Keil uVision2软件介绍单片机开发中除必要的硬件外,同样离不开软件,本系统的软件编程设计是在Keil软件环境中完成的。我们写的C语言、汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机

43、器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果使用C语言编程,那么Keil几乎就是不二之选。即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的

44、软件仿真调试工具也会令人事半功倍。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。4.3各主要部分的功能实现程序设计4.3.1初始化程序设计电子密码锁系统在

45、接通电源后,首先要对系统进行初始化。初始化过程包括密码锁上锁,密码的读入,LED数码管的显示内容初始化,设定系统状态指示等。流程图如图4.2所示:初始化开始载入预设密码至系统内存系统上锁并设定状态指示灯设定显示器为等待输入状态用户输入密码区清零初始化定时器0图4.2 初始化程序设计流程图初始化程序如下:ORG0000HLJMPFIRSTORG000BHLJMPINT_T0ORG0100HFIRST:MOVSET_TIMES,#0;新密码输入次数清零从24C01C中读数据,数据送AT89C51中38H开始的16个字节中MOVSLA,#0A0H;写入控制字MOVSUBA,#00H;目标地址MOVN

46、UMBYTE,#6;写入的字节数LCALLIRDNBYTE;开始写数据BEGIN:MOVCNT_ERROR,#00H;密码错误次数清零START:CLR LED_YELLOW;上锁指示灯SETBLED_GREEN;开锁指示灯灭SETBLED_RED;密码错误指示灯灭MOVKEY_CNT_SET,#00HMOVCNT_A,#00HMOVCNT_B,#00HMOVKEY_CNT,#00HMOVLINE,#00HMOVROW,#00HMOVVAL,#00HMOVWORD_ADRESS,#4CHMOVLED_BIT_1,#0AH ;数码管全-MOVLED_BIT_2,#0AHMOVLED_BIT_3,

47、#0AHMOVLED_BIT_4,#0AHMOVLED_BIT_5,#0AHMOVLED_BIT_6,#0AHMOVKEY_1,#00H ;输入密码存储区清0MOVKEY_2,#00HMOVKEY_3,#00HMOVKEY_4,#00HMOVKEY_5,#00HMOVKEY_6,#00HMOVTMOD,#01H ;初始化定时器T0MOVTH0,#(65536-700)/256MOVTL0,#(65536-700)MOD256MOVIE,#82H4.3.2按键处理程序设计(介绍)键功能程序键值09?键值开锁?键值清除?键值设置?键值确认?密码输入程序设置程序清除程序开锁程序确认程序是是是是是否否

48、否否返回否图4.3 按键处理程序流程图按键处理程序如下:A0: NOPLSCAN:MOVP1,#0F0H ;扫描行码,把四条“行”线置成低电平 L1:JNBP1.0,L2 ;检测第一行是否有键按下 LCALLDLY_S ;消除键盘抖动JNBP1.0,L2 ;确认第一行有键按下MOVLINE,#00H ;把值送到指定内存,等待计算LJMPRSCAN ;跳转到键值计算部分L2:JNBP1.1,L3LCALLDLY_SJNBP1.1,L3MOVLINE,#01HLJMPRSCANL3:JNBP1.2,L4LCALLDLY_SJNBP1.2,L4MOVLINE,#02HLJMPRSCANL4:JNBP

49、1.3,a0LCALLDLY_SJNBP1.3,a0MOVLINE,#03HRSCAN:MOVP1,#0FH;扫描列码C1:JNBP1.4,C2MOVROW,#00HLJMPCALCUC2:JNBP1.5,C3MOVROW,#01HLJMPCALCUC3:JNBP1.6,C4MOVROW,#02HLJMPCALCUC4:JNBP1.7,C1MOVROW,#03HLJMPCALCUCALCU:MOVA,LINE ;计算键值MOVB,#04HMULABADDA,ROWMOVVAL,A ;把键值存入VAL单元CJNE A,#0AH,J1 ;是否为CLR键 JNBLED_GREEN,CLR_KEY ;

50、检测是否已开锁MOV R1,KEY_CNT CJNE R1,#00H,J2 ;判断已按键次数为零? LCALL ALARM_1 ;调用报警子程序 LCALL FALSE ;数码管显示“FALSE”LJMP STARTCLR_KEY: LCALL ALARM_1 ;锁开状态下,按CLR的处理方法,调用报警子程序 LCALL FALSE ;显示“FALSE”LJMP A1 J2:LCALL SHIFTR ;显示内容右移一位 DEC KEY_CNTLCALL BCD LCALL DISP ;等待按键抬起 W00:LCALL DLY_1SMOV A,P1 CJNE A,#0FH,W01 LJMP A0

51、 W01:MOVA ,P1CJNE A,#0F0H,W02LJMP A0 W02:SJMP W00 J1:MOV A,VAL CJNE A,#0CH,J11 ;是否为SET键 LCALL DLY_SJB LED_GREEN,SET_ERROR J11:MOV A,VALCJNE A,#0DH,J22 ;是否为LOCK键LCALL DLY_SJNB LED_GREEN,LOCK J22:MOV A,VALCJNE A,#0BH,J3_TEMP ;是否为ENTER键LJMP TTTTTTJ3_TEMP: LJMPJ3 4.3.3密码更改程序设计密码锁的密码就相当于我们日常生活中用到的钥匙,而电子密

52、码锁可以根据用户的需要,随时更改原有的密码,来提高密码锁的安全性,密码修改功能是保证密码锁有效的重要保障。在密码修改子程序中,用户只有在开锁状态下才能进行修改,即要求用户知道原有的密码,否则无法打开密码锁,更无法修改其密码。框图如图4.4所示:有按键按下?操作错误,报警否是否是否计算键值,存储新密码输入完?两次输入并一致?是存储密码图4.4 密码更改程序设计流程图密码更改程序如下:SET_P:CLRLED_GREEN;更改系统状态及屏幕显示内容SETBLED_YELLOWSETBLED_REDMOVLED_BIT_1,#0CH ;关闭全部数码管MOVLED_BIT_2,#0CHMOVLED_B

53、IT_3,#0CHMOVLED_BIT_4,#0CHMOVLED_BIT_5,#0CHMOVLED_BIT_6,#0CHLCALLBCDLCALLDISPA0_SET:NOP;按键检测并计算键值存放在VAL单元. ;按键处理部分CJNEA,#02H,TIMES1;判断是否已输入两次新密码LCALLDLY_1SMOVA,WORD_6;逐位比较密码,不一致则重新设置CJNEA,KEY_1,J_RSETMOVR0,#59HMOVR0,#33HMOVA,WORD_5CJNEA,KEY_2,J_RSETMOVA,WORD_4CJNEA,KEY_3,J_RSETMOVA,WORD_3CJNEA,KEY_4,J_RSETMOVA,WORD_2CJNEA,KEY_5,J_RSETMOVA,WORD_1CJNEA,KEY_6,J_RSET向24C01C中写数据,数据存放在24C01C中4CH开始的16个字节中 TIMES1:MOVR0,#WORD_1SET;第一次新密码暂存

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!