智能密码锁设计与开发 - 图文

更新时间:2024-05-09 16:15:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

智能密码锁设计与开发

摘要

伴随着技术的进步和社会的发展,人们在生活中对安全的需求越来越高。为了满足人们的需求,密码锁的安全性需进一步的提高。而传统电子密码锁是基于单一数字密码设计,其最大缺陷则是密码容易遗忘以及遭人窃取。因而传统的密码锁已无法达到安全技术防范的要求。

但近年来随着生物技术的发展,越来越多的活体技术应用到识别系统中,如指纹识别、掌纹识别、虹膜识别等。而与其它的活体识别技术,指纹识别系统以其可强大的实现性,相对低廉的成本,同时又具备较高的安全性,被应用到越来越多的场合。而传统密码锁,结合指纹识别这一技术,其安全性得以提升,满足了人们当前的需求。

本设计采用了STC89C52单片机为核心控制部件,设计电子硬件模块,采用指纹识别模块,应用指纹识别技术对密码锁进行设计。使其既能通过键盘输入密码实现电子锁的解锁,又能通过指纹的识别进行解锁,提高了密码锁的安全性、实用性和可靠性。

关键词:指纹识别 STC89C52单片机 密码锁

目录

第一章 绪论

1.1智能密码锁的现状 1.2指纹识别技术简介

1.2.1指纹识别的原理 1.2.2指纹识别应用 1.2.3指纹识别技术的特点 1.3智能密码锁课题背景

第二章 智能密码锁整体设计及选择方案

2.1 智能密码锁整理设计方案 2.2系统核心单片机

2.2.1 单片机的选择 2.2.2 STC89C52单片机介绍 2.3 液晶显示模块的设计

2.3.1 LCD1602选择的原因 2.3.2 LCD1602简介

2.3.3 LCD1602液晶显示模块与单片机连接原理图 2.4指纹识别模块的设计

2.4.1指纹识别模块的选择

2.4.2 FM-180指纹识别模块系统参数与接口 2.4.3 FM-180指纹识别模块指令系统

第三章 智能密码锁的硬件设计

3.1智能密码锁硬件设计原理 3.2电源输入电路 3.3复位电路与时钟电路 3.4晶振电路 3.5报警电路 3.6密码锁电路 3.7矩阵键盘电路 3.8指纹模块电路

第四章 智能密码锁的软件设计

4.1主程序流程介绍

4.2矩阵键盘模块流程图

4.3 LCD1602液晶屏显示模块流程图 4.4开锁和报警模块流程图 4.5密码修改流程图 4.6指纹识别模块流程图

第五章 智能密码锁系统调试与仿真

5.1硬件电路调试及分析 5.2软件调试及分析

参考文献

第一章 绪论

1.1智能密码锁的现状

传统的电子密码锁是一种输入密码来控制电路工作,从而进行解锁的电子在产品,它的种类之多应用之广,在原先机械锁面前,有着巨大的优势。但是随着科技的进步,其优异性能的普及,漏洞也逐渐浮出水面。密码锁安全性的提升,也成为人们讨论的热点。

与此同时伴随着指纹识别技术的出现和完善,它被广泛应用在身份证,交通工具,手机等更多的领域。这一技术优异的安全性无疑给止步不前的密码锁提供了有利的技术支持,因而指纹密码锁,也伴随着其发展应运而生。在未来几年中,我国将会有近百亿元的市场等待着去开拓。同时在指纹识别技术支持下的密码锁的巨大市场前景,将对国际、国内安防产业带来巨大的影响。

从近年来的发展方向上来看,民用化的指纹识别技术终将取代方便性和安全性都存在缺陷的密码和身份识别码,用来阻止非授权的访问。并且因为指纹识别技术的民用比刑侦应用更加容易普及,市场的容量也更大,所以它拥有大规模推广的基础。在一些西方国家,指纹识别技术已进入大规模民用阶段。早在1990年,就有人在美国洛杉矶采用了世界上第一套救济金发放指纹识别系统。而在此后,指纹识别技术与电子密码锁的结合也成为全新的,安全性更加优异的加密方式。

1.2指纹识别技术简介

1.2.1 指纹识别的原理

指纹是指手指皮肤上凹凸不平的纹路,尽管指纹非常细小,但是其不同的纹路之下包含着大量的信息。而这些指纹的不同点称为指纹特征。指纹识别就是利用人体的指纹特征对个体身份进行区分和鉴定。指纹识别技术在当前所有生物识别技术中是最为成熟,同时也是被应用最为广泛的生物识别技术。其原因是指纹采用的过程的简单以及指纹识别的准确率高。

指纹识别的原理主要包括以下三部分:

1

A.指纹采集原理 B.指纹特征提取原理 C.指纹特征匹配原理

