基于单片机的电子密码锁设计及实现项目可行性研究报告0001_第1页
基于单片机的电子密码锁设计及实现项目可行性研究报告0001_第2页
基于单片机的电子密码锁设计及实现项目可行性研究报告0001_第3页
基于单片机的电子密码锁设计及实现项目可行性研究报告0001_第4页
基于单片机的电子密码锁设计及实现项目可行性研究报告0001_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 #基于单片机的电子密码锁设计及实现项目可行性研究报告 摘要本课题设计了一种基于单片机的数字电子密码锁,这种数字电子密码锁以单片机 作为数据处理主控芯片。电子密码锁的设计主要由四部分组成:4M矩阵键盘接口电路、以AT89S52芯 片为核心的密码锁的数据处理及控制电路、掉电情况下依然能保存密码的EEPROM存 储器芯片,输出七段显示电路。另外系统还有LED提示灯,报警蜂鸣器,单片机复位 电路等。电子密码锁设计的关键问题是实现密码的输入、清除、开锁、更改等功能。同时 该密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,符合住宅,办公 室等场所的用锁要求,具有推广价值。关键词 单片机 密码锁

2、4*4矩阵键盘EEPROM存储芯片 实用经济目录 TOC o 1-5 h z 绪论 11.1 国内外研究综述11.2 选题的目的和意义2本论文的任务3电子密码锁总体设计4系统总体设计42.2 单片机52.3 密码存储芯片选择1.02.4 键盘输入方案比较1.22.5 显示方案比较1.4电子密码锁的硬件设计 1系统结构框图13.2 主控部分23.3 显示部分2键盘输入部分3密码存储部分43.6 电源部分53.7 其它功能部分73.8 电子密码锁的电路原理图94 电子密码锁的软件组成 1.04.1 系统软件设计流程1.0Keil uVision2 软件介绍1.14.3 各主要部分的功能实现程序设计

3、1.24.3.1 初始化程序设计1.24.3.2 按键处理程序设计1.54.3.3 密码更改程序设计2.05 系统仿真 2.45.1 系统仿真过程2.45.2 仿真调试中遇到的问题及解决办法2.5 TOC o 1-5 h z 总结1致谢2参考文献3附录4 1 绪论1.1 国内外研究综述在电子锁出现以前人们广泛的使用机械锁,但是随着时间的推移机械锁已不能满 足人们的要求,于是电子锁应用而生。以前由于电子器件所限,开发的电子密码锁种 类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作虽简 单但很不安全。现在电子锁的技术可以说是时时的在进步,出现了很多性能强,安全可靠的新型电子

4、锁。如:遥控式电子密码锁,卡式电子锁,生物特征电子锁等。但是应用广泛的还是 键盘式电子密码锁。遥控式电子密码锁:优点是传输信息量可以很大、速度极快、人眼识别不出来, 又无法在光路径上用仪器捕获信号进行复制,因此保密性极高。缺点是需要随身保管 遥控器即钥匙,对于某些方面来说不是很实用。卡式密码锁:能够在卡中存储大量的个人信息,即容量非常的大,并且可以实现 一卡多用。但是卡式密码锁也有很大的缺陷,开锁用的卡很可能受到一些电子产品的 磁干扰,出现“失效”; 同时卡也很容易被丢失,丢失了卡就需要尽快的取消卡的授 权,一面个人的重要信息丢失,这个过程也是相当麻烦的。生物特征电子锁:人的某些与生俱来的个性

5、特征(如手、眼睛、声音的特征)几 乎不可重复,作为“钥匙”就是唯一的。但是生物特征电子锁需要大量的个人身体上 的信息,这就使其处理上会变得复杂,这也确定了生物特征电子锁目前仅适用于极个 别的行业。键盘式电子锁:主要依靠的是键盘输入密码验证,不需要携带专一的“钥匙”, 只需要记住密码即可。键盘式电子锁有采用数字电路控制的,但控制的准确性和灵活 性比较的差;有以单片机为核心的键盘式电子锁,它的性能比较的稳定,而且性价比 也比较的高,受到了广泛的关注。尽管新式电子防盗锁层出不穷,但键盘式电子密码 锁仍然“老树发新芽”,在市场上居于主流地位。伴随着科学技术的发展,电子的应用技术的提高,又出现了一些带有

6、微型处理器 的智能电子锁,它除了具有电子密码锁的功能外,还引入了智能化管理的功能,从而 使电子密码锁具有更高的安全性和可靠性。目前发达国家大规模使用的智能门禁系统, 就是一种使用多种更加安全,可靠方法来实现大门管理的新型电子密码锁。发达国家 的电子密码锁技术已经相当的成熟,智能化、集成化程度很高。而我国的应用还不是 很广泛,一般应用在一些高级的场所之中,例如银行的保险柜、保险箱、高级酒店等, 家居应用很少。我国的电子密码锁的技术也是比较落后的,不是很成熟。开发的密码 锁大多采用的是普通的数字电路设计生产的,与机械锁相比较的确存在着很多的优点, 但智能化的程度不高,编码的组合很少。选题的目的和意

