指纹密码锁论文

更新时间:2024-06-10 18:18:01 阅读量: 综合文库 文档下载

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

目 录

目 录

摘 要 ...................................... 错误!未定义书签。 ABSTRACT................................... 错误!未定义书签。 第一章 绪论 .............................................. - 1 - 1.1引言 ...................................................... - 1 - 1.2 指纹锁的背景 .............................................. - 1 - 1.3指纹锁的指纹识别的基本原理 ................................ - 2 - 1.4指纹锁设计的意义的本设计特点 .............................. - 2 - 第二章 系统设计 ........................................... - 3 - 2.1设计原则 .................................................. - 3 - 2.2设计方案的选择 ............................................ - 3 - 2.2系统总设计结构图 .......................................... - 4 - 2.3 开锁机构设计 .............................................. - 4 - 第三章 主要元器件介绍 ..................................... - 5 - 3.1 80C51单片介绍 ............................................ - 5 - 3.2 SB2000M指纹识别模块介绍 ................................. - 7 - 3.2.1 结构 .................................................. - 7 - 3.2.2产品规格............................................... - 8 - 3.3 RS-232C 连接器介绍 ........................................ - 9 - 3.4 显示设备的介绍 ........................................... - 10 - 3.5 输入设备的介绍 ........................................... - 11 - 3.6 报警设备的介绍 ........................................... - 13 - 第四章 硬件电路的设计 .................................... - 15 - 4.1 系统电源的设计 ........................................... - 15 - 4.2 系统的备用电源的设计 ..................................... - 16 - 4.2.1备用电源的供给设计.................................... - 16 - 4.2.2备用电源的使用选择设计................................ - 18 - 4.3 系统报警电路的设计 ....................................... - 19 - 4.4 开锁电路的设计 ........................................... - 20 - 4.5 密码输入电路的设计 ....................................... - 21 - 4.6 显示电路的设计 ........................................... - 22 - 4.7 指纹识别模块电路的设计 ................................... - 23 - 4.8 总电路的设计 ............................................. - 23 - 第五章 软件程序的设计 .................................... - 25 - 5.1程序设计语言的选择及步骤 ................................. - 25 - 5.2开锁程序的设计及流程图 ................................... - 26 - 5.3修改开锁密码的设计及操作 ................................. - 28 - 结 论 .................................................. - 29 -

致 谢 .................................................. - 30 - 参考文献 ................................................ - 31 - 附录一:总接线图 ......................................... - 32 - 附录二:程序............................................. - 33 -

第一章 绪论

第一章 绪论

1.1引言

随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,安全性能低,被撬的事件屡见不鲜,而且钥匙易于被复制,难以形成有效的保护。电子类锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱,拥有广大的市场需求。锁是置于可启闭的器物上,用以关住某个确定的空间范围或某种器具的,必须以钥匙或暗码打开的扣件。锁具发展到现在已有若干年的历史了,人们对它的结构、机理也研究得很透彻,因此,不用钥匙就能打开的方法和工具也层出不穷。现代人类文明社会里,由于社会中各种矛盾冲突十分剧烈,人们的思想道德观念,价值观念,文化修养水平等差异,群众中良莠不齐,善良的人们能够自觉规范自已的行为,“非礼不为”,虽无钥匙亦不会乱闯。然而,那些毫无道德观念的盗贼却想方设法利用高科技手段撬门开锁,使广大居民防不胜防。

为什么会出现这种情况呢?因为传统锁具都存在致命的弱点: 第一、 锁芯采用常见的铜、铝、锌等材料,抵抗不了强力破坏; 第二、 锁具制作工艺,技术落后,无法阻止技术手段的开启。[1]

目前,市场上很多国内外的锁具,实际上都不具备真正的防盗功能。在惯偷面前,两根钢丝或几件简单的工具就可以把这些锁打开,有的惯偷甚至公开扬言:“没有我打不开的锁。”其实,不是他们多高明,而是一般锁具技术原理太过简单。面对这一残酷的现状,新时代提出了锁具必须革命的迫切的要求,这样电子锁具就进入了大家的视野。

1.2 指纹锁的背景

随着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同图像,不同声音,不同磁场,不同声波不同光束光波(如指纹、眼底视网膜等)来控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。

虽然以上多种电子锁具,都有其各自的特点以及良好的防盗性,但是受限与当今的科学技术以及成本的限制和市场的要求,一些过于复杂及高端的锁具由于自身的局限性无法进入大众市场普及化。可是指纹锁具其的技术已经十分完善,价格已经随着时间逐步降低,是我们的设计电子锁的首选。[2]

而指纹识别可谓历史悠久,本是一种古老的身份识别技术。几千年以前,中国人、盎格鲁—撒克逊人和古叙利亚人就曾经采用其作为身份鉴别的方法。而随着现代计算机技术和信息处理与识别技术的不断进步,现代指纹识别技术已发展成为一种成熟、应用广泛的生物特征识别技术,而且指纹具有唯一性、稳定性、随身性、便于采集等优点,这使得指纹识别技术优于其他人体生物特征识别技术。目前,全球范围已建立了指纹数据库和鉴定机构,而且在国内外几十年的研究与应用中,其有关芯片模块的开发已达到了技术成熟、识别率高和价格低廉的要求。国外方面,美国、日本早已研制和生产出多种指纹自动识别设备并投入使用,比

如美国SECOM、日本嘉士通、松树株式会社等公司开发的指纹锁和指纹认证装置。国内率先进入这一领域的高校是清华大学,在90年代中期开发出了指纹IC卡,其后又有广东粤安集团、浙江中正、北大高科等高科技集团纷纷进入该领域,其中浙江中正于2000年开发出的超小指纹识别系统,标志着我国在这一领域已经达到了世界领先水平。

1.3指纹锁的指纹识别的基本原理

首先,通过指纹采集仪器采集到人体指纹的图像,并对原始图像进行初步的处理,这样使指纹图像中蕴涵的特征信息更明显。然后,运用指纹特征提取算法建立指纹的数字表示特征数据。这种转换是单向进行的,只能从指纹转换成特征数据但不能从特征数据转换成为指纹,而且两枚不同的指纹绝对不会产生相同的特征数据。指纹纹路的分叉、终止或转弯处的坐标位置,也就是通常被专家称为“细节点”(minutiae)的数据点,同时拥有7种以上的唯一特征。有的算法把节点和方向信息组合产生了更多的数据,这些方向信息能够表明各个节点之间的关系,有的算法还可以处理整幅指纹图像。这些数据通常称为模板,保存为1k或者0.5k大小的记录。最后,我们通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们之间的相似程度,最终得到两个指纹的匹配结果。[3,4]

1.4指纹锁设计的意义的本设计特点