指纹采集原理主要是通过各种传感技术,根据指纹的几何特性以及生理特性,把指纹表现出来,转化为数字化表示的指纹图案。由于人指纹凹凸的几何特性不同,在阳光下造成的反射光强度也不同。由此可见,每个人指纹的特征都是不一样的,而指纹的采集正是把这些不同的特征进行转化。

指纹特征提取原理是对指纹图案的细节特征和整体特征进行提取、鉴别的原理。其分析的对象包括纹形特征和特征点的分布、类型,以及特征点之间的平面几何关系。将这些指纹特征用数字模板的形式展现出来,就能实现一个指纹特征分析的过程。

指纹特征匹配原理是对指纹图案的细节特征和整体特征根据模式识别的原理进行比对匹配。这个过程是在已有的指纹和需要验证的指纹之间进行的。

根据上述三原理,可以得出,指纹识别的流程图如下图1.2.1所示:

图1.2.1 指纹识别流程图

1.2.2 指纹识别的应用

指纹识别能够通过对每个人独一无二的指纹进行识别,从而确认其身份。在过去,这一技术活跃于刑侦系统中。但伴随着指纹技术的普及,近几年,它逐渐走向市场,应用于各个领域。例如包括已下几个方面

(1)指纹支付

将指纹与银行卡进行绑定,只需用手指轻轻一点便能完成消费支付。这种新型支付方式在美国已经出现多年。2006年上海某公司也开始接触到指纹支付的市场。如图1.2.2

2

图1.2.2 指纹支付

(2)汽车指纹防盗

近年来,汽车指纹防盗也开始兴起,用户能够通过指纹控制车门开关,或者控制引擎点火,这些都是指纹技术在汽车防盗方面的应用,如图1.2.3

图1.2.3 汽车指纹防盗装置

指纹识别技术以其广泛的应用、低廉的价格和易用性高被是国际所公认。这些手指上的纹路在断点上是各不相同的,在信息处理中将它们称作\特征\。医学上也已证明这些特征对于每个手指都是不同的,其具有唯一性和永久性。因此我们可以把一个人和其指纹对应起来,通过比较相应的特征,就可以验证个人的真实身份。

1.2.3 指纹识别技术的特点

指纹识别的优点:

3

A.指纹是人体独一无二的特征,其复杂度足以提供鉴别用的足够特征。 B.可以通过登记多个指纹增加系统的安全可靠性。 C.扫描指纹的速度快,使用非常方便。

D.指纹采集头可以更加小巧,并且价格会变得更加低廉。 指纹识别的缺点:

A.某些人或者群体的指纹特征少,很难成像。

B.使用指纹是在采集头上留下的指纹,存在被用来复制指纹的可能性。 C.指纹是用户的重要个人信息,用户担心信息的泄漏。

上述可以看出,指纹识别技术拥有不同于其他技术的特点,而同时也正因这些特点,它成为了目前解决各类身份安全问题的最方便可靠的技术。

1.3智能密码锁课题背景

一方面,传统电子锁多年来大量的使用和普及使得安全性提高进度缓慢,社会上也逐渐出现各种破译的技术,一般电子锁的安全性引起了人们的担忧。而另一方面,指纹检测这一生物识别技术已获得国际公认,具有快速确定个人身份的功能。这一技术的出现和应用降低了人们在社会中的信任成本,对于人在社会生活和交往方式上有了前所未有的改变,生活工作的效率也有飞跃性的提高。由此可见,电子锁的停滞和指纹识别技术的快速发展,对于当前这个对安全要求越来越高的社会,有着非同一般的影响。近年来,随着指纹识别技术的完善,电子锁安全性的提高这一问题也在指纹识别技术的支持上有了巨大的进展。本次设计智能密码锁是在一般电子密码锁基础上采用了Biovo乙木-C2暗背景指纹识别模块,可以在按键解锁密码的同时,实现指纹的录入、存储、比对,并通过LCD1602液晶显示出指纹采集存储的过程和比对的结果,从而提高密码锁的安全可靠性。

4

第二章 智能密码锁整体设计及选择方案

2.1智能密码锁整体设计

本设计采用单片机为控制核心,针对传统电子密码锁进行强化,增设指纹识别功能,能够支持指纹采集、存储、比对,以提高密码锁的安全可靠性。该系统是指纹模块检测手指,一旦搜索到指纹,理科采集指纹图案,并把采集的图像转化为数据发送出去。此步骤,只需将手指平放在指纹采集仪上,即可完成采集,操作十分便捷。总体描述本次设计的智能密码锁的功能即键盘输入解锁和指纹识别解锁的可选择式解锁方式,既能够支持传统通过按键输入数字密码解锁,又能够使用指纹模块检测、录入指纹,将注册指纹和检测指纹进行比对解锁。