7、义 在我们的日常生活中,经常会遇到一些地方需要进行防护,而这些地方的防护多是 以使用各种各样的锁来进行的。常见的大致有两个大的方面,一种是机械锁,一种是 电子密码锁锁。传统简单的机械锁一般是结构比较的简单,很容易遭到外部的破坏, 而机密复杂的大型机械锁又比较的笨重,不适合大众的需要。在科学技术不断发展的 今天,电子密码锁已经受到了越来越多的关注。电子密码锁具有保密性高,无灵活零 件,不会磨损,寿命长,灵活性好等特点。它的种类很多,有简易的电路产品,也有 基于芯片的性价比较高的产品。但是电子密码锁也存在着缺陷 1.价格比较的昂贵;2 推广性不强。现在采用单片机制作的电子锁就克服了这些缺陷。单片机

8、具有体积小、 功能强,性价比高等特点,广泛应用于电子产品。基于单片机的电子密码锁是一种通 过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。本次选题的就是设计一种基于单片机控制的具有本机开锁和报警功能的电子密码 锁,在电子密码锁的显示和键盘输入有方案的比较,使电子密码锁更加的实用经济, 能够实际生活中得到广泛的应用。用单片机制作的电子锁有以下的特点:1.保密性好,采用的是多位密码输入。2.破解保 护,能够及时的锁定键盘报警。3.界面简洁,密码操作也非常简单。1.3 本论文的任务本设计的电子密码锁的实现是基于单片机的,任务及工作如下:1、在 Proteus

9、软件环境中进行硬件电路图的设计。2、在 Keil 软件环境中进行系统的软件编程,并进行程序源文件的编译和调试, 最后生成.hex文件。此.hex文件是硬件电路运行实现的源代码来源。3、把.hex文件加载到单片机芯片,然后在Proteus软件环境中运行硬件电路。2电子密码锁总体设计2.1系统总体设计本设计主要由单片机、矩阵键盘、LED数码管显示和密码存储等部分组成。其中矩 阵键盘用于输入数字密码和进行各种功能的实现由用户通过连接单片机的矩阵键盘输 入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比从而判断密码是 否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警实际

10、 使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可当然也可 以用继电器的常开触点去控制电磁铁吸合线圈。其设计原理框图如图.1所示:图2.1原理框图单片机:本部分的功能包括写入和读取各种控制命令及数据处理,同时还要对各 执行单元进行控制。单片机是整个系统的控制核心及数据处理核心。键盘部分:本部分由用户通过键盘输入各种信息送入到单片机进行处理。显示部分:本部分完成的是单片机处理后的数据和信息的显示以及系统提示信息的显示密码存储部分:本部分完成存储原始密码和用户更改密码数据的功能。其它部分:本部分的目的是为了提高系统的可用性和实用性。主要包括电源部分、 复位部分、晶振部分、开锁部分

11、和报警部分。电源部分主要的功能是为单片机提供适 当的工作电源,同时也为其它的部分提供电源。复位部分功能是使单片机在出现故障 时进行成功的复位。晶振部分功能是给单片机提供时钟。开锁部分主要是根据单片机 数据处理的结果驱动继电器控制开锁的操作。报警部分主要的功能就是在错误操作下 实现报警提示。2.2 单片机选择单片机的种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较, 合理选择,以期获得最佳的性价比。在多数的电子设计中,基于性价比的考虑,8 位 单片机为首选。8 位单片机中以 MCS-51 系列单片机及其兼容机所占的份额最大。 MCS-51 的硬件结构决定了其指令系统不会发生变化。因

12、此在对不同公司的单片机进 行选型时,只需要比较芯片内部资源即可。在以前的电子设计中,应用比较广泛的是 AT89C51 单片机,但是该单片机存在 着致命的缺陷不支持ISP功能。Atmel公司现在已停止了 AT89C51的生产,而加上 了 ISP功能的AT89S51、AT89S52诞生了。AT89S系列单片机在工艺上进行了改进, 采用了 0.35mm的新工艺,不但降低了成本,而且增加了功能,提升了单片机的性能, 提高了市场竞争力。AT89S 系列单片机新增了许多功能,性能也有了较大的提升,但是价格仍旧与AT89C系列的价格相差不大。新增的功能之中最具影响力的就是ISP在线编程功能, 这个功能的优势

13、在于,改写单片机Flash存储器内的程序时不需要把芯片从工作环境中剥离,是一个强大易用的功能显然,AT89S系列单片机在性能上要比AT89C系列的单片机优良的多,而且价格 也没有什么提高。所以选择AT89S系列作为本系统的的主控部分。而AT89S系列中 的 89S51 和 89S52 在实际应用中最多,本设计中软件部分需要大量的程序编程, 89S51内的程序存储器太小,不能满足要求,因此选择AT89S系列的AT89S52作为 本设计的主控部分。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业8

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