单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口 (I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。在单片机没有出现之前我们只能使用复杂的模拟电路来进行线路的连接,这样不仅体积巨大,成本较高给我的生产生活带来的极大的不便。而单片机给我们的各领域都带来的巨大的变化,现在从飞机大炮到电子产品都离不开单片机,这是因为单片机是靠程序运行的,并且可以修改。[5]通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。同样本次设计同样要采用单片机进行设计。

本设计采用80C51单片机为主控芯片,结合外围器件,组成电子控制系统,用户想要打开锁,必先通过指纹识别模块SB2000M对指纹进行采集比对,若指纹比对正确则开锁,否则不予开启。同样也可以输入密码进行开锁,和对密码信息进行修改。由于门锁的开启是由指纹信息来确定,而个人的指纹信息是独一无二的,一般难以被盗与仿制,因此我相信我们所设计的指纹防盗锁的安全性是有保证的。而且我们拥有两种开锁方式,对于我们生活工作中的正常的使用有更大的适用性。

第二章 系统设计

第二章 系统设计

2.1设计原则

根据毕业设计课题的基本要求,同时结合以前课程设计的一些心得体会,我确定了此次毕业设计的基本原则:

第一,模块化设计。根据电路的基本功能,将整个系统分成若干个电路模块, 然后进行对各个模块进行独立设计。各模块之间通过合理的接口电路联系起来。这样,不仅可以降低整体设计的难度,也便于电路的扩展,分析。同时,又能够合理掌握时间进度,确保顺利完成系统的防盗报警监测任务。

第二,智能化设计。系统选择使用80C51系列单片机作为控制核心,用RS232 总线作为网络的总体架构,实现整个系统的网络化、智能化设计。同时选用各种优良算法来进行相关的中断程序的设计,并辅以延时、计数等子程序来弥补硬件电路的缺陷,力争最大限度的降低误报率。

第三,通用性设计。在设计系统时,尽量保持各模块的独立性。并且首先确保系统基本功能的实现,在此基础上,对系统进行功能扩展。同时,考虑到功能扩展的问题,要尽量充分使用I/O接口,避免浪费。

第四,简单化设计。我们再设计当中尽可能的减少接线的连接,简化程序的编写,使我们的设计更加简单易懂,为我们将来对设计成品的修改,改进及二次开发创造便利。

第五,高性价比原则。在进行系统设计时,需要采用各种元器件和芯片。考虑到学校的经济条件,我们选择的标准是“选择最合适的,不选择最好的”。

2.2设计方案的选择

我们所设计的是指纹锁,因此我们必须要对指纹的信息进行判断与控制,对开锁结构的运动进行正确的进给。因此经过思考有了以下两种控制方法。

方案一:采用数字电路控制

用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路, 或数字系统。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。现代的数字电路由半导体工艺制成的若干数字集成器件构造而成。逻辑门是数 字逻辑电路的基本单元。存储器是用来存储二值数据的数字电路。从整体上看,数字电路可以分为组合逻辑电路和时序逻辑电路两大类。

用以个类型的触发器构成的数字逻辑电路作为指纹锁的核心控制,完成与指纹识别模块进行通讯,判断是否开锁。同样密码开锁时,密码保存在JK触发器中,与输入密码通过比较器比较,判断结果是否相符合。如果我们这样设计的方案好处就是设计简单,但控制的准确性和灵活性差,故不采用。

方案二:采用以单片机为核心的控制方案

选用单片机作为系统的核心部件,实现控制与处理的功能。单片机具有资源丰富、速度快、编程容易等优点。利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LED),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标,因此综合考虑,本系统采用方案二。单片机种类繁多,性能指标,计算速度,性价比更不相同,考虑到本次设计单片机并不承担过于复杂和困难的计算任务,将不选用性能和价钱过高的单片机。因此我们选用常见的80C51单片已能满足设计要求。

2.2系统总设计结构图

指纹识别模块 80C51 单片机 开锁电路 显示电路 报警电路 输入设备 图2-1系统总设计结构图

为了完成设计任务,我们寻找一定功能的若干单元电路构成一个整体,满足题目睥各项性能指标。

因为设计的途径不是唯一的,满足要求的方案也不止一个,所以为得到一个满意的设计方案,往往要针对要求,大量查阅资料、手册等工具,将多个方案进行分析与比较,从分析中找出认识最理想的入手进行设计,这是方案论证过程,再经过设计——验证——再设计多次反复过程,才能达到目的。

总体设计方案用框图表示。主要部分和难点可详细一些,一般部分只能反映设计思想和基本原理就可能了。每一个方框表示一个小的功能单元,用表示信号流向的箭头将各功能单元连接起来,构成一个系统。

本设计主要由单片机、输入设备、显示电路等部分组成。其中指纹识别模块是用来对指纹信息进行采集分析比较,判断指纹的合法性,然后与单片机机进行通讯,完成开锁任务。而输入设备用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可。同样以上的所有设计要求又必须有电源的供给,因此电源也是在我们的设计要求之中。[6]系统整体框图上图2-1所示。

2.3 开锁机构设计

通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。本设计通过P3.0接一个3极管驱动继电器打开电磁阀线圈实现开关门。

当用户输入的指纹或密码是正确而且是在规定的时间及次数输入之内,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。

80C51 信息正确 开锁驱动电路 电磁阀 图2-2 密码锁开锁机构示意图

第三章 主要元器件介绍

第三章 主要元器件介绍

数字电路设计时器件是很重要的,因为器件的选择是否合理直接影响着电路的稳定性,以及成本和成品体积大小等问题。选择器件的原则是:在实现题目要求的前提下所选的器件最小、成本最低。最好采用同一种类型的集成电路,这样不用考虑不同类型器件之间的连接匹配问题。

3.1 80C51单片介绍

80C51是美国Intel公司生产的低电压,高性能的CMOS8位单片机,它采用了CHMOS工艺,其特点是功耗低。片内含4K bytes的可反复擦写的只读程序存储器(EPROM)和128bytes的随机存取数据序存器(RAM),器件采用标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元。20世纪80年代中期,Intel公司将8051内核使用权以专利互换或出售形式让给世界上许多著名的IC制造厂商,如Philips,西门子,AMD,OKI,NEC,Atmel等,这样就保证8051用户到了21世纪仍具有技术的领先性。因此8051的改进型80C51单片机为许多嵌入式控制系统提供了一种灵活行高且价廉的方案。[7] 主要性能:

?具有适于控制的8位CPU和指令系统。 ?128B片内RAM。

?21个特殊功能寄存器。 ?32线并行I/O接口。 ?两个16位定时/计数器。 ?一个全双工串行口。

?5个中断源,2个中断优先级的中断机构。 ?4KB片内ROM。

?一个片内时钟振荡器和时钟电路。

?片外可扩展64KB ROM和64KB RAM。 引脚功能:

VCC(40脚):接+5V电源正端。 Vss(20脚):接+5V电源地端。 XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部时钟时对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。

XTAL2(18脚):接外部石英晶体的另一端。在单片机的内部,它是片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端:对于CHMOS单片机,该引脚悬空不接。

P0口(39~32脚):P0.0~P0.7统称为P0口。在不接片外存储器或扩展I/O接口时,可作为准双向输入输出口。在接有片外存储器或扩展I/O接口时,P0口分时复用为底8位地址总线和双向数据总线。