传统的按键输入部分,用户可通过6位密码的输入,对密码锁进行解锁,若密码正确,则开锁;若密码不正确,则提示错误,如若输入错误连续三次以上,报警装置就会启动。在成功解锁后,用户可通过密码修改键,进行密码的修正,通过两次密码的输入,如果两次密码相同,新密码就能够被储存,密码修改成功;反之则提示重新输入。

指纹识别解锁部分,用户在进入界面可选择指纹切换键,进入指纹的录入和删除。当按下录入键后,将手指放置指纹采集头下,若听到鸣叫声,则表示指纹录入的成功,其相关信息会通过液晶屏显示。整体框图如图2.1

该系统的主要功能有以下几个方面:

1. 密码修改:解锁后能够通过密码修改功能,重新设置6位数字密码 2. 掉电保存:断开电源后,保存的密码不会丢失,支持复位保存 3. 录入指纹:指纹模块预先设有对指纹进行录入的功能,即可以通过指纹

采集头将个人指纹上的特征信息采集。

4. 指纹匹配比对:当有指纹录入时,模块会检索指纹库对指纹进行对比,

并将比对结果显示在液晶屏上。

5

图2.1 整体框图

2.2系统的核心单片机

2.2.1单片机的选择

单片机微型计算机是微型计算机的一个重要分支,简称其为单片机,它非常适用于控制领域,因而又称之为微控制器。

一般来说,单片机是由单块集成电路芯片构成,其内部包括了:CPU(中央处理器)、程序和数据存储器、定时器和输入输出接口电路等。所以,单片机只需要和适当的设备结合起来,便能够组成一个单片机控制系统。

单片机经过了几代的发展后,如今正朝着高性能、多功能、低电压、低价格、大存储容量以及强I/O功能拥有加好结构兼容性方向发展。它的发展趋势包括以下几个方面: (1)多功能

单片机在发展中,人们将所需的存储器和I/O口都尽可能集中在一块芯片上,

6

使单片机能够实现更多的功能。例如高速I/O口及计数器的捕获/比较逻辑、A/D转换、监视定时器——看家狗等。 (2)高效率和高性能

为了提高执行速度和效率,单片机使用流水线和DSP的设计技术,使单片机的性能得到了显著的提高,其表现为,单片机的时钟频率提高;相同的频率下单片机运行的效率有了巨大的提升;高度的集成,使单片机的寻址能力、片内ROM和RAM的容量也有了前所未有的突破。

并且由于系统资源和复杂度的增加,能够开始使用高级语言来开发单片机。从而有效的降低了开发的成本,加强了软件的可读性,有利于功能的增加。 (3)低电压和低功耗

由于采用了CMOS等工艺,使得单片机能够在比原来更低的电压下工作。这些特性使单片机能够在小电源的支持下长时间工作。

由此可见,单片机的型号之多,功能之全,能够应对当前所需设计的各大要求,因而,在设计时,对于单片机这一核心元件,需要进行谨慎的选择。针对本次智能密码锁的设计,在比对之下,结合STC89C52的特点:

A.工作电压:5.5V~3.3V(5V 单片机) B.工作频率范围:0~40MHz C.8K字节的用户应用程序空间 D.512字节RAM片上集成

E.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器和仿真器,可直接通过串口下载程序

F.拥有EEPROM功能,能够实现掉电保护 G.3个16位定时器/计数器 H.32个I/O口线,5个中断向量 I.一个全双工串行通信口

经过充分的分析智能密码锁所需的系统,关键是在于控制密码锁,在这点之上,STC89C52单片机突显出了它的优势,即控制简单、使用方便。它能够发挥其丰富的资源、强大的控制功能及可位寻址操作功能以及低廉的价格等优点。

总结来说,STC89C52单片机所拥有的特点,完全符合本次设计的要求,而

7

对于设计最可贵的一点,即单片机低廉的价格,它也完全符合,所以选择STC89C52单片机是毫无争议的。

2.2.2 STC89C52单片机的介绍

STC89c52是一款自带8K字节闪烁可编程可擦除只读存储器的高性能,低电压CMOS8位微处理器。同时STC89c52又是一种高效微控制器,它将多功能的8位CPU和闪烁存储器组合在同个芯片中。STC89c52为许多嵌入式控制系统提供了一个价廉且灵活性高的方案。

STC89C52的芯片引脚图说明如下图2.2

图2.2 STC89C52芯片引脚图

STC89C52的引脚功能说明: 1.作为主电源引脚VCC与GUD

VCC——(40脚):接5V的工作电压。 GND——(20脚):接地。

2.输入/输出(I/O)引脚的P0、P1、P2和P3(合计32根) (1)P0端口(39脚—32脚):

8

P0口为一个双向8位三态I/O口。P0能够用于片外程序数据存储器。在本设计中,液晶屏部分将会与此端口相连接。 (2)P1端口(1脚—8脚):

P1口是一个片内提供上拉电阻的准双向8位I/O口。因为这种接口输出无高阻状态,输入无法锁存,所以不是真正的双向I/O口。P1端口,在设计中,被使用到矩阵键盘的部分。 (3)P2端口(21脚—28脚):