15、护方式下, RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个 中断或硬件复位为止。AT89S52 引脚图如图2.2所示:(T2)PH匸n vccH40(T2 EX)PI .1 匚23*9二1 P0 0 ADQ)Pl-全 c33dZJ PO.1 (ADf )ipi.a 匸43T二1 尸6W (A 02)匸53G=1 PO.3 ( A 03)Pl.s 匚B&二1 FXX4 (AD-l s(MISO)IR1-6 匚T34ZZ PO.5 (ADS)尸11.了匸与332 PQ e (AX)FIST 匚日3迟= FXXF (A07)(RXCJ)匚HO31i-1 ES/VPP(TXLJ)尸3

16、.1匚11 130_l AL&HHOO(IMTQ)P3W匸12P O二I PEIXI(INT 1)P3.3 匸换=1 P2I.7 (AIS)(TO)匚1-4ZU P2.6 (A 1-4)S7匸H72-4= P2.3 (Al 1)匚11 B它3ZU(A1OXTAL1 匚11922二I P2.1 (AS)ONO L_R21i_l P2!.O (Afil)图2.2 AT89S52引脚图AT89S52引脚功能说明如下:VCC:电源电压GND : 地P0 口 : P0 口是一个8位漏极开路的双向I/O 口,也即地址/数据总线复用口。作 为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚

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

18、数器2的触发输入(P1.1/T2EX),在flash编 程和校验时,P1 口接收低8位地址字节。P1端口引脚的第二功能如表1所示表1 P1端口引脚的第二功能端口引脚第二功能P1.0T2 (定时器/计数器T2的外部计数输入),时钟输 出P1.1T2EX (定时器/计数器T2的捕捉/重载触发信号和 方向控制)P1.5MOSI (在系统编程用)P1.6MISO (在系统编程用)P1.7SCK(在系统编程用)P2 口: P2 口是一个具有内部上拉电阻的8位双向I/O 口,P2输出缓冲器能驱 动4个TTL逻辑电平。对P2端口写“T时,内部上拉电阻把端口拉高,此时可以 作为输入口使用。作为输入使用时,被外

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

20、原因,将输出 电流(TTL)。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能。如 表2所示:表2端口引脚第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.4TO(定时/计数器0)P3.1TXD(串行输出口)P3.5T1(定时/计数器1)P3.2INTO(外中断0)P3.6WR(外部数据存储器写选通)P3.3INT1(外中断1)P3.7RD(外部数据存储器读 选通)此外,P3 口还接收一些用于FLASH闪存编程和程序校验的控制信号RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使 单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的D

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

22、SEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即 1O1O输出两个脉冲,在此期间,当访问外部数据存储器,将有两次有效的PSE N信号。EA/VPP 外部访问允许,欲使CPU仅访问外部程序存储器(地址为OOOOH-FFFFH) , EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编 程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部 程序存储器的指令。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。密码存储芯片

23、选择本部分主要是论证密码存储芯片的选型。存储器的类型按功能分只读存储器( Read-Only Memory ,简称 ROM )和随机存取存储器( Random Access Memory,简称RAM )。随机存取存储器与只读存储器的根本区别在于:随机存储器 在正常工作状态时可随时向存储器里写入数据或从中读出数据,在存储器断电后信息 全部丢失。只读存储器又分为固定掩膜存储器和可编程存储器。固定掩膜存储器在生产时就根 据用户的要求把数据和程序固化其中,其中的内容用户不可以再修改,只能读出。而 可编程存储器便于用户根据自己的需要来写入特定的信息,根据存储矩阵中存储单元 电路的结构不同,可编程的ROM

24、有PROM、EPROM和EEPROM等三种。PROM 的编程是由用户而不是生产厂家完成,增加了灵活性,但编程是一次性的,且可靠性 较差,目前已很少使用。 EPROM 作为一种可以多次擦除和重写的 ROM ,克服了掩 膜式 ROM 和 PROM 只能一次性写入的缺点,满足了实际工作中需要多次修改程序 或数据的可能,前提条件是存储矩阵中现有的程序或数据必须首先擦除oEPROM的 擦除和编程写入是采用专门的编程器设备完成的,并且擦除的周期比较的长。电可擦 除可编程只读存储器EEPROM也称E2PR0M。与EPROM擦除时把整个芯片的内容 全变成“T不同,EEPROM的擦除可以按字节分别进行,且字节的

25、编程和擦除都只 需10ms,并且不需要将芯片从机器上拔下以及诸如用紫外线光源照射等特殊操作, 可以在线进行擦除和编程写入。因此根据设计的要求,采用的是EEPROMo常见的EEPROM芯片有28256、AT24C系列,28256的EEPROM引脚比较多,功能比较 的多,且容量太大,而本设计的存储器只是存储密码数据,不需要很多的功能和很大 的容量,因而选用的是AT24C系列的EEPROMo常用的AT24C系列如下表3所示:表3 AT24C系列EEPROM对比表EEPROM型号AT24C02AT24C08AT24C16容量2K8K16K(bytes)页大小81616(bytes)总页面数326412

26、8地址位888(bits)本设计中存储的数据不多,因此选用AT24C02即可满足要求AT24C02是美国Atmel公司的低功耗CMOS型EEPROM,内含256 X8位存储空间, 具有工作电压宽(2.55.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、 抗干扰能力强、数据不易丢失、体积小、掉电情况下可以继续保存数据等特点AT24C02 芯片作为系统的从器件,它与主器件之间的通信遵循C总线协议,I2C总线协议规定, 任何将数据传送到总线的器件作为发送器。任何从总线接受数据的器件为接收器。数据 传送是由产生串行时钟和所有起始停止信号的主器件控制的主器件和从器件都可以作 为

27、发送器或者是接收器。AT24C02的引脚如图2.3所示:图2.3 AT24C02的弓|脚引脚的功能:串行时钟(SCL):用于产生器件所有数据发送或接收的时钟。串行数据/地址(SDA):用于器件所有数据的发送或接收,SDA是一个开漏输出管 脚,可与其它开漏输出或集电极开路输出进行线。器件地址输入端(A0、A1和A2):用于多个器件级联时设置器件地址,当有多个从 器件连接在I2C总线上时,此端口用于选择不同的从器件。本次设计中三个引脚全部接 地。写保护(WP):如果WP管脚连接到VCC,所有的内容都被写保护(只能读)。当WP 管脚连接地线或悬空,允许器件进行正常的读写操作。2.4键盘输入方案比较键

28、盘输入是现阶段电子设计中最常用、最实用的输入设备。设计中常用的键盘输入 方案有两种:独立式键盘、矩阵式键盘。独立式键盘独立式按键是指直接用I/O 口线构成的单个按键的电路。每个独立式按键单独占有 一根I/O 口线,每个按键的工作状态都是独立的不会影响到其他的按键的工作状态。独立式按键的电路如图2.4所示:rrr15/图2.4独立式按键电路原理图通常独立式键盘的按键输入都采用低电平有效,上拉电阻保证了按键的断开,1/0 口线有确定的高电平。独立式按键电路配置灵活,软件结构简单,但是每个按键都需 要独立的I/O 口,如果按键的数量较多的时候,I/O就会造成极大的浪费。矩阵式键盘行列式键盘又叫矩阵式

29、键盘。用I/O 口线组成行列结构,按键位于行列的交点位置上。矩阵式键盘电路原理如图2.5所示:丿,/Y/rn丿yr r厂_Lrr1_1yyrL /111 L图2.5矩阵式键盘电路原理图本次设计中电子密码锁的键盘中,出去0-9的数字键外,还需要一些辅助的功能键, 总体上来说按键的数量是相当的多的。采用独立式按键的方案,会对单片机的/O 口 造成很大的浪费;采用矩阵式的按键方案就比较的适用于本次设计。2.5显示方案比较设计中常用的输出显示设备有两种:数码管和LCDLCD显示方案LCD是一种被动式的显示器,利用液晶能改变光线通过方向的特性,来达到显示的 目的。LCD显示清晰美观,具有功能低、抗干扰能

30、力强的优点,广泛应用于仪器仪表、 控制系统等。液晶显示器的驱动方式由电极引线的选择方式确定,选择了液晶显示器 之后便无法改变驱动的方式。当LCD显示笔端上两个电极电压相位相同时,两电极之间的电位差为0,该字段就 不显示;当两个电极电压的相位相反时,两电极之间的电位差为两倍的方波电压,该 字段显示。其原理电路如图2.6所示:LCD数码管显示方案七段数码管显示器是有8个发光二极管组成的(a,b,c,d,e,f,g), LED七段数码管的显 示即相应的发光二极管导通或者是截断不同的组合等到的字符显示不一样的。数码管 显示的数据内容比较的直观,一个数码管可以显示一位,多个数码管就可以显示多位, 且程序

31、设计和外围电路设计都十分的简单。数码管显示的每一位都需要有一个8位输 出口控制,当需要较多的数码管显示的时候,单片机如果要直接控制各个数码管的显 示是不可能的,因为没有足够的I/O 口线进行控制。通常采用串口发送数据,然后用 串行输入并行输出的移位寄存器来驱动数码显示器。实际应用中,简单的可以使用三 极管来驱动,但是本设计为了使显示更加的稳定,采用的是74HC164串行移位寄存 器来驱动。本次设计,显示的东西不需要很复杂,信息也较少,用数码管显示完全可以满足要 求,而使用LCD显示成本可能会比较的高,所以采用数码管显示。 3电子密码锁的硬件设计本部分主要介绍基于AT89S52单片机的电子密码锁

32、的硬件设计。系统的硬件部分 由键盘输入部分、密码存储部分、显示部分、电源输入部分、复位部分、晶振部分、 报警部分、开锁部分组成。3.1系统结构框图系统以AT89S52单片机作为数据和控制部分;以矩阵键盘输入作为键盘输入部分的 方式;数码管显示作为数据输出显示部分;由继电器控制电磁阀动作的开锁电路作为开 锁部分;蜂鸣器作为报警部分,系统的硬件结构框图如图.1所示:图3.1系统的硬件结构图3.2主控部分本次设计中,选用Ateml公司的51系列单片机AT89S52芯片作为电子密码锁的 数据处理及操作控制芯片。只有单片机芯片是无法完成数据处理及控制功能的,必须 有附加的电路,使单片机芯片组成一个可运行

33、的系统才能实现其功能。本次设计,由 AT89S52单片机连同附加电路构成的单片机最小系统作为主控电路图如图3.2所示:20UIHzl-lHzlol-F-HH-PO.OMDOPO.KADiPO.2MD2PO.3SAD3P0JMD4P0.5MDSPO.6MD6P0.7MD?P2.0JA8P2.1iA9P2.2M10P2.3UL11P2.4M12P2.5W13P2.6M14P2.7W15P3.0JRXDPS.IfTXDP3.2INT0P3.3INTTP3.4JT0P385JT1P3匝P3.7JRD-P1.0PI .1P12PI 3P1.4PI 5PtSP1.71=1isXTiJ匚I刈i12MHZI-

34、XTAL1 qXTAL2RSIpseTALL EALaH- 丄H-XTAL2.1仿真部分扫st.HEX图3.2最小系统3.3显示部分电子密码锁采用数码管进行显示,经过单片机处理过的数据信息都由数码管进行显 示。单片机数据传输采用串行方式,数据通过单片机的串行数据口 P3.0 (RXD)进行 发送,接着应用74HC164串行移位寄存器把串行的数据转换成8位的并行数据,驱 动LED数码管。74HC164芯片中,没有数据锁存器,使串行数据每到达一位,直接就被送到数码管中,造成数据显示不稳定。为了使数据显示稳定,在移位寄存器和数码管之间加入数据锁存器,来稳定数码管的数据显示。显示部分如图3.3所示:L

35、J J -1 -a5亠U174273ITar-ECDU27JIJS1GJvTEXTa图3.3显示部分电路图3.4键盘输入部分在电子密码锁中各种信息的输入都是通过键盘输入部分完成的。把单个按键按照4*4组成键盘,四条行线连接到单片机的P1.0-P1.3四条I/O 口线上,四条列线连接到单片机的P1.4-P1.7四条I/O 口线上,运行的时候,单片机通过控制P1 口得高低电平,然后根据变化进行判断。单片机向行线输入高电平,向列线输入低电平,按键未被按下之前保持电平给定不变,按键按下,行线的高电平变成低电平。同样对列线进行判定,即可判断所输入的信息。键盘部分的电路连接如图3.4所示:Oil-L_1L

36、n3L35JL-ILrlLIL1L!_1LL TIL . Jt rl. .r 亠;4 士 R -J 円円电丙円內円沟fiJT-Pli PI,IPlj附 Pl.7R2-. .:图3.4键盘部分电路图Sfc1:JB7:Pt 3.5密码存储部分在电子密码锁中,存入的密码是需要永久的保存的。在设计中采用了在掉电的情况 下依然能够保存数据的EEPROM存储芯片24C02存储密码。设计的密码锁因为只需 要存储6位密码,数据量很小,所以24C02的地址选择端口直接接地,时钟输入端 口(SCK和数据输入端口(SDA)和单片机的相连即可。电路连接如图3.5所示:U1PO.O/ADO PE. UADI P0.2/

37、AD2 P0.3/ADQ PQ.d/AEM PD.6/AD6 P0.6/AE6 P0.7/AWP2.山阳 P2.US P2.2/A1D P2.3/A11 P2.J/A12 P2.5/A13 P2.6/A14 P2.7/A15P3.Q/RXD P3.1fTXD P3.2/iKTTO P3.3/iNlTP3.J/T1OP3.5/T1P3.E 歴P3.7/RD图3.5密码存储部分电路图3.6电源部分密码锁主控制部分电源需要用5V直流电源供电,把频率为50Hz、有效值为220V 的单相交流电压转换为幅值稳定的5V直流电压。其主要原理是把交流电经过电源变压 器、整流电路、滤波电路、稳压电路转换成稳定的直

38、流电压。由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值 相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所 以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大 的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压 平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影 响,从而获得稳定性足够高的直流电压。为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。主电源如图3.6所示:220V市电通过变压器降压成1

39、2V的交流电,再经过整流桥整流,7805稳压到5V 送往电子切换电路,由于本电路功耗较少,所以选用10W的小型变压器。由R2, R3, R4, R5及J1构成电压比较器,正常情况下,V+V- J6时,由Q1,Q2构成的 达林顿管使继电器K1开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池 供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。Q3,Q4构成 的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D5亮为正在充电,D7 为工作指示。由R8, R11 , Q4构成电压检测电路,蓄电池电压低,则Q3,Q4导通, 实现对其充电;充满后,Q3,Q4截止,停止充电,同时D5

40、熄灭,电路中C6的作 用是滤除干扰信号。如图3.7、3.8所示:I7-RE5用1fG .nr sTECT JrL j . . . . = . . . . . a丿:旧a ( |和牴- l/Ql :丁EXP -EM:DI01E .:TCT:-图3.7停电检测及电子开关切换电路图3.8蓄电池自动充放电电路3.7其它功能部分密码锁系统中主要的为以上的几个部分,但是为了使系统更加的完善,还需要 些附加的部分。复位部分单片机复位是使CPU和系统中的其它功能部件都处在一个确定的初始状态并从这个状态开始工作,单片机刚开始接上电源,断电或者是发生故障时都需要复位。单片机的复位输入RST脚持续两个机器周期高电平

41、将使单片机复位。复位部分如图3.9 所示:报警部分报警部分是由陶瓷压电发声装置及外围电路组成。当密码输入不正确是会发出警 报。报警电路如图3.10所示:LSi图3.10报警电路晶振部分本部分是为单片机提供时钟控制信号,采用的电路是外接晶振和电容组成的并联谐振回路。AT89S52引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图4-7 所示方式连接。晶振、电容C1、C2及片内与非门(作为反馈、放大元件)构成了电 容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶 振频率决定,范围在033MHz之间,电容C1、C2取值范围在530pF之间。根据实际情况,本设计中采

42、用12MHZ做为系统的外部晶振。电容取值为20pF。如图3.11所示:C1AL120UF 口冰ZC220UF 图3.11晶振部分电路开锁部分当输入正确的密码的时候,单片机的其中一个引脚线发出信号,经过三极管放大后,由继电器驱动电磁阀动作将锁打开。同时绿色的指示灯将会点亮。开锁电路如图3.12所示:+22DV图3.12开锁电路3.8电子密码锁的电路原理图根据系统所需要实现的功能,进行的原理图设计如图3.13所示:图3.13电子密码锁的电路原理图4电子密码锁的软件组成4.1系统软件设计流程本设计的软件程序设计主要有(1)初始化程序(2)按键功能实现程序(3)密码 修改程序(4)报警程序等组成。系统

43、的总体流程图如图4.1所示:图4.1系统的总体流程图4.2 Keil uVisio n2 软件介绍单片机开发中除必要的硬件外,同样离不开软件,本系统的软件编程设计是在Keil 软件环境中完成的。我们写的C语言、汇编语言源程序要变为CPU可以执行的机器 码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方 法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软 件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用 高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发51系列单片机的软件,这从近年来各仿真机厂

44、商纷纷宣布全面支持Keil即可看出。Keil提供 了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完 整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。掌握这一软 件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果使用C语言编程, 那么Keil几乎就是不二之选。即使不使用C语言而仅用汇编语言编程,其方便易用的 集成环境、强大的软件仿真调试工具也会令人事半功倍。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系 统,与汇编相比, C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因 而易学易

45、用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界 面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成 的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型 软件时更能体现高级语言的优势。各主要部分的功能实现程序设计4.3.1 初始化程序设计电子密码锁系统在接通电源后,首先要对系统进行初始化。初始化过程包括密码锁 上锁,密码的读入,LED数码管的显示内容初始化,设定系统状态指示等。流程图如 图 4.2 所示:图4.2初始化程序设计流程图初始化程序如下:ORG0

46、000HLJMPFIRSTORG000BHLJMPINT_T0ORG0100HFIRST: MOV SET_TIMES,#O;新密码输入次数清零从24C01C中读数据,数据送AT89C51中38H开始的16个字节中MOVSLA,#0A0H;写入控制字MOVSUBA,#00H;目标地址MOVNUMBYTE,#6;写入的字节数LCALLIRDNBYTE;开始写数据BEGIN:MOVCNT_ERROR,#00H;密码错误次数清零START:CLRLED_YELLOW;上锁指示灯SETBLED_GREEN ;开锁指示灯灭SETBLED_RED ;密码错误指示灯灭MOVKEY_CNT_SET,#00HM

47、OVCNT_A,#00HMOVCNT_B,#00HMOVKEY_CNT,#00HMOVLINE,#00HMOVROW,#00HMOVVAL,#00HMOVWORD_ADRESS,#4CHMOVLED_BIT_1,#0AH;数码管全-MOVLED_BIT_2,#0AHMOVLED_BIT_3,#0AHMOVLED_BIT_4,#0AHMOVLED_BIT_5,#0AHMOVLED_BIT_6,#0AHMOVKEY_1,#00H;输入密码存储区清0MOVKEY_2,#00HMOVKEY_3,#00HMOVKEY_4,#00HMOVKEY_5,#00HMOVKEY_6,#00HMOVTMOD,#01

48、H;初始化定时器 T0MOVTH0,#(65536-700)/256MOVTL0,#(65536-700)MOD 256MOVIE,#82H4.3.2 按键处理程序设计介绍)0 9密码输入程序否是开锁?键功能程序键值=开锁程序清除程序设置程序键值= 否清除否是键值=设置?否*确认程序否确认?图4.3按键处理程序流程图按键处理程序如下:A0: NOPLSCAN:MOVP1,#0F0H;扫描行码,把四条“行”线置成低电平L1:JNBP1.0 ,L2;检测第一行是否有键按下LCALLDLY_S;消除键盘抖动JNBP1.0 ,L2;确认第一行有键按下MOVLINE,#OOH;把值送到指定内存,等待计算

49、LJMP RSCAN;跳转到键值计算部分P1.3,a0LINE,#03HMOV P1,#0FHP1.4,C2ROW,#00H;扫描列码L2: JNB LCALL JNB MOV LJMPL3: JNB LCALL JNB MOV LJMPL4: JNB LCALL JNB MOV RSCAN:C1: JNBMOV LJMPC2: JNB MOV LJMPP1.1,L3DLY_SP1.1,L3LINE,#01HRSCANP1.2,L4DLY_SP1.2,L4LINE,#02HRSCANP1.3,a0DLY_SCALCUP1.5,C3ROW,#01HCALCUC3: JNB P1.6,C4MOVR

50、OW,#02HLJMPCALCUC4: JNBP1.7,C1MOVROW,#03HLJMPCALCUCALCU:MOVA,LINE;计算键值MOVB,#04HMULABADDA,ROWMOVVAL,A;把键值存入VAL单元CJNEA,#0AH,J1;是否为CLR键JNB LED_GREEN,CLR_KEY;检测是否已开锁MOVR1,KEY_CNTCJNER1,#00H,J2;判断已按键次数为零?LCALLALARM_1;调用报警子程序LCALLFALSE;数码管显示“FALSELJMPSTARTCLR_KEY: LCALL ALARM_1;锁开状态下,按CLR的处理方法,调用报子程序LCALL

51、FALSE ;显示“ FALSELJMPA1J2:LCALLSHIFTR ;显示内容右移一位DECKEY_CNTLCALLBCDLCALLDISP ;等待按键抬起W00:LCALLDLY_1SMOVA,P1CJNEA,#0FH,W01LJMPA0W01:MOVA ,P1CJNEA,#0F0H,W02LJMPA0W02:SJMPW00J1:MOVA,VALCJNEA,#0CH,J11;是否为 SET键LCALLDLY_SJB LED_GREEN,SET_ERRORJ11:MOVA,VALCJNEA,#0DH,J22;是否为 LOCK键LCALLDLY_SJNB LED_GREEN,LOCKJ22

52、:MOVA,VALCJNE A,#0BH,J3_TEMP ;是否为ENTER键LJMPTTTTTTJ3_TEMP: LJMP J34.3.3 密码更改程序设计密码锁的密码就相当于我们日常生活中用到的钥匙,而电子密码锁可以根据用户的 需要,随时更改原有的密码,来提高密码锁的安全性,密码修改功能是保证密码锁有 效的重要保障。在密码修改子程序中,用户只有在开锁状态下才能进行修改,即要求 用户知道原有的密码,否则无法打开密码锁,更无法修改其密码。框图如图 4.4 所示:图4.4密码更改程序设计流程图密码更改程序如下:SET_P:CLR LED_GREEN更改系统状态及屏幕显示内容SETBLED_YEL

53、LOWSETBLED_REDMOVLED_BIT_1,#0CH;关闭全部数码管MOVLED_BIT_2,#0CHMOVLED_BIT_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,

54、KEY_2,J_RSETMOVA,WORD_4CJNEA,KEY_3,J_RSETMOVA,WORD_3CJNEA,KEY_4,J_RSETMOVA,WORD_2CJNEA,KEY_5,J_RSETMOVA,WORD_1CJNE A,KEY_6,J_RSET向 24C01C 中写数据,数据存放在 24C01C 中 4CH 开始的 16 个字节中TIMES1:MOV R0,#WORD_1SET ;第一次新密码暂存内存中MOVWORD_1 , R0MOVR0,#WORD_2SETMOVWORD_2 , R0MOVR0,#WORD_3SETMOVWORD_3 , R0MOVR0,#WORD_4SET

55、MOVWORD_4 , R0MOVR0,#WORD_5SETMOVWORD_5 , R0MOVR0,#WORD_6SETMOVWORD_6 , R0LCALLDLY_1S;加延时程序5系统仿真5.1系统仿真过程开始时的数码管显示“-”,等待输入密码。如图5.1所示:图5.1数码管显示密码输入时显示F并依次左移,如密码输入错误可以使用Clr”键进行清除,然后可以从新输入。如图5.2所示:图5.2数码管显示F密码输入正确时,数码管显示简单的便是pass”,同时绿色指示灯亮起,开锁电路运行,锁被打开。如图5.3所示:图5.3数码管显pass本次设计的密码锁的密码为数6位,当密码的位数少于或者多于6位

56、的时候,数码管上将提示“false”。如图5.4所示:图5.4密码是输入错误时,数码管提示“error 1 ”,如果继续输入第二次、第三次错误的时,数码管将提示“error 2 ”和“error 3 ”,同时报警器报警提示,红色指示灯闪烁,键 盘锁死,防止继续操作。如图5.5所示:图5.5当需要关闭密码锁的时候,直接按下键盘上的“lock”键即可锁定。数码管恢复初始,黄色指示灯亮起。如图5.6所示:_jsBu_图5.65.2仿真调试中遇到的问题及解决办法1问题描述:密码在未输入6位的情况下,摁下“enter”键,数码管显示“false”, 无法返回初始输入界面“”。解决办法:“en ter ”

57、键跳转时,跳转到开始即可。2问题描述:密码正确输入,“e nter ”键确认后,数码管显示“pass”,这时直 接按“clr”键,屏幕上显示“errorl”,并且报警,数码管无法恢复正常状态。原因及解决办法:“clr ”的后面跳转不对,需要加一个标志位使数码管的显示恢复“pass”。3问题描述:在系统正常运行后,如果密码锁被用户打开,此时用户可以按下“lock” 键对其重新上锁,但在运行过程中,虽然系统可以重新上锁,但会在重新上锁前,出 现报警,并且数码管显示“error 1 ”。原因及解决办法:因为系统运行的速度较快,按键还没有复原,键盘的检测便又 一次检测到了该按键,重复的操作了 “ock

58、 ”键,系统提示错误。所以应在检测按键时,等待按键的复原,再进行跳转执行该按键的程序指令。 总结本次设计经过一个月的时间终于完成,在这期间使我对大学的知识又进行了一次学 习、了解,特别是对一些以前学习过或者说是接触过的应用软件加深了了解,并且通 过网上和书本上的学习很成功的运用这些软件对设计的硬件电路和软件程序测试成功 实现。虽然运用的还不是很熟练,一些功能还不是很了解,但是通过同学和老师的帮 助,还是得到了很好的解决。本次设计的目标均得到了实现,具体如下:产品性能稳定,可靠。加电后,数码显示管显示 ;输入密码时,只逐位显示F,以防止密码泄漏;( 4 )在任何掉电情况下,原设定密码保持不变。输

59、入密码的过程中,如果不小心出现输入的密码错误,可以清除,然后继续的 进行密码的输入。可以在开锁后进行密码的修改,但需要两次输入确认。当密码输入完毕按下确认键时,单片机将输入的密码与设定的密码比较,若密 码正确,则密码锁打开;若密码不正确,则密码锁无法打开,在密码输入错误次数到达 预设值时,启动报警程序报警。但是由于水平和时间的关系,有些地方的设计还不进人意。而这些地方还有待今后 一一的去解决。致谢本文从开题到定稿,历时一个多月。在本论文完成之际,首先要向我的指导老师石 军亮老师致以诚挚的谢意。在论文的写作过程中,她给了我许许多多的帮助和关怀。 同时她对工作的积极热情、认真负责、有条不紊、实事求

60、是的态度,给我留下了深刻 的印象,使我受益非浅。在此我向石老师致以真诚的谢意。同时还要感谢各科的老师, 你们的辛勤栽培使我获得了今天的成绩,谢谢老师们。当然,我还要感谢我周围的同学,他们在这次设计中给予了我很多的帮助,没有他 们的帮助,在这短短的一个多月时间内,我是不可能这么好的完成我的设计的。尤其 是对一些应用软件的运用,开始基本上是不会用,但是经过了大家的帮助,我学会了 基本的操作。同时感谢寝室的兄弟给予我的鼓励和支持,感谢他们的陪伴。现在即将离开学校、老师、同学,还有我四年的大学生活,虽然依依不舍,但是对 未来的路,我充满了信心。最后,感谢在大学期间认识我和我认识的所有人,有你们 伴随,

温馨提示

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

评论

0/150

提交评论