P1口(1~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。对于52子系列,P1.0与P1.1还有第二功能,P1.0可作为定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX。

P2口(21~28脚):P2.0~P2.7统称为P2口,一般可作为准双向I/O接口使用。在外接有外存储器或扩展I/O接口且寻址范围超过256KB时,P2口用作高8位地址

- 5 -

总线。

P3口(10~17脚):P3.0~P3.7统称为P3口。除作为准双向I/O接口使用外,P3口还可以将每一位用于第二功能,且P3口的每一条引脚均可独立定义为第一功能的输入/输出或第二功能的输入/输出。P3口第二功能如下: P3.0 RXD 串行输入口 P3.1 TXD 串行输出口

P3.2 INT0 外部中断0(低电平有效) P3.3 INT1 外部中断1(低电平有效) P3.4 T0 定时计数器0 P3.5 T1 定时计数器1

P3.6 WR 外部数据存储器写选通(低电平有效) P3.7 RD 外部数据存储器读选通(低电平有效)

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当80c51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,高有两次有效的PSEN信号。

EA/VPP:外部访问允许。欲使CPU访问外部程序存储器(地址0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程电压VPP。

第三章 主要元器件介绍

图3-1 80c51单片机引脚图

3.2 SB2000M指纹识别模块介绍

指纹识别模块是集指纹采集、处理、存储及指纹比对为一体的嵌入式系统。该模块以DSP系列处理器为处理核心,嵌入指纹识别算法,能够独立完成全部的指

[8,9]

纹识别工作。该模块可以接入多款业界流行的光学、半导体传感器,并支持多种标准通讯接口,能够方便的集成到需要指纹识别的应用产品中,同时便于开发商或代理商进行二次开发。经过选择我们将选用型号为SB2000M的指纹识别模块。

3.2.1 结构

SB2000M 由指纹处理器和指纹传感器组成。SB2000M 的OEM 模块的速度高,由CPU,闪存,SDRAM 的OEM 模块的速度高.等等构成。

- 7 -

图3-2 SB2000M 模块 图3-3光学传感器

3.2.2产品规格

特征:

? 设计简洁

? 高速且精确度高的识别技术 ? 简单的主机界面协议 技术规格: 项目 CPU 匹配速度 值 ARM7 Core Samsung S3C44B0X 66MHz < 1 秒 项目 图像大小 分辨率 值 256pixel(W) × 256pixel(H) 403 dpi RS232C(3 line) 波特率=9600~115200bps, 数据位 = 8, 奇偶=NONE, 停止位 = 1,流控方式= NONE DC 5V 190mA 0℃ ~ 60℃ 20 % ~ 80 % 0℃ ~ 70℃ 认假率(FAR) < 0.00001 % 通信接口 据真率 (FRR) 存储登记的指纹数 登记次数 指纹数据登记号 匹配方式 < 0.1 % 2000 枚 < 3 秒 1 ~ 32767 1:1, 1:N 方式匹配 工作电压 工作电流 工作温度 工作湿度 存储温度

第三章 主要元器件介绍

模板大小 1404 Bytes 存储湿度 10 % ~ 80 % 3.3 RS-232C 连接器介绍

RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(若 Recommended Standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。

RS-232C标准规定使用符合ISO 2110标准的25芯D型连接器,该标准还规定了:在具有一定的数据处理能力和数据收发能力的数据终端设

DTE(Data Terminal Equipment)上使用插座,在DTE和传输线路之间提供信号变换和编码功能,并负责建立、保持和释放链路的连接器称为数据通讯设备DCE(Data Communication Equipment)上使用插头,如Modem。DCE设备通常是与DTE对接的,因此针脚的分配相反。RS-232C总线标准设有25条信号线,其中: 4条数据线11条控制线、3条定时线、7条备用和未定义线,常用的只有9条。因此串行口连接器分为9芯D型连接器针和25芯D型连接器两种,尽管RS-232C使用20条信号线,大多数情况下,微型计算机、计算机终端和一些外部设备都配有RS-232C串行接口。在近距离通信时可以通过RS-232C直接将通信双方连接,这种方式称为“零调制解调”,只需三条连接线,即“发送数据”、“接收数据”和“信号地”,发送方和接收方的“发送数据”、“接收数据”端交叉连接,传输线采用屏蔽双绞线即可实现,如图3-4所示;当使用RS-232C进行远距离传送数据时,就必须配合调制解调器(modem)和电话线进行通信。 项目Pin No内容 +5V GND TXD0 RXD0 1 2 3 4 提供+5VGND RS232C 串行端口的方式传输数据RS232C 串行端口的方式接收数据- 9 -

由于RS-232C是在TTL集成电路之前制定的,所以它的电平不是+5V和地,

图3-4 MAX232电平转换器电路

RS-232C标准规定了数据和控制信号的电压范围它使用负逻辑约束,其低电平“0”在+3~+15V之间,高电平“1”在-3~-15V之间,而单片机的逻辑“1”是以+5V来表示的,因此RS-232C不能和TTL电平直接相连。为了保证数据正确地传送,设备控制能准确地完成,必须使所用的信号电平保持一致,把单片机的信号电平(TTL电平)转换成计算机的RS-232C电平,或者把计算机的RS-232C电平转换成单片机的TTL电平因此,使用时必须加上适当的电平转换电路。常用的电平转换器:如 MC1488、MC1489、MAX232等。MAX232是单电源双RS-232发送/接收芯片,如图5-7所示 ,采用单一+5V电源供电,外接只需4个电容,便可以构成标准的RS-232通信接口,硬件接口简单,所以被广泛采用。因此在此将选用型号为MAX232的电平转换器。[10,11]

3.4 显示设备的介绍

八段LED数码管显示器由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED数码管显示器有两种不一样的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。如下图所示。`

在本次设计中我们采用发光二极管显示器作为显示设备。其并借着其低廉的价格,优良的性能。是现今的电子设备的重要组成部分。发光二极管显示器,简称LED(Light Emitting Diode),LED有7段和8段之分,其中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。同样也有共阴和共阳之分,如图4-5所示。一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。共阴极LED显示块的发光二极管的阴极连在一起,通常此公共阴极接地,当

第三章 主要元器件介绍

某个发光二极管的阳极为高电平时,发光二极管点亮,相应段给被现实如图4-5所示。同样共阳极LED显示块的发光二极管的阳极连在一起,通常此公共阳极接正电压。某个发光二极管的阴极接低电平的,发光二极管被点亮,相应的段被现实,如图4-5所示。两个显示块都有dp显示段。

图3-4 LED原理及外形引脚图

七段字型码见下表,由于只有8个段,多以字型码为一个字节 显示字符 共阴极码 共阳极码 显示字符 共阴极码 共阳极码 0 3FH C0H C 39H C6H 1 06H F9H D 5EH A1H 2 5BH A4H E 79H 86H 3 4FH B0H F 71H 8EH 4 66H 99H P 73H 8CH 5 6DH 92H U 3EH C1H 6 7DH 82H Y 6EH 91H 7 07H F8H H 76H 89H 8 7FH 80H L 38H C7H 9 6FH 90H 亮 FFH 00H A 77H 88H 灭 00H FFH B 7CH 83H 考虑到本此设计的成品是指纹防盗锁,而LED显示屏仅仅起到提示的作用,并不直接参与解锁的行动,所以在设计中对LED显示屏并不做过多的设计和要求。只是采用单片的8段LED显示屏,只用单位的数字或字母提示操作已能满足操作的要求。这样一来减少的屏的数量,降低了成本,可以免去了与8为锁存器和译码器的线路连接,同样可以降低成本更重要的是减少了线路的连接,降低了线路的复杂程度,为加工制造和程序的编写提供了极大的便利。

经过选择我们采用由深圳市盈辉光电套件有限公司生产的型号为YFS-5121的数码管。该产品有如下特点:1.字节高度为0.52英寸(13.20mm)。2.本产品使用芯片发光颜色多种。3.封装方式黑面白胶。4.满足低能耗。已广泛应用于家用电器领域如空调,热水器,冰箱,液晶屏与荧光屏等。[12]

3.5 输入设备的介绍

因为我们有密码开锁的设计要求,我们将采用键盘输入的方式。键盘是计算机不可或缺的输入设备,是实现人机对话的纽带。其结构形式,键盘可分为非编

- 11 -

码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法产生键码。在单片机中使用的大部分都是非编码键盘,因为非编码键盘结构成本低廉。按键形式有独立式和矩阵式两种。

独立式按键就是各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态不会影响其他输入线上的工作状态。因此通过检测输入线的电平状态可以很容易的判断哪个按键按下。

矩阵式按键就是键盘上的键按行列构成矩阵,在行列的交叉点上都对应有一个键。所谓的实际上是一个机械弹性开关,被按下时其交点的行线和列线接通。键盘接口技术的主要内容就是如何确定被按键的行列位置,并据此产生键码。这就是所谓的识别问题。

由上我们可已考虑到经济成本的因素,要满足设计要求的条件下,尽可能的降低成本,因此用硬件方法产生键码的编码键盘,要采用增加硬件的使用方式,对成本的要求较高,不予考虑。我们选择非编码键盘。

矩阵式非编码键盘适用于按键数量较多的场合。其工作原理是按键设置在行列焦点上,行列现分别连接到按键开关的两端。行线通过上拉电阻接到+5V上。无按键动作时,行线处于高电平,当有键按下时,行线电平状态将由与此行线相连的列电平决定。 流线电平为低,在行线电平为低;列线电平为高,则行线电平为高。这一点是识别矩阵键盘按键是否被按下的关键。而此种方法的接线见下图3-5。

图3-5矩阵式非编码键盘接线图

独立式非编码键盘(又称小键盘),是指直接用一条I/O接口线对应连接(一键一连)的键盘电路。由于每个按键单独占用一条I/O接口线,所以该接口线的状态只能反映该按键是否按下,不会影响其他I/O接口线的状态。因此,独立式按键电路配置灵活,软件结构简单,但在按键数量较多时,需要的I/O接口线也较多。独立式按键电路如图3-6所示。当某一按键闭合时,相应的I/O接口线变为低电平。

第三章 主要元器件介绍

图3-5独立式非编码键盘接线图

因为密码的输入8位已经基本可以满足设计要求,而且我们可以在线路上一个接口做多个按键的迷惑处理。更加重要的是独立式非编码键盘接线较为简单,对于程序的设计又简化的作用。因此我们考虑采用独立式非编码键盘的键盘录入方式进行密码开锁。[5,6]

3.6 报警设备的介绍

我们所设计的是指纹防盗锁,我们对锁具的安全性能要有所保证,对于拥有开锁信息的人要使锁具正常开启,对于没有开锁信息的人,要坚决的不予开启。但是如果我们单纯的知在锁的性能上下功夫,而忘记了人的作用,这将是我们的大错误。所以我们加入报警设备,对非法的开锁操作进行报警是十分必要的。不但可以提醒安保人员注意安全情况没有可以对不法人员进行警示与恐吓,维护我们的财产及人身安全。

但是我们也必须考虑到,对于指纹开锁,由于人的指纹的清晰程度,气候,湿度,人的用力程度,手指的清洁程度的不同,在指纹采集的时候出现比对的错误是十分正常及常见的,我们不应当对每次的指纹识别失败都进行报警。但是如果我们进行密码开锁的时候,我们不应当多次输入错误,因此我们应当对密码输入错误三次时进行报警,并且警报长鸣不止进行提示,直到我们进行了正确的指纹开锁。所以我们的报警设备应当更加针对密码开锁时。

现在市面上的报警设备很多,价钱从高到低不一而足,而我们的设计当中的报警设备我们选择的是蜂鸣器,首先蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。其次是我们的设计需要较高的性价比,而蜂鸣器的价格十分便宜,一般在几块钱左右,价格十分便宜。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

压电式蜂鸣器,用的是压电材料,即当受到外力导致压电材料发生形变时压电材料会产生电荷。同样,当通电时压电材料会发生形变。电磁式蜂鸣器,主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。由于上面2种蜂鸣器发音原理不同,压电式结构简单耐用但音调单一音色差,适用于报警器等设备。而电磁式由于音色好,所以多用于语音、音乐等设备。

经过比较我们将选选择压电式蜂鸣器,经过我们在市场上的调查,将选用型号为JN-3015的压电式蜂鸣器,该器材现形尺寸:35mm*15mm,内置驱动电路,音质脆声音大;稳定性好,属于压电式直流蜂鸣器。广泛应用于汽车、摩托车、

- 13 -

空调、冰箱、音响、电脑、验钞机、功能饮水机等各种电器电子产品。已能很好的满足我们的设计要求,而且价格低廉,极大的节约了成本。

第四章 硬件电路的设计

第四章 硬件电路的设计

电路的设计是整个设计的实质部分。将每一部分按照总体框图的要求设计好,才能保证整体电路的质量。为我们下面的程序设计,打下坚实的基础。单元电路的设计步骤分为以下三步。[12]

第一步:根据总体方案对单元电路的要求,明确单元电路的功能、性能指标。注意各单元电路之间的输入输出信号的逻辑关系和时序关系,尽量避免使用电平转换电路。

第二步:选择设计单元电路的结构形式。通常选择学过的熟悉的电路,或者通过查阅资料选择更合适的、更先进的电路,在此基础上高度改进,使电路的结构形式最佳。

在选择电路时充分考虑经下几个问题: (1)电路的功能满足要求。 (2)电路的结构简单、成本低

(3)电路的性能稳定、通用性强。 第三步:画出单元电路电路图。

4.1 系统电源的设计

首先我们来完成最基本,最必须的电源部分的设计,任何电路都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所忽视,其实有将尽一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。

在上一章中我们对硬件的选择上可以发现从单片机到LED显示屏都是需要用+5v直流电源的。因此我们对电源的设计就是要给系统提供合理的电源供给。我们生活工作中最常见的电源是220v交流电源,是目前我国居民最常用的标准电压的有效值(我们常用的各种家用用电器上所标注的电压值220V即为有效值)。我国交流电频率为50Hz。所以我们要以220v交流电源为基础,供给+5v直流电源。

我们所设计的电路实现的功能是,输入家用220v交流电,经过全桥整流,稳压后输出稳定的5v直流电。而且我们设计的电路要有方便实用,输出电压稳定,最大输出电流为1A,电路能带动一定的负载等特点。

我首先翻阅了参考书,复习了整流稳压的一些电路知识,然后设计出一个实现电路如下图4-1所示。

- 15 -

图4-1电源设计接线图

从图上看,变压器输入端经过一个保险连接电源插头,如果变压器或后面的电路发生短路,保险内的金属细丝就会因大电流引发的高温溶化后断开。变压器后面由4个二极管组成一个桥式整流电路,整流后就得到一个电压波动很大的直流电源,所以在这里接一个330uF/25V的电解电容。变压器输出端的9V电压经桥式整流并电容滤波,在电容C1两端大约会有11V多一点的电压,假如从电容两端直接接一个负载,当负载变化或交流电源有少许波动都会使C1两端的电压发生较大幅度的变化,因此要得到一个比较稳定的电压,在这里接一个三端稳压器的元件。三端稳压器是一种集成电路元件,内部由一些三极管和电阻等构成,在分析电路时可简单的认为这是一个能自动调节电阻的元件,当负载电流大时三端稳压器内的电阻自动变小,而当负载电流变小时三端稳压器内的电阻又会自动变大,这样就能保持稳压器的输出电压保持基本不变。 因为我们要输出5V的电压,所以选用7805,7805前面的字母可能会因生产厂家不同而不同。LM7805最大可以输出1A的电流,内部有限流式短路保护,短时间内,例如几秒钟的时间,输出端对地(2脚)短路并不会使7805烧坏,当然如果时间很长就不好说了,这跟散热条件有很大的关系。三端稳压器后面接一个105的电容,这个电容有滤波和阻尼作用。最后在C2两端接一个输出电源的插针,可用于与其它用电器连接,比如MP3等。 虽然7805最大电流是一安培,但实际使用一般不要超过500mA,否则会发热很大,容易烧坏。一般负载电有200mA以上时需要散热片。因为80C51单片机的电流很小一般只有几毫安,而SB2000M指纹识别模块的电流为190mA,可以得出该线路可以满足设计的要求。[14]

4.2 系统的备用电源的设计

4.2.1备用电源的供给设计

由于我们的设计当中主电源选择的是家用交流220v转直流5v,虽然我国的电力行业经过数十年的发展壮大,在经济能力和技术水平上已达到世界一流水平,但是我们无法保证电力供应当中不存在意外的发生,而且停电时间是我们的工作生活当中时常会遇见的事情。因此我们必须考虑到在停电时我们的指纹锁的系统的工作稳定性。

第四章 硬件电路的设计

备用电源是主要是为了防止单片机及其相应模块产品在长时间使用过程中发生断电或是没电的条件下所备用的电源,使其可以在断电的情况下继续工作,不会因为没电无法开门,影响我们的工作生活,带来不必要的损失。

在停电时220v电源不法提供电能,我们必须找到另外一种可以稳定供电的电源。我们考虑到干电池。干电池是一种伏打电池,利用某种吸收剂(如木屑或明胶)使内含物成为不会外溢的糊状。干电池属于化学电源中的原电池,是一种一次性电池。因为这种化学电源装置其电解质是一种不能流动的糊状物,所以叫做干电池,这是相对于具有可流动电解质的电池说的。干电池不仅适用于手电筒、半导体收音机、收录机、照相机、电子钟、玩具等,而且也适用于国防、科研、电信、航海、航空、医学等国民经济中的各个领域,十分好用。 随着科学技术的发展,干电池已经发展成为一个大的家族,到目前为止已经约有100多种。常见的有普通锌-锰干电池、碱性锌-锰干电池、镁-锰干电池、锌-空气电池、锌-氧化汞电池、锌-氧化银电池、锂-锰电池等。 对于使用最多的锌-锰干电池来说,由于结构的不同又可分:糊式锌-锰干电也、纸板式锌-锰干电池、薄膜式锌-锰干电池、氯化锌锌-锰干电池、碱性锌-锰干电池、四极并联锌-锰干电池、迭层式锌-锰干电池等。

众所周知干电池的电压是1.5v,但我们的单片机以及其它器件需要5v的电压,所以干电池的单纯串联无法提供合适的电压供给,所以我们不得不要设计一个升压或降压电路,完成备用电源的供给。

这里经过选择,我们选用Maxim公司出产的MAX8815A型号的升压芯片,进行升压任务。Maxim推出1A升压转换器MAX8815A,具有业内最高效率(97%)、低静态电流(30μA)以及低噪声强制PWM工作模式。该boost转换器专为2节NiMH/NiCd AA电池或单节Li+电池输入设计,可从1.2V至5.5V输入提供可调(3.3V至5V)或预设(5V)输出。当反馈引脚接地将输出设置为5V时,MAX8815A仅需3个外围器件即可输出高达1A的电流。为进一步节省空间,器件集成了True Shutdown?负载断开开关和内部补偿。MAX8815A作为一款高通用性的高效率器件,可理想用于手持式通信设备、媒体播放器和数码相机等空间受限的应用。 MAX8815A具有多种保护功能,如:输出过载和短路保护、抑制软启动期间的浪涌电流以及热关断等。器件提供微型3mm x 3mm、10引脚TDFN封装,工作在-40°C至+85°C扩展工业级温度范围。所以我们将3节干电池电源串联产生4.5v电压,经过下图4-2后将会产生5v工作电压。[15]

- 17 -

图4-2升压电路接线图

4.2.2备用电源的使用选择设计

可知我们指纹锁系统经上一步操作已经有两个电源,可以充分保证系统的在各种情况下的正常工作。但是我们要考虑到工作情况下电源的使用选择的问题,是使用220v转5V的电路供给电能,还是用干电池电路供给电源。我们希望在220v可以正常供给时选用220v电源。在220v电源失效时才选用干电池供电。经过考虑我们叫选用接触器对电路的选择进行控制。接触器是在外界输入信号下能自动地接通或断开带有负载的主电路(如电动机)的自动控制电器,他是利用电磁力来使开关打开或闭合的电器。适用于频繁操作(高达每小时1500次),远距离控制电流电路,并具有低压释放的保护性能,工作可靠,寿命长(机械寿命达2000万次,电寿命达200万次)和体积小等优点。接触器是继电器-接触器控制系统中最重要和常用的原件之一,它的工作原理是当按钮按下时,线圈通电,静铁芯被磁化,并且把动铁芯吸上,带动转轴使触头闭合,从而接通电路。当放开按钮时,过程与上述相反,使电路断开。由于我们的电源为5V直流电源,所以将选择直流接触器,由于直流接触器的吸引线圈通以直流,所以没有冲击的启动电流。也不会产生铁芯猛烈撞击现象,因而它的寿命长,适用于频繁启动,制动的场合。接线线路如下图4-3所示。

第四章 硬件电路的设计

图4-2电源总接线图

由上图可知,若220v电源正常通电,按下按钮SB启动电路,接触器KM的吸引线圈得电[16],衔铁吸上,其动合主触头闭合,动断主触头断开,220V可以正常给单片机供电,电池电源在电路中被切除。若220V电源断电,接触器KM失电,吸引线圈失电,动合主触头断开,动断主触头闭合,220V转5V电路被系统切除,单片机由电池电源供电。因此在不论220V是否正常的情况下,系统都可以正常工作。同上我们在电池5V电源供电时可以按下按钮SB进行试切换,若此时220V已正常则KM通电,进入220V供电的状态,若此时220V已不能正常则KM依旧断电,进入220V供电的状态。

但是由于电池的容量较小无法长时间的提供电源,所以备用电源仅用来在应急的时刻供电,不应作为主电源。而且应当定时对电池的电量进行检测,更换电池,以防在意外情况下,指纹锁系统无法正常工作,为我们的正常的学习工作生活带来不必要的损失。

4.3 系统报警电路的设计

在第三种中我已经将报警器材选择为JN-3015的压电式蜂鸣器。所以我们的设计电路中只要将该压电式蜂鸣器,与单片机相接既可以完成。电路图如下图4-3所示。

图4-3单片机报警接线图

蜂鸣器发声原理是电流通过压电材料发生形变,因此需要一定的电流才能驱动它,单片机I/O引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了

- 19 -

蜂鸣器,因此需要增加一个电流放大的电路。80C51单片机实验板通过一个三极管C8550来放大驱动蜂鸣器。

如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的P0.1引脚控制,当P0.1输出高电平时,三极管C8850截止,没有电流流过,蜂鸣器不发声;当P0.1输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P0.1脚的电平来使蜂鸣器发出声音和关闭。

程序中改变单片机P0.1引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P0.1输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。但本设计中蜂鸣器,对音色音调不做过多的考虑。

4.4 开锁电路的设计

锁的最终执行部件一个关键部分,不管采用多高级的控制方法,但最终还是要控制两件事:开锁,闭锁。在实际应用中可以采用多种方法来执行这两个动作,比如采用电磁继电器或进步电机等。电磁继电器主要由电磁系统,接触系统及传动机构等组成。当控制电路(电磁铁的线圈)中通过电流时,电磁铁即产生磁力,吸动衔铁,传动到接触系统,使触电动作,接通,断开或换接被控电路。当用于开闭锁的执行机构时可以将衔铁连接到锁芯,当控制电路(电磁铁的线圈)中通过电流时,电磁铁即产生吸力,吸动衔铁,带动锁芯缩回,开锁。当控制电路断电时,电磁铁失去吸力,衔铁在弹簧的作用下回归原位,闭锁。如果采用进步电机则可以用齿轮传动锁芯,通过控制步进电机正向或反向旋转一定角度来实现开闭锁。本设计考虑到成本的问题不采用以上方法作为执行部件,而是采用一个+5v的继电器来模拟开闭锁动作。其电路图如图4-4所示。

模拟开闭锁的工作过程为:当处理器得到开锁信号时给管脚P0.0置低点位,三极管导通,继电器线圈通电,产生磁力吸合常开弹簧开关,使发光二极管亮,模拟开锁动作。当处理器得到关门信号时给P0.0置高电位使三极管截止,继电器线圈两端电压为零,失去磁力,弹簧开关恢复断开状态,发光二极管灭,模拟闭锁动作。

图4-4开锁电路接线图

但此处要注意两点:

第四章 硬件电路的设计

(1) 继电器在三极管导通时,上面电压为上正下负,电流方向由上到下。在三

极管段时,继电器中电流突然中断,会产生感应电势,其方向是力图保持电流不变,即总想保持继电器中线圈电流中方向为由下至上。这个感应电势与电源电压叠加后加在三极管两端,容易使三极管击穿。为此要加上一个续留二极管,将继电器线圈产生的感应电势短路掉,电流方向为顺时针方向在二级管和继电器所构成的小回路里面流动,从而保护三极管。

(2) 如果采用NPN三极管C9013就需要在系统初始化使P0.0置低点位,此时

9013截止,当执行开锁命令时给P0.0置高电位使9013导通,继电器动作,80C51的P0口初始化电压为高电位,也就是说在初始化的短暂时间内会有一个的高电平的噪声,这可能造成系统上电或复位时继电器误动作。为了解决这个问题,系统采用PNP三极管C9012,它是低电位导通,当系统上电或复位时不会使继电器产生误动作。闭锁式P0.0为高电位,三极管关断,而需要开锁时,只需要将P0.0置低就行了。

4.5 密码输入电路的设计

在第三章中我们几经介绍了对键盘的选择是独立式非编码键盘,即是直接用一条I/O接口线对应连接一个按键(一键一线)的键盘电路。其优势如上文所述就是接线简单,编写程序便捷。其接线图如图3-5所示。在我们的设计当中我们选择P1作为输入密码的I/O接口,但是我们的P1口只有从P1.0~P1.7八个接口,因为我们的数字,要有0~9,共10位数字,所以不得不思考增加按键的方法。

我们的选择是在一个I/O接口上做多个按键的处理,该按键即可以为有用按键,也可为无用按键。而且我们的引线接口希望做成可插拔式的,至于一个接线盒,可以由主人自行完成接线,可自行设置密码。但我们要设置一个保持开锁或的按键在P0.2接口上,我们将门锁与接线盒的锁相连,可以同时完成开锁与闭锁的任务,只有我们的门所保持开锁的状态时才可以修改密码的接线,对密码进行修改。而我们的开锁操作要在我们输入正确密码之后由软件驱动完成。

假设我们开锁密码的顺序是P0.7,P0.6,P0.5,P0.4,将多以的三根线接到P0.0,P0.1上,完成我们接线。其接线图见下图4-5所示。

- 21 -

图4-5键盘电路接线图

4.6 显示电路的设计

在单片机系统中,常常用LED数码数码管显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。在第三章中我们对显示器材是由深圳市盈辉光电套件有限公司生产的型号为YFS-5121的数码管,其是共阴极数码管。在这里我们将选用P2口为显示的I/O接口。这里我们的数码管亮灭将有我们的软件进行控制,我们输入密码是进行提示操作,因此我们将只选用一块LED显示屏,若有需要我们可以增加译码器及静态显示接口增加显示屏,介绍一种常用静态显示电路,以使大家对静态显示有一定的了解。我们简单介绍一种常用静态显示电路,MCS-51单片机串行口方式0为移位寄存器方式,外接6片74LS164作为6位LED显示器的静态显示接口,把8031的RXD作为数据输出线,TXD作为移位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。T(第8脚)为时钟输入端,可连接到串行口的TXD端。这样便完成了一个简单的多LED屏的单片机设计。但为了节约成本不进行如此设计,以上的设计亦能很好的满足我们的设计要求。其设计电路图如图4-6所示。

第四章 硬件电路的设计

图4-6 LED电路接线图

4.7 指纹识别模块电路的设计

我们在第三章中选择了SB2000M型指纹识别模块进行指纹信息的采集与比对任务。SB2000M是已经成型的用于销售的模块产品,已在市场上进行销售。因此我们通过充分了解该模块的产品性能,技术指标,阅读其技术性文件,选择MAX232为RS-232C 接口做连接器材,按照规定对各个接线进行连接,实现SB2000M型指纹识别模块与单片机之间实现通讯。其接线图如图4-7所示. [17,18]

图4-7指纹识别模块电路接线图

4.8 总电路的设计

在本章的前几节中,我们已经依据各器件的性能对我们所设计的基于单片机的指纹防盗锁的各个器件的结构电路进行了设计。我们可以回顾一下,首先我们对单片机以及其他器件的电源进行设计,选择220V交流电转5V直流点,接下来我们设计了由干电池供电的备用电源,并与主电源进行了合并,然后我们把由JN-3015的压电式蜂鸣器组成的报警电路接到P0.1口上,将开锁电路连接到P0.0

- 23 -

口上。在P1口上我们连接了独立式非编码键盘,P2口上我们连接了LED显示屏,P3口上我们连接了MAX232为接口的SB2000M型指纹识别模块,基本上完成了电路的设计。只要我们将以上的电路连接组合到一起我们也就将完成总电路的设计,详情及电路图请参看附件。

第五章 软件程序的设计

第五章 软件程序的设计

5.1程序设计语言的选择及步骤

一个应用系统要完成各项功能,首先必须有较完善的硬件作保证。同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。因此充分利用其内部丰富的硬件资源和软件资源,采用与C51系列单片机相对应的51汇编语言和结构化程序设计方法进行软件编程。[19]

程序设计语言有三种:机器语言、汇编语言和高级语言。机器语言是机器唯一能“懂”的语言,用汇编语言或高级语言编写的程序(称为源程序)最终都必须翻译成机器语言的程序(成为目标程序),计算机才能“看懂”,然后逐一执行。

高级语言是面向问题和计算过程的语言,它可通过于各种不同的计算机,用户编程时不必仔细了解所用的计算机的具体性能与指令系统,而且语句的功能强,常常一个语句已相当于很多条计算机指令,于是用高级语言编制程序的速度比较快,也便于学习和交流,但是本系统却选用了汇编语言。汇编语言有如下特点:助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序;使用汇编语言编程比使用高级语言困难。因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解;汇编语言能直接访问存储器及接口电路也能处理中断,因此汇编语言程序能直接管理和控制硬件设备;汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用。

我们选择汇编语言的原因在于,本系统是编制程序工作量不大、规模较小的单片机微控制系统,使用汇编语言可以不用像高级语言那样占用较多的存储空间,适合于存储容量较小的系统。

要想使计算机完成某一具体的工作任务,必须按序执行一条条的指令。这种按工作的要求编排指令序列的过程称为程序设计。

使用汇编语言作为程序设计语言,其程序设计步骤大致可分为以下几步: (1) 分析问题,熟悉和明确问题的要求,明确已知条件及对运算与控制的要求,准确地规定程序将要完成的任务,建立数学模型。

(2) 确定算法,根据实际问题的要求及指令系统的特点,选择解决问题的方法。算法是进行程序设计的依据,它决定了程序的正确性和程序质量。

(3) 设计程序流程图,所谓程序流程图就是用各种规定的图形,流向线及必要的文字符号来表达解题步骤,算法及程序结构。它直观,清晰地体现了程序设计思路,是程序设计的一种常用工具。画流程图的过程就是进行程序逻辑设计的过程。正确的画法是先粗后细,一步一个脚印,只考虑逻辑结构和算法,不考虑或较少的考虑具体指令。这样,画流程图时就可以集中精力考虑程序的结构和算法,从根本上保证程序的合理性和可靠性。然后,剩下的任务就是进行指令代换,这时只要消除语法错误,一般就能顺利编出源程序,并很少进行返工。

(4) 分配内存单元,分配内存工作单元,确定程序和数据区的起始地址。 因为在本文的前几章中我们已经完成的设备的选择与电路的连接,因此在下面的工作我们将直接进行设计程序流程图的步骤。[20]

- 25 -

5.2开锁程序的设计及流程图

如图5-1为开锁流程图,开始时按开锁键,输入指纹或密码信息,如果输入正确,则开锁成功,然后返回初始。如果输入密码错误累计达到三次,则执行报警程序。

第五章 软件程序的设计

开始 按下密码开锁键 开锁方式 密码开锁 无操作 输入密码指纹开锁 YES 输入指纹密码是否正确? NO 次数加一 NO 指纹是否正确? NO YES 次数为三? 开锁报YES 警NO 返回 指纹开锁 YES

图5-1指纹防盗锁工作流程图

如上图所示,在指纹防盗锁的开启时,我们首先要选择我们的开锁方式,因为我们设计的是指纹防盗锁,所以我们默认的开锁方式就是指纹开锁,若我们不

- 27 -

做操作就可以直接进行录入指纹的操作,如果我们录入的指纹信息是错误的,我则不能开启锁具,要再次进行指纹的录入或改为密码开锁的方式。但是如果我们录入的指纹信息是正确的我们则可以直接开启门锁,门锁开启后自动进入初始状态。已上是指纹开锁的过程。若我们想进行密码开锁,我们则要在开锁方式选择时按下指纹开锁键,选择我们需要的开锁方式。选择密码开锁后,我们就要依次输入密码,这时LED显示屏上将显示你输入的是第几位密码。如果我们输入的密码是错误的,我们显然不能开启锁具,而且我们将记录你输入错误密码的次数,当我们的错误次数达到三次时我们将只能通过指纹开锁,而且报警器发出声音,直到用指纹成功开启后才能消除声音。同样我们的密码如果能正常开启的话,也就不会出现以上情况,直接回到初始状态。以上功能,我们将以硬件为基础,通过程序的设计完成设计的要求。具体的程序请参见附录。

5.3修改开锁密码的设计及操作

我们所设计的指纹锁,为了更加广泛的适用性,我们必须加入修改密码的功能,因此我们在软件设计的部分也必须进行相应的设计。在上文中我们将密码的修改设置为可插拔式的接线修改方式,我们将可以对密码按键的连接进行修改,完成对密码的修改,同样在上文中我们已经将密码修改锁与门锁相连,我们只能在门锁开启的状态下对密码接线进行修改。在上一节的程序中我们设计的开锁时间为10秒,这显然不够我们完成接线的修改,因此我们将设置一个按键,当按键被按下后,锁具将保持开启的状态,可以让我们有充足的时间进行修改密码。在密码修改完成后按下启动按钮,自动进入初始状态适用新的密码。以上过程将都在程序中有所体现,具体程序请参见附录。

结 论

结 论

我们经过了一个学期的毕业设计,这次毕业设计的主要任务是基于单片机的指纹防盗锁设计。以上就是我的设计的完成品,主要包括硬件的选择,相应的模块及电路连接和软件的设计,完成了我们的设计要求。本次设计与以前所学习课程有着很大的不同。在本次设计中,核心零件都是相关单片机的连接与使用,我的水平十分有限,但在赵老师的殷勤指导和孜孜不倦的讲解下,我不但明白了原理,还掌握了方法和技巧。通过本次设计使我对单片机有了更加全面的了解,熟悉了基本设计的理念,掌握了设计的基本技能。在设计的过程中,让我了解了设计方法对我们学习的重要性,同时也发现了自己的很多不足之处。深有感触:仅仅了解书本上的知识是远远不够的,只有结合自己的实际情况运用于实践,这样才能更深地了解和学习好知识;我们要在工作中不断的积累经验,学会用自己的知识解决实际问题;觉得自己学到的知识太有限,知识面太窄,以后还有待加强训练和实践;创新设计是我们未来生存的法宝,所以从现在开始一定要有意识的锻炼和培养自己在这方面能力。

通过本次设计使我对单片机有了更加全面的了解,熟悉了基本设计的理念,掌握了设计的基本技能。当然此电路中也存在一定的问题。譬如说电路的密码修改比较复杂,线路连接在使用时可能出现错误,这可以通过增加电路解决,但由于过于复杂,本设计并未加入;电路密码只有多种可供修改,由于他人不知道密码的位数,而且还要求在规定的次数内按一定的顺序开启,所以他人开锁的几率很小。由于使用的是单片机作为核心的控制元件,配合其它器件,使本密码控制系统具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。

- 29 -

致 谢

在本次论文设计过程中,赵老师对该论文从选题,构思到最后定稿的各个环节给予细心指引与教导,使我得以最终完成毕业论文设计,在此表示衷心的感谢。此外在学习中,老师严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度以及侮人不倦的师者风范是我终生学习的楷模。另外在完成毕业设计的过程中,还得到众多朋友的关心支持和帮助,在此,谨向老师同学和朋友致以衷心的感谢和崇高的敬意!

最后,我要向百忙之中抽时间对本文进行审阅,评议和参与本人论文答辩的各位老师表示感谢。

参考文献

参考文献

1. 2. 3.

何仕波.基于51单片机的电子锁设计[D].电子科技大学学位论文.2010 朱智.基于AT24C01的多功能密码控制系统的设计[D].天津工程师范学院学位论文.2009

Zhang Qinghui,Zhang Xiangfei.Research of Key Algorithm in the Technology of Fingerprint Identification[J].2010 Second International Conference on Computer Modeling and Simulation.2010:282-284

金亮.基于FPGA的指纹识别设计[D].沈阳理工大学硕士学位论文.2007 陈威.基于单片机的电子密码锁的设计[D].浙江科技学院学位论文.2009 蔡振江.单片机原理及应用[M].电力工业出版社.2008:176-208 李广弟.单片机基础[M].北京航空航天大学出版社.2001:11-37

4. 5. 6. 7.

8. 刘冬冬.利用指纹自动识别系统提高破案率[J].刑事技术.2009,1:51-53. 9. 孙 芳, 滕兆胜.基于 DSP 的能识别主人的防盗门设计[D].淄博:山东丝

绸纺织职业学院,2009 10. 杨川.RS-232在单片机系统的应用研究[J].广东经济管理学院学报.2005,2:

85-86

11. 吴勇军,陈祥初,赵军红,刘政波.一个单片机串行数据采集/传输模块的

设计[D].西安第二炮兵工程学院.2010

12. Ha, Min Seok.Thermal analysis of high power led arrays[D].School of

Mechanical Engineering Theses and Dissertations Georgia Tech Theses and Dissertations.2009

13. 叶国文.基于ATMEGA32 的指纹识别防盗门锁的设计[D].浙江丽水学

院.2008 14. 周贻春.单片机数控直流稳压电源的设计[J].实验科学与技术.2008,8:54-56 15. 万中波.基于单片机的数控直流稳压电源设计[J].湖南科技学院学报.2007,4:

31-33

16. 邓星钟.机电传动控制[M].华中科技大学出版社.2000136-169

17. Steven F.Barrett.Daneil J.Pack.Embedded System[M].电子工业出版社.2006:

12-36

18. 毛一之.基于C语言的RS232串行接口通信实现[J].河北工业大学学

报.2008,12:11-19

19. Janice Mazidi.8051 Microcontroller and Embedded Systems[M].Prentice

Hall.1999:105-160

20. Brian W. Kernighan.The C Programming Language[M]. Prentice Hall

PTR,1988:1-10

- 31 -

附录一:总接线图

附录二:程序

附录二:程序

本设计的程序如下: ORG 0000H LL4:SETB EX0 SETB EA

MOV R2,#00H

MOV PCON,#01H ;待机 START:

CLR EX0 CLR EA

STEB P0.0

SETB P0.0 ; JNB P0.3,LL2 ; JNB P3.0,LL1 ;P3.0 SJMP START ;

LL1:CLR P0.0 ; STEB P0.1 MOV R1,#65H

LL3:CALL DELAY1 ; JNB P0.2, POL ; DJNZ R1,LL3

SETB P0.0 ;P0.0 MOV TCON,#00H SETB EX0 SETB EA

MOV PCON,#01H ; SJMP START

POL:CLR P0.0 SETB EX0 SETB EA

MOV PCON,#01H ; SJMP START LL2:MOV A,#0FFH

MOV P2,#06H MOV P1,A MOV A,P1

JNB ACC.0,P0F JNB ACC.1,P1F JNB ACC.2,P2F JNB ACC.3,P3F

初始状态时,P0.0为0闭锁 是否用密码开锁 为0就原地转移 从头开始 开锁 ;蜂鸣器停叫 延时10秒. 是否改密码 为1关门 待机 待机 ;显示1 输入第一位密码 - 33 -

JNB ACC.4,P4F JNB ACC.5,P5F JNB ACC.6,P6F JNB ACC.7,P7F SJMP LL2

P0F:LJMP PROM0 P1F:LJMP PROM0 P2F:LJMP PROM0 P3F:LJMP PROM0 P4F:LJMP PROM0 P5F:LJMP PROM0 P6F:LJMP PROM0 P7F:LJMP PROM7 PROM0:

LJMP ERR PROM7:

LJMP STAR1

START1:MOV A,#0FFH

MOV P2,#5BH MOV P1,A MOV A,P1

JNB ACC.0,P0E JNB ACC.1,P1E JNB ACC.2,P2E JNB ACC.3,P3E JNB ACC.4,P4E JNB ACC.5,P5E JNB ACC.6,P6E JNB ACC.7,P7E SJMP START1 P0E:LJMP PROM1 P1E:LJMP PROM1 P2E:LJMP PROM1 P3E:LJMP PROM1 P4E:LJMP PROM1 P5E:LJMP PROM1 P6E:LJMP PROM6 P7E:LJMP PROM1 PROM1:

LJMP ERR1 PROM6:

LJMP STAR2

2 输入第二位密码;显示 附录二:程序

START2:MOV A,#0FFH

MOV P2,#4FH ;显示3输入第三位密码 MOV P1,A MOV A,P1

JNB ACC.0,P0D JNB ACC.1,P1D JNB ACC.2,P2D JNB ACC.3,P3D JNB ACC.4,P4D JNB ACC.5,P5D JNB ACC.6,P6D JNB ACC.7,P7D SJMP START2 P0D:LJMP PROM2 P1D:LJMP PROM2 P2D:LJMP PROM2 P3D:LJMP PROM2 P4D:LJMP PROM2 P5D:LJMP PROM5 P6D:LJMP PROM2 P7D:LJMP PROM2 PROM2:

LJMP ERR2 PROM5:

LJMP STAR3

START3:MOV A,#0FFH

MOV P2,#66H MOV P1,A MOV A,P1

JNB ACC.0,P0C JNB ACC.1,P1C JNB ACC.2,P2C JNB ACC.3,P3C JNB ACC.4,P4C JNB ACC.5,P5C JNB ACC.6,P6C JNB ACC.7,P7C SJMP START3 P0C:LJMP PROM3 P1C:LJMP PROM3 P2C:LJMP PROM3 P3C:LJMP PROM3 P4C:LJMP PROM4

;显示4输入第四位密码 - 35 -

P5C:LJMP PROM5 P6C:LJMP PROM3 P7C:LJMP PROM3 PROM3:

LJMP ERR3 PROM4:

CLR P0.0 ;开锁 MOV P2,#6EH ;显示Y(YES) MOV R1,#65H

LL5:CALL DELAY1 ; JNB P0.2, POL ; DJNZ R1,LL5 LJMP LL4

ERR:MOV A,#0FFH MOV P2,#5BH MOV P1,A MOV A,P1

JNB ACC.0,P0A JNB ACC.1,P1A JNB ACC.2,P2A JNB ACC.3,P3A JNB ACC.4,P4A JNB ACC.5,P5A JNB ACC.7,P7A SJMP ERR

P0A:LJMP ERR1 P1A:LJMP ERR1 P2A:LJMP ERR1 P3A:LJMP ERR1 P4A:LJMP ERR1 P5A:LJMP ERR1 P6A:LJMP ERR1 P7E:LJMP ERR1

ERR1:MOV A,#0FFH

MOV P2,#4FH MOV P1,A MOV A,P1

JNB ACC.0,P0B JNB ACC.1,P1B JNB ACC.2,P2B JNB ACC.3,P3B JNB ACC.4,P4B

延时0.1秒 是否改密码 ;显示2输入第二位密码 3 输入第三位密码 ;显示附录二:程序

JNB ACC.5,P5B JNB ACC.6,P6B JNB ACC.7,P7B SJMP ERR1

P0B:LJMP ERR2 P1B:LJMP ERR2 P2B:LJMP ERR2 P3B:LJMP ERR2 P4B:LJMP ERR2 P5B:LJMP ERR2 P6B:LJMP ERR2 P7B:LJMP ERR3

ERR2:MOV A,#0FFH MOV P2,#66H MOV P1,A MOV A,P1

JNB ACC.0,P0H JNB ACC.1,P1H JNB ACC.2,P2H JNB ACC.3,P3H JNB ACC.4,P4H JNB ACC.5,P5H JNB ACC.6,P6H JNB ACC.7,P7H SJMP ERR2

P0H:LJMP ERR3 P1H:LJMP ERR3 P2H:LJMP ERR3 P3H:LJMP ERR3 P4H:LJMP ERR3 P5H:LJMP ERR3 P6H:LJMP ERR3 P7H:LJMP ERR3

ERR3:MOV P3,#00H MOV P2,#79H INC R2 MOV A,R2

CJNE A,#11H LOOP SJMP START

LOOP: CLR P0.1 - 37 -

显示4输入第四位密码;显示E(ERR );三次则跳转;报警;

SETB EX0 SETB EA

MOV PCON,#01H ;待机 HERR:

CLR EX0 CLR EA

SETB P0.0 ;初始状态时,P0.0为0闭锁 JNB P3.0,$ ;P3.0为0就原地转移 CLR P0.0 ;开锁 STEB P0.1 MOV R1,#65H

LL3:CALL DELAY1 ; JNB P0.2, POL ; DJNZ R1,LL3 SETB EX0 SETB EA

MOV PCON,#01H ; SJMP START

DELAY2: ; MOV R4, #60

L1: MOV R5, #100 L2: MOV R6, #100 L3: MOV R7, #100 DJNZ R7, $ DJNZ R6, L3 DJNZ R5, L2 DJNZ R4, L1 RET

DELAY1: MOV R7,#200

LL1:MOV R6,#250 DJNZ R6,$

DJNZ R7,LL1 RET

;蜂鸣器停叫 延时10秒 是否改密码 待机 延时60s@12MHz 延时 0.1s@12MHz ;

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

Top