P2口为一个片内上拉电阻的准双向8位I/O口,P2口缓冲器可接收,并输出4个TTL门电流

P2口,用于片外程序存储器进行存取时,P2口输出地址的高八位。P2口在进行编程和校验时能够收到高八位控制信号和地址信号。 (4)P3端口(10脚—17脚):

P3口管脚是一个自带内部上拉电阻的准双向8位的I/O端口。P3口能接收输出4个LS型的TTL负载。

P3口还为闪烁编程和编程校验接收一些控制信号。

P3口作为第一功能使用时,就作普通I/O口使用,其功能和使用方式与P1相同。但作为第二功能使用时,其各引脚的定义如图2-3所示

另外,P3口的每条引脚都可以独立定义为第一功能的输入输出或第二功能。

图2.3 P3端口管脚备选功能

正如上表所示,根据P3口的备用功能,其串行输入输出口在本次设计中将会与指纹模块相连接。

3.控制或者与其他电源复用引脚RST、ALE、PSEN以及EA/VPP

9

(1)复位RST(9脚):复位输入。

在振荡器运行时,在这脚上出现两个机器周期(24个振荡周期)及以上的高电平,让单片机复位。只要将这个引脚保持高电平,51芯片便能够循环复位。

复位后P3.0-P3.7口都置1,引脚表现为高电平,特殊功能寄存器SFR与程序计数器全部清零。复位操作对内部RAM不会有影响。 (2)ALE(30脚):

当访问外部存储器时,ALE的输出电平用于锁存地址的地低位字节。当FLASH编程时,这个引脚将被用作输入编程脉冲。不访问片外存储器时,ALE端仍然以固定的频率周期产生正脉冲信号。所以,它能够用作对外输出时钟脉冲信号,或用于定时目的。但是需要要注意的是:每次用于外部数据存储器时,都会越过一个脉冲。

(3)PSEN(29脚):片外程序存储器的读选通信号。

当从外部程序存储器取指令或常数期间,每个机器周期该信号两次有效。但在这个期间,每当访问片外数据存储器时,PSEN信号都将处于无效状态。 (4)EA/VPP(31脚):

当EA端口保持低电平时,则只选用片外程序存储器。当加密方式1时,内部将锁定为RESET;当EA端保持高电平时,选用片内程序存储器。当FLASH编程时,此引脚也可用作施加12V的编程电源(VPP)。 4.外接晶体引脚XTAL1和XTAL2 XTAL1(19脚):

与外部晶体相连接的一个引脚。在单片机的内部,它作为一个反相放大器的输入端口,是来自反向振荡放大器的输入和内部时钟工作电路的输入。 XTAL2(18脚):

与外部晶体相连接的另一端。在单片机内部,它是用作上述振荡器的反相放大器的输出。

2.3液晶显示模块的设计

本次设计的智能电子密码锁的显示模块主要是由LCD1602显示组成,它主要用于显示键盘输入的密码和指纹录入的情况,以及密码指纹正确或错误等信息的提示。同时,为了确保在密码输入时的安全性,所输入的密码均由“*”号表示。

10

当输入6位密码后按下确认键,系统便会与储存在ROM中的密码相比对,如若密码错误,显示屏上会出现“Error”的字样,如若正确则会提示相关信息。

2.3.1 LCD1602选择原因

液晶显示屏以其微功耗、显示内容丰富、体积小、超薄轻便等诸多有点,在仪表和低功耗系统中得到了广泛的应用。而本设计之所以在众多的显示屏中选择LCD1602,其主要原因还是由于LCD1602拥有以下有点:

a.位数多,能够显示32位

b.显示内容丰富,可以显示所有数字和字母 c.程序相对简单

d.小设计中使用居多,相对于其他显示屏比较熟悉 e.低廉的价格

综上所述,由于LCD1602低廉的价格和广泛的实用性,并且它完全符合这次设计的基本需求,所以显示屏的选择,非它莫属。

2.3.2 LCD1602简介

1.LCD1602功能介绍

1602液晶也叫1602字符型LCD,是一种专门显示字母、数字、符号的点阵式LCD。目前常用的模块分别有16*1,16*2,20*2和40*2行等的模块。本次设计采用的是16*2行等的模块。

2.LCD1602分为带背光和不带背光两种,其各引脚接线口说明如下表2.3.1所示:

表2.3.1 引脚功能说明 编号 1 2 3 4 5 6 7 8

11

符号 VSS VDD VL RS R/W E D0 D1 引脚说明 电源地 电源正极 液晶显示偏压信号 数据/命令选择端(H/L) 读/写选择端(H/L) 使能信号 数据I/O 数据I/O 编号 9 10 11 12 13 14 15 16 符号 D2 D3 D4 D5 D6 D7 BLA BLK 引脚说明 数据I/O 数据I/O 数据I/O 数据I/O 数据I/O 数据I/O 背光源正极 背光源负极

3.LCD寄存器的选择

RS:寄存器选择。1—数据寄存器;2—命令状态寄存器。 R/W:读/写。1—读;2—写。 E:使能。下降沿出发

具体内部寄存器选择说明如下表2.3.2所示:

表2.3.2 LCD寄存器的选择

E 1 1 1 1 0

R/W 0 1 0 1 X RS 0 0 1 1 1 功能说明 指令寄存器写入 忙标志和地址计数器读出 数据寄存器写入 数据寄存器读出 不动作 2.3.3 LCD1602液晶显示模块与单片机连接原理图(图2.3)

图2.3 LCD1602液晶显示模块与单片机连接电路

2.4指纹识别模块的设计

本次课题的智能密码锁除了包含传统电子密码锁的键盘输入设计外,还增设了指纹识别的功能,为了这一功能的实现,指纹模块的选择也是必不可少的。

12

指纹模块是智能密码锁的重要部件,主要安装在拥有指纹功能的各类器件上,它用于完成指纹的采集和指纹的识别。

2.4.1 指纹识别模块的选择

为了符合本次设计的要求,本次设计在经过各个模块的比较后,最终采用FM-180指纹识别模块进行智能密码锁的设计。

FM-180亮背景光学头指纹识别设备是一款采用了光学指纹传感器,并且由高性能DSP处理器和FLASH等芯片构成的模块,它具有指纹图像处理、模板提取、模板匹配、指纹搜索和模板存储等功能。和同类指纹产品比较,FM-180指纹识别模块具备以下特点:

a.指纹适应性强

指纹图像读取过程中,采用自适应参数调节机制,使手指能够有较好的成像质量,使用人群广泛。 b.价格低廉

c.模块采用自行开发的光学采集头,比起其他模块,成本大幅度降低。 d.算法性能优异

e.FM-180指纹识别模块的算法根据光学成像原理设计。算法具有较好的校正和容错能力。

f.简单易用方便扩充

g.无需具备指纹识别的专业知识即可应用,比较适合当前的自身的水平。

2.4.2 FM-180指纹识别模块系统参数与接口

(1)系统参数

电压参数:直流 3.6—6.0V 电流参数:

工作电流小于20mA 峰值电流小于150mA 指纹图像录入时间小于1.0秒 采集器窗口面积: 14 mm ╳ 18 mm 指纹匹配方式:

比对方式(1:1)

13

检索方式(1:N) 特征文件大小:256bytes 模板文件大小:512bytes 指纹存储数量:162/930枚 认假率(FAR)小于0.001% 拒真率(FRR)小于1.0%

搜索时间小于1.0秒 (均值为1:200时) 上位机接口: UART

通讯波特率(UART):(9600╳N)bpsN范围为1~12 (N=6为默认值表示57600bps) 工作环境:

温 度:-15℃到+45℃ 相对湿度:45%RH到80%RH 储存环境:

温 度:-35℃到+80℃ 相对湿度小于80%H

尺寸(长╳宽╳高): 55 ╳ 20 ╳ 21mm

(2)外部接口引脚说明

模块与设备的串行通讯时,接口引脚定义如下图2.4.1所示:

图2.4.1外部接口引脚说明图

2.4.3 FM-180指纹识别模块指令系统

模块通过串行通讯接口,能够直接与5v电源的单片机进行通讯。模块数据发送接收端分别于上位机数据接收发送端相连。

此模块主要为以下几个常用指令:

一、开机时通过与模块接触,从而判定模块是否正常连接。其指令如下:

验证口令(PS_VfyPwd),其功能是验证模块握手的口令。当上位机发送数据至模块数据接收端时,输入参数Password,模块根据情况返回参数,即其内部

14

的确认字,而此指令的代码为13H,验证口令的指令包和应答包格式如下图2.4.2所示:

图2.4.2 验证口令的指令包和应答包格式

二、生成指纹模板期间需要进行如下四个命令:录入图像、生成指纹特征、合成指纹模板、存储指纹模板。 ⑴录入图像(PS_GetImage)

录入图像指令的功能是对手指进行探测。当探测完毕后,它会将探测到的录入指纹图像存至ImageBuffer中,并返回对应状态的确认码,用于表示录入的成功与否。此指令过程中并无输入参数,指令代码为01H,与此指令对应的指令包和应答包格式如下图2.4.3:

15

图2.4.3录入图像的指令包和应答包格式

⑵生成指纹特征(PS_GenChar)

生成指纹特征指令的功能是将之前录入时存于ImageBuffer中的原始图像进行处理生成对应的指纹特征文件,并存至CharBuffer1或CharBuffer2之中。在此指令中,输入参数为特征缓冲区号(BufferID),返回参数是代表是否成功的确认字,其指令代码为O2H。指令包和应答包的对应格式如下图2.4.4:

图2.4.4生成指纹特征的指令包和应答包格式

16

⑶生成指纹模板(PS_RegModel)

在指纹特征生成之后,指纹模板生成的指令功能是将CharBuffer1和CharBuffer2中储存的特征文件进行合并生成模板,然后把其结果存至CharBuffer1和CharBuffer2之中。此过程无输入参数,但返回参数表示生成指纹模块情况的确认字,指令代码为05H,对应指令包和应答包格式如图2.4.5表示:

图2.4.5生成指纹模板的指令包和应答包格式

⑷储存模板(PS_StoreChar)

通过前两个指令的模板生成,储存模板指令的功能是将CharBuffer1或者CharBuffer2中储存的模板文件储存到PageID(指纹库位置号)的flash数据库的位置。此指令需要的输入参数为BufferID(缓冲区号)和PageID(指纹库位置号),返回参数为确认字,指令代码为06H。其指令包格式和应答包格式如图2.4.6所示:

17

图2.4.6 储存模板的指令包和应答包格式

通过上述四个步骤指令的执行,就能实现对一个指纹的录入,若将以上步骤重复执行,便能实现多个指纹的录入。

18

第三章 智能密码锁的硬件设计

3.1智能密码锁硬件设计原理

进行硬件设计首先必须明确设计的要求,在确定密码锁大致需要哪些功能后,再结合参考拥有相似功能的密码锁进行设计,这是本次设计的一个方式。通过参考分析,了解密码锁要使用的各个模块,然后确定这些模块所要使用的元件和其具体的参数。这个过程中,需要对元件进行比较,如今各类元件型号众多,但各有优缺点,但在此设计中,在满足基本功能的条件下,优先选取成本更为低廉的元件是主要方向。在元件选择完毕后,就需要将各元件都相互联系起来组成系统。

在设计整体方案前,设计目的和要求的明确非常重要。在目标明确的基础上,再分别进行硬件的设计以及软件的设计,在这过程中,还需要使用Protel 99软件对总体系统的原理图、PCB图进行绘制。绘制中,需要统筹全局根据实际情况,编排好设计的位置,方便之后元器件焊接组合的比对。本设计以STC89C52单片机为核心。系统总体框图如图3.1.1所示:

图3.1.1系统总体框图

电源电路:为STC89C52提供直流电。

19

晶振电路:主要是提供基准频率,产生震荡电流,发出时钟信号。 复位电路:让单片机的处理器和系统中的其他功能部件都处在一个确定的初始状态,并从这个确定的状态开始工作。

矩阵键盘电路:实现按键输入密码。

指纹模块:实现指纹的录入、存储、修改、比对功能。

开锁电路:当用户输入正确的密码时,单片机便发出开锁信号,送至开锁驱动电路打开电磁锁,达到解锁目的。

报警电路:当密码输入错误时,激活警报电路,使蜂鸣器发出声响报警。 电路原理图如下图3.1.2

图3.1.2 电路原理图

3.2电源输入电路

本系统采用的是5V电源,设计上选用三端集成稳压器LM7805和LM7905作为固定输出电压的应用。

正常工作时,输入输出电压差为2-3V。输入稳定电容的作用是减小纹波,消振、抑制高频干扰,一般为0.1—1uF。输出稳定电容的作用是改善负载瞬态响应,一般为1uF。

20

由下图3.2可以看出,当按下开关,电路接通,为了保证其输出的电压是5V,电路上接了一个稳压电路,由一个7805稳压器组成。当电源导通时,其中电容起滤波作用,另一个电容是抑制高平信号。电容C1 C2接地可以起抗干扰的作用,使电压稳定在5V。

图3.2 电源输入电路图

3.3复位电路

复位是单片机进行初始化的操作,其作用是让CPU中的部件在初始化后都处于同一个状态,然后再从这个初始化状态开始工作。

外设复位电路,主要是为了实现在使用过程中能够进行一步重置的功能。智能密码锁的设计,由于技术上的不完善,在使用中会出现不确定的问题,而这些问题会导致系统出错,无法正常运行。复位的设置能够尽可能迅速的解决此类问题,保证设计的密码锁能够正常使用。

本系统采用了按键复位电路,如下图3.3:

21

图3.3 复位电路

3.4晶振电路

STC89C52的引脚XTAL1和XTAL2与晶体振荡器以及电容C2、C3按下图3.4所示方式进行连接。晶振、电容和片内与非门构成了电容三点式振荡器。振荡信号频率和晶振频率还有电容C2、C3的容量有关,但主要是由晶振频率决定,范围一般在0~33MHz之间。依据实际情况,本设计中采用11.0592MHZ作为系统的外部晶振。电容取值为20pF。

图3.4 晶振电路

22

3.5报警电路

报警部分由蜂鸣器和外围电路组成,加电后不发声,当按键按下或密码输入错误时发出报警声。当密码输入错误时,单片机的P3.3引脚会变为低电平,喇叭会发出警报。如图3.5

图3.5 报警电路

3.6密码锁电路

智能密码锁部分是使用继电器来得以功能的实现,只有当密码输入正确时开锁继电器才会吸合解锁。通过单片机开锁机构,以发光二极管D1发光来表示开锁目的的达成,具体电路如图3.6所示。

23

图3.6 密码锁电路

3.7矩阵键盘电路

矩阵键盘相对于独立式按键虽然在设计上略为复杂,但是它能够使用有限的端口设置数量更多的按键,符合本次设计的要求。矩阵键盘是由行线与列线组成,所以它也叫作行列式键盘。本次设计中使用的4*4键盘不仅能够完成密码的输入,而且还能设置拥有特殊功能键使用,比如确认删除,解锁方式转换等功能。它的大体功能及与单片机引脚接法如下图3.7所示:

24

图3.7 矩阵键盘与单片机引脚连接图

3.8指纹模块电路

指纹模块主要是由内部型号为PS1802的DSP芯片以及外面的CMOS芯片组成。CMOS芯片的功能是对在采集头上的指纹进行采集,从而会生成指纹特征的文件,经过指令的处理进而生成一个指纹模板。

指纹模板就是指纹采集完成储存的文件。指纹模块内的CMOS芯片进行指纹的采集后,会对采集的信息进行模糊处理并生成记录信息,最终存至指纹模块的FLASH芯片中。

当使用指纹识别模式时,指纹模块需要先让CMOS芯片进行一次指纹的采集,再将采集的指纹信息与之前存储的指纹数据对比。通过检索是否存在该指纹,再返回对应的结果,若指纹存在还能返回该指纹为几号指纹。指纹识别模块电路如图3.8所示:

25

图3.8 指纹识别模块电路

由图可以看到,此指纹模块与单片机通过串行连接,模块的两个端口分别与单片机的P3.0(接受数据)与P3.1(发送数据)连接。

26

第四章 智能密码锁的软件设计

智能密码锁的软件设计是整个密码锁可靠安全性的关键,密码锁软件的程序可以分为A.主程序;B.LCD1602液晶屏显示程序;C.延时程序;D.修改密码程序;E.扫描键盘程序;F.报警程序;G.指纹录入匹配程序。

按键密码需要通过矩阵键盘输入6位密码,结果会在LCD1602液晶屏上显示,如果输入的密码正确,显示器显示“open”,代表解锁的指示灯就变亮。如果密码不正确,则显示密码错误,累计错误次数,若密码错误3次以上,则启动报警系统,蜂鸣器持续鸣叫。如果需要修改密码,则在成功输入密码后,通过修改密码功能,进行密码的修改。

指纹识别设计主要通过设定的3个按键来实现功能,3个按键分别为模式切换(识别模式和录入模式)、指纹录入、删除所有指纹。

为了实现上述功能,整合软件设计的程序,需要将整体设计划分为几大模块,对这几个模块分别设计,最终再将它们联系起来,本智能密码锁设计则将这些模块分为:键盘输入模块、LCD1602显示模块、指纹识别模块、开锁报警模块以及密码修改模块。这几大模块最后都将由主程序来实现控制。

4.1主程序流程介绍

由上述设计思路,将几大模块由主程序控制,则主程序的设计内容主要是各大模块的调用,利用各模块实现智能密码锁功能。

密码锁在初始化后,可通过指纹或键盘输入密码,输入的情况由液晶屏显示。确认输入的6位密码后,单片机会将输入的密码与储存的密码进行对比,若密码正确,则代表解锁的发光二极管会发光,同时LCD1602会显示“open”字样;若密码错误,则液晶屏显示错误,并显示错误次数,当密码错误超过三次时,蜂鸣器则会持续鸣响。流程图如图4.1所示

27

开始 初始化 指纹录入修改子程序 密码输入界面 切换键 输入密码 错误次数加1 确认密码 次数大于等于3? Y N 输入密码正确? Y 开锁 N 报警程序 报警 返回 N 手指接触? Y N 指纹一致?

图4.1 主程序流程图

Y

28

4.2矩阵键盘模块流程图

矩阵键盘模块由4个部分组成,分为为:键盘扫描、延时去抖、寻找键值和返回键值。键盘扫描是使一行端口变为低电平通过查看是否有列变为低电平,来判断按下情况的。所以这个扫描过程是需要循环往复的,程序编写则要实现这个过程。如果扫描结果表示并无按键按下,系统进入等待状态;如果扫描到有按键按下,则进行延时去抖的步骤。经过延时去抖,根据具体行列的检测确定按键的位置。找到按键后,确定键值并返回键值,并执行闭合按键释放。流程图如图4.2所示

键盘扫描 有键闭合? Y 延时去抖 N 找到闭合键 计算键值 闭合键释放 返回键值 图4.2矩阵键盘模块流程图

4.3 LCD1602液晶屏显示模块流程图

LCD1602液晶屏显示模块的软件设计部分主要包括开始、初始化LCD、清除LCD、写LCD四个过程。 LCD1602写命令程序如下所示:

29

void write_com(uchar com) {

e=0; rs=0; rw=0; P0=com; delay_uint(3); e=1;

delay_uint(25); e=0; }

初始化LCD的程序如下所示: void init_1602() {

write_com(0x38); }

write_com(0x0c); write_com(0x06); delay_uint(1000);

write_string(1,0,\ write_string(2,0,\lcd1602_guanbiao(1,7+0x40); //开光标

30

液晶显示模块的流程图4.3:

开始 初始化LCD 清除LCD 写LCD 结束 图4.3 液晶屏显示模块流程图

4.4 开锁和报警模块流程图

如图4.4开锁和报警模块流程图,开始时按开锁键并输入密码,输入的密码将与单片机内部保存的密码相比较,如果输入正确,则提示开锁成功。如果输入错误,错误次数则开始累积,3次以上错误后则执行报警程序,蜂鸣器持续鸣叫。

31

开始 初始化 按开锁键 输入密码 错误次数加1 确认密码 次数大于等于3? Y N 输入密码正确? Y 开锁 N 报警程序 报警 返回 图4.4 开锁和报警模块流程图

4.5密码修改流程图

修改密码模块主要是在输入密码正确之后,按下密码修改键就能进入修改密码界面,其流程分为四个步骤,分别为按下密码修改键、输入修改的密码、按下确认键、LCD的显示。修改密码的部分程序如下图4.5

32

按密码修改键 输入密码 按下确认键 N 2次密码一致? Y 储存密码 图4.5 修改密码程序流程图

4.6指纹识别模块流程图

指纹识别模块内指纹录入的部分在上两章已有详细说明,此节重点说明智能密码锁在指纹模块的应用上的流程,其主要包括指纹的解锁和指纹的录入删除。

在密码输入界面,智能锁启动后,首先检索是否有指纹输入,如有指纹,则将其与已登记的指纹匹配,如果一直则实现解锁;反之,蜂鸣器报错。

按下退出切换键,可以进入指纹录入界面,按下指纹录入键可进入指纹的登记,将手指放置采集屏上,听到蜂鸣器鸣叫则表示录入成功。按下指纹删除键,可删除所录的指纹。

指纹录入删除的流程图如下图4.6:

33

开始 初始化 按下退出键切换模式 进入指纹界面 按1 按3 按退出键返回 指纹录入 指纹删除 图4.6 指纹识别模块流程图

34

第五章 智能密码锁系统调试与仿真

5.1硬件电路调试及分析

硬件调试首先必须要检查的是电路板焊接是否有误,检查的项目主要包括是否出现虚焊、漏焊、短接、元器件引脚是否焊接错误等问题。这些问题的出现,很容易使得后期矩阵键盘失灵,液晶屏无法显示,因而在硬件检查上这些检查必须认真对待。

然后再检查电路中某些元器件是否起作用,最后可以通过一些小程序对LCD1602进行测试。

检测电路有无虚焊导致断路,可用万用表的二极管档来检测。当把万用表的红黑表笔相互接触在焊接线路的两端,万用表如果发出声音,则说明此条线路是通的,没有虚焊。同理可以检查电路是否短路。

5.2软件调试及分析

软件调试主要是通过把写好的C语言程序载入到软件调试工具中,来查看程序是否有错误,然后根据结果对程序进行修改。一般首先会检查语法上的问题,然后再通过仿真,查看程序功能上的问题,待语法和仿真功能上都没有问题后,才能用51开发板或其他板子将程序写入到单片机中进行实际的调试。

本设计采用的是Proteus和KEIL软件来进行仿真和程序的调试,其调试过程如下:

KEIL软件部分

1. 打开KEIL C51主程序 2.新建工程

3.新建文本框写入程序并保存 4.编译检查是否有语法错误

5.反复检查无误后进行汇编,生成可执行的HEX文件(图5.2.1) 6.HEX文件之后将载入到Proteus中进行仿真

35

图5.2.1 调试汇编后Hex文件生成

Hex文件生成后,将其文件载入到Proteus中进行仿真流程如下: 1.仿真中将hex文件载入仿真的单片机中(图5.2.2)

图5.2.2 仿真hex文件的载入

36

2.按下仿真键后,液晶屏显示仿真画面,即待解锁画面(图5.2.3)

图5.2.3 仿真待解锁状态

3.仿真各个功能,过程如下图5.2.4、图 5.2.5、图5.2.6

图5.2.4 密码的输入

37

本文来源:https://www.bwwdw.com/article/nz8g.html

Top