版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要\o""指纹密码锁是通过指纹识别来实现对门锁的安全性控制的一种锁。随着技术的进步,指纹密码锁已经广泛应用于各个领域,如家庭、办公室、酒店等。该系统是基于单片机设计的指纹密码锁,作为一种创新型的智能门锁系统,指纹密码锁\o""采用独特的指纹识别方式及密码输入方式,为使用者带来更多的安全与便利。本论文着重阐述了一种基于指纹的密码锁的设计方法,工作原理和技术特点,包括前期器材选择、硬件设计、指纹识别技术,还包括密码录入系统和智慧型门锁管理系统。硬件部分主要包括STC89C52RC单片机、指纹识别电路、键盘矩阵电路、显示电路、报警电路等,而软件部分则由指纹程序、键盘程序、液晶显示程序等组成。关键词:STC89C52RC单片机;指纹密码锁;指纹识别;密码开锁;液晶屏Abstract\o""Fingerprintpasswordlockisakindoflockwhichcancontrolthesecurityofdoorlockbyfingerprintidentification.Withthedevelopmentoftechnology,fingerprintlockhasbeenwidelyusedinmanyfields,suchashome,office,hotelandsoon.Asaninnovativeintelligentdoorlocksystem,thefingerprintpasswordlockadoptsuniquefingerprintidentificationmethodandpasswordinputmethodtobringmoresecurityandconveniencetousers.Thispaperfocusesonthedesignmethod,workingprincipleandtechnicalcharacteristicsofafingerprint-basedcipherlock,includingequipmentselection,hardwaredesign,fingerprintidentification,cipherentrysystemandintelligentlockmanagementsystem.ThehardwareincludesSTC89C52RCSCM,fingerprintidentificationcircuit,keyboardmatrixcircuit,displaycircuitandalarmcircuit,whilethesoftwareconsistsoffingerprintprogram,keyboardprogramandLCDprogram.Keywords:STC89C52RCsingle-chipmicrocomputer;fingerprintpasswordlock;fingerprintidentification;passwordunlocking;LCDscreen目录30703摘要 引言在我们的日常生活与商业交易里,机械锁主要起到保护财产免受窃贼的攻击的作用。然而,伴随着科技的飞速进步,传统的机械锁在保障安全的同时,也为我们提供了巨大的麻烦。现在,由于我们对物件及其它商品的保管要求愈加严格,因此,指纹密码锁应运而生,以此来满足我们的需要。随着信息安全系统的使用日益增加,尤其在维护个人隐私与资产的角色上起到了关键的影响,这无疑带来了深远的现实价值。在现代社会中,我们对安全、可靠、便利的身份认证系统的需求日益增长。传统的个人身份认证方式有信物、口令、密码等,然而,由于其具备可伪造和可窃取的特性,对人们的生活带来了不便,因此,我们必须对现有的指纹识别技术进行改进,使之更加完善。指纹作为一种生物识别手段,是最传统、最直观和最常用的。指纹特征可以通过肉眼观察到。指纹代表着人类手指上的线状纹理,它们展现出极高的稳定性。不管是谁,从出生到死亡其指纹都不会发生改变。除此之外,指纹的形成依赖于在母体发育时的环境,因此,它展现出了鲜明的独特之处。综合考虑安全性、成熟度和价格等多个方面,指纹识别技术预计将成为未来主流的身份验证手段。指纹识别技术标志着个人身份识别进入了一个全新的时代,预示着在未来的生活中,使用指纹的场合将逐渐增多,指纹识别技术也将越来越成熟REF_Ref18692\w\h[1]。指纹鉴定法将某人与其指纹比对,并将其与事先存好的指纹比对,从而确定其身份。尽管指纹仅仅占据了人类身上的一小块区域,但它所能够提供的信息却非常丰富。利用现代电子集成制造技术,我们已经能够制造出尺寸极小的指纹图像检测仪器,从而实现对个体的精准鉴定和追踪。指纹识别技术越来越安全可靠,指纹识别技术已经成为一种高效、准确和可靠的身份识别技术,在现代社会中得到了广泛应用REF_Ref18751\w\h[2]。指纹密码锁是一种以电动开关作为开锁原理的密码锁,采用数字密码对锁定机构进行控制,用户通过录入正确的指纹来控制机械或电子开关的开启或闭合。当指纹正确时,电机带动密码锁的锁定机构,使其开锁部位伸出,密码锁即可开启。控制系统是电子密码锁的核心,它能够将录入的指纹进行校验并驱动执行机构,从而完成开锁或闭锁动作。指纹密码锁可以根据用户需要录入多个指纹,也可以选择使用密码开锁,适合较多家庭成员使用。指纹密码锁一般由微处理器或单片机控制,根据人们需求进行控制。它的特点在于方便、安全、精确、保密性好、防破译,而且它的操作方法简单,有多种功能如开锁方式选择、提示信息、密码修改、误码输入保护等。总的来说,指纹密码锁是一种安全、方便、精确的锁具,成为了目前市场上一种受欢迎的锁具,适用于多种场合。2设计要求(1)本设计可以实现指纹解锁或者密码解锁两种功能。(2)具有添加指纹、删除指纹的功能,可以录入多个指纹,且为了便于区别,每个指纹都有相应的编号。(3)能实现液晶显示:在输入指纹或密码正确时显示“门已打开”,输入指纹或密码错误时显示“没有搜索到指纹”或者“密码错误”。(4)这款产品拥有强大的报警系统,一旦发现用户输入的指纹和密码出现异常,就会发出震耳欲聋的滴滴声。(5)4*4矩阵键盘拥有从0-9的数字键以及支持A-D、#、*功能的多种按键,使用起来更加便捷。(6)开锁密码为六位密码。(7)密码输入错误超过三次,密码锁锁定。(8)用户可以通过自定义6位密码来更改系统密码,首先,应该进入管理员模式,然后重复输入新的密码,并且要经过双重ACK(确认字符),以确保系统不会出现任何错误。3总体方案设计该系统采用了先进的单片机STC89C52RC作为其中枢,并且能够实现对多种模块的有效的数据传输和协同操作。它的结构包括:主控电路模组、AS608指纹识别模组、矩阵按键模组、LCD12864显示器模组、AT24C02存储器模组、继电器驱动模块和报警模块。这个系统的核心处理器是STC89C52RC,它负责传递时间信息并操纵软件。此外,它还拥有一个指纹识别模块,可以处理指纹图像,提取模型,进行对比,并进行指纹识别。此外,它还可以进行指纹识别的记录,并将指纹记录下来。该系统能够自动进行指纹鉴定,它使用按钮来收集用户的手势,以满足当前的任务需求。此外,它还能够使用屏幕来展现用户的当前状态。用户还能够使用屏幕来设定自己的安全密码。如果用户没有准确地输入安全密码或者指纹,该系统将发出警报REF_Ref18849\w\h[3]。3.1矩阵键盘模块4*4的矩形键盘由8个单片机的GPI/O引脚构成,其中四条I/O线分别代表行线与列线,而且各自的接口处都有相应的按键,使得整个键盘的功能更加完善,可以满足多种不同的使用场景。采用这一排布的键盘架构可以显著地增强I/O口的使用效果。为了节省引脚,并且考虑该系统的主要功能及实用性,本次设计选择4*4的矩阵键盘模块。3.2液晶模块一、1602液晶可以清晰地展示出各种数字、符号和字母,其中最大的可达16*2个字符,而且可以一个一个地显示,也可以按照从左到右或从右到左的顺序进行显示,操作简便方便。二、12864液晶显示信息量大,能显示8*4个汉字,功能强大。本次设计选用的是12864液晶屏,有八个管脚,接口类型为SPI接口,具有全视角、带中英文字库等特点REF_Ref18927\w\h[4]。3.3按键控制模块设计时使用了4*4的按键模块。该设备配备了0-9个数字键和A-D四个字母键,还有*号键和#号键。这个模块可以与只使用8个标准I/O端口的各种开发面板配合使用,能够实现16键扫描和自主输入功能。它具备易于安装、简单操作以及持久耐用的优点REF_Ref18927\w\h[4]。3.4总体设计方案选定\o""该系统采用STCT89C52RC实现对单片机的控制。\o""该系统采用STC89C52RC作为系统的核心部件,其编程能力强的I/O接口类型丰富,可以实现准确的控制以达到密码锁基本功能。此外,还可以通过外接的键盘来输入密码,并且可以通过LCD12864显示器来显示信息。4设计原理在这次设计中,我们决定采用一种新的办法来达到设计要求。我们使用一个具有高精度的单片机,它的工作原理与I/O接口非常相似。我们将使用这个单片机来完成所有的指纹识别任务,并保证它的可靠性。通过将12864显示器与单片机的外部电路相连,可以实现对指纹识别模块的有效检测,以及对密码的快速输入,从而提供更加便捷的操作体验。4.1单片机模块本次设计的重点在于单片机的控制,以满足用户的需求,根据用户的指令执行相应的操作。我们选择了STC89C52RC,因为它的价格实惠,而且具有良好的通用性,易于使用。(1)单片机介绍“单片机”通常指的是由中央处理器、随机存储器、只读存储器和I/0设备组成。这些组件通常都是由一块封装好的计算机单元组装而成。由于科学技术的进步,机器人已经步入一段全新的时期,芯片产品从8位、16位到32位,形成一套丰富而又完整的系统,每一位元素都有其独特的优势,使得单片机的使用范围更加宽泛。通过单片机的研究,我们能够看到它未来的演变方向[5]。目前广泛使用的单片机通常包括中央处理器(CPU)、随机数据存取存储(RAM)、只读数据存储(ROM)、以及并行和串行的通信接口,中断电源管理系统,定时器电路和时钟集成电路集成于独立晶片中,扩展型数字单片机集成例如A/D变换器中、PMW(脉宽调制电路),WDT(看门狗)等数字单片机把LCD(液晶)控制电路全部集成到一个独立的晶片中,这类单片机所拥有的模块集成回路更是数不胜数,能力也越强劲REF_Ref19055\w\h[6]。STC89C52RC的主要特性如下:工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)有看门狗的作用总共三个16位定时器/计数器。也就是定时器T0,T1,T2通常情况下,I/O口(32个)在复位后的配置为:P1/P2/P3为准双向口/弱上拉,P0口为漏极开路输出,在进行总线延伸时无需添加电阻,而在进行I/O口操作时则需要添加电阻。(2)单片机引脚功能说明下图4-1为STC89C52RC引脚功能说明。图4-1STC89C52引脚图VCC(40引脚):电源电压VSS(20引脚):接地P0.0~P0.7:数码管、外接显示屏LCDP1.0~P1.7:矩阵键盘P2.0~P2.7:发光二极管组件P2.2~P2.4:138译码器选择位;P2.5~P2.7:外部显示液晶显示器P3口:8位准双向I/O接口,可将每一位用于第二功能,第二功能的定义见表4-1。表4-1STC89C52P3口的第二功能端口功能第二功能P3.0RXD(串行输入口)P3.1TXD(串行输入口)P3.2INT/0(外中断0)P3.3INT/1(外中断1)P3.4T0(定时/计数器0)P3.5T0(定时/计数器1)P3.6外部数据存储器写选通P3.7外部数据存储器读选通XTAL1:输入端子,作为振荡器反向放大器和内置时钟产生器。XTAL2:振荡器反向放大器的输出端
4.2液晶模块4.2.1液晶显示LCD12864的介绍在我们的日常生活里,液晶显示器并不是一个陌生的概念。随着科技发展,人们越来越多地使用这种产品来显示各种信息和控制设备。液晶显示模块的应用在我们生活中随处可见,计算器、电子表以及众多的家庭电子产品里都能观察到它的身影。随着科技和经济的发展,液晶显示屏将逐步成为人们生活的必需品。\o""LCD的工作原理是利用电流对液晶分子进行激励,从而产生点,线,面,并与背面的灯管相结合以形成视觉画面。目前世界上已生产出多种型号和规格的液晶显示器,其中有许多是采用了新技术的产品。为了使描述更为简洁,人们通常直接称各种液晶显示器为液晶。液晶具有小巧的体积、低功耗和简便的操作方式,但它也存在一个明显的缺陷,那就是其使用的温度范围非常有限。因此,在设计相关产品时,选择合适的液晶是至关重要的。采用LCD12864液晶显示屏,不仅拥有丰富的文本内容,而且还支持多种多样的表示方式,如汉语、英文、拼音、动画等[5]。此外,它还提供了一个便捷的文本输入与文本输出的双向功能,让您在文本与视觉之间轻松切换。这个界面提供两种通信模式:串口通信以及并口通信。为此,我们采取了串口通信模式,即将PSB与低电平接口相互联系。此外,我们还设计了一个上电复位电路,可以让7~14引脚的数据I/O口保持悬浮,以此来提高系统的可靠性,同时也可以缓解系统的负担[6]。该液晶屏具有较好的对比度与色彩饱和度,并且还具有良好的动态响应特性。此模块外部配备了一个可调节灵敏度的电阻,通过该电阻可以调节液晶显示屏的对比度,同时,背光源的正极接5V电源,负极通过一个电阻连接,以达到保护电路的目的REF_Ref18405\w\h[7]。4.2.212864型LCD管脚的作用12864有20个管脚,它们的管脚描述见下表。表4-2接口信号说明编号符号引脚说明编号符号引脚说明1VSS电源地11D4DataI/O2VDD电源正极12D5DataI/O3VO液晶显示对比度调节端13D6DataI/O4RS数据/命令选择端(H/L)14D7DataI/O5R/W读/写选择端(H/L)15PSB并/串选择H并行L串行6E使能信号16NC空脚7D0DataI/O17RST复位,低电平有效8D1DataI/O18NC空脚9D2DataI/O19A背光电源正极10D3DataI/O20K背光电源负极这款12864英寸的点阵液晶TV,能够清晰地展现出中文字体和图像,内置了8192个中文字体,8X16英寸字体,以及64X256英寸的点阵GDRAM,让我们的使用更加便捷。4.2.3控制器接口说明1)基本操作时序:读状态:输入:RS=L,RW=H,E=H输出:D0~D7=状态字写命令:输入:RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:D0~D7=数据读数据:输入:RS=H,RW=H,E=H输出:无写数据:输入:RS=H,RW=L,D0~D7=数据,E=高脉冲输出:无2)状态字说明表4-3状态字说明STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0STA0~6当前数据地址指针的数值STA7读写操作使能1:禁止0:允许4.2.412864引脚与单片机连接图下图为12864与单片机的接口连接图。图4-212864引脚与单片机连接图\o""显示模块主要完成数据的显示.当用户编写代码的时候,需要注意的是,在开始的时候,要先对其进行初始化,否则,模块将无法正确地工作。\o""首先,在发出指令之前,单片机要检查显示模块有无空闲,并根据接收到的指令,在显示屏上显示对应的信息。(1)由RS位确定是写数据还是指令。写指令可以包括:液晶显示屏光标的显示/隐藏,光标有没有闪烁,还有屏幕是否有滚动。要写的数据是指要在屏幕上显示的具体内容。(2)把读/写控制端子设置在写系统中,即,设置在低电平。(3)将数据或指令传输到所述数据线路。(4)将高电平脉冲加到E,将数据传送到LCD控制器,从而实现写入。4.3硬件电路的设计4.3.1复位电路的设计单片机的置位与复位机制,其实质在于将电路系统重新设定至预设的初始状态。对于单片机而言,复位电路的功能主要是确保如状态机等关键组件在启动或特定情况下能够回归初始空白状态REF_Ref5793\r\h[8]。单片机复位电路的思路是采用一种电阻加一电容,再加上一个单片机来重新设置RST引脚线,这样经过两个机器周期的复位,就可以获得良好的复位效果。复位水平应该比两台机器的工作时间长。通过RC回路可求出特定的数值。复位电路包括键复位和电源复位。(1)STC89系列单片机采用了RST作为复位引脚,它与VCC和GND之间构建了一个RC充放电循环,使得在断开外部信号之前,RST可以在较长时间内维持较高水平,而断开外部信号之后,RST可以迅速降为较低水平,从而重新启动。一般来说,10K的电阻率是最常见的,而10uF的则是最高的。(2)通过将电路板的电极与电路板之间连接的电路板,可以实现电路板的复位。如果将电路板的电极连接的电路板接通,则电路板的RST电极将被拉高,从而使电路板的电平能够维护较长的时间,实现单片机的复位。在本系统中使用的复位电路如图4-3所示。在微控制器通电的那一刻,RC回路被充电,RST管脚端为正向脉冲,只需RST端维持2个机器周期或更长的高电平即可实现单片机的高效复位。在这其中,电容的选择是10uF,而电阻则是10KREF_Ref19185\w\h[8]。图4-3复位电路4.3.2自锁开关说明自锁式开关是电路中的电源切换器,它的一只脚与直流电源插座的电源脚相连,而另一只脚则与电路的VCC相连。图4-4自锁开关原理图图4-5自锁开关硬件图4.3.3三极管介绍常用的三极管有9012,S8550,9013,S8050等.三极管在MCU的应用电路中起着开关的作用。辨别插脚:将三极管置于自身前方时,插脚的顺序是从左至右。在电路图中,带箭头的一端是E,连接到电阻的是B,而另一端是C。向内指的是PNP类型(9012或者8550),向外指的是NPN类型(9013或者8050)。三极管如何工作:三极管是集电极C,基极B,发射极E,属于电流放大器的一种。他们被分成NPN类型和PNP类型。图4-6三极管引脚介绍图4-7PNP型原理图图4-8NPN型原理图4.3.4开锁机构本课题利用LED取代传统的电磁锁定方式,通过LED灯的亮起,说明门锁是打开的。故本论文提出一种简易的二极体电路,取代传统的电磁式开锁装置。图4-9展示了发光二极管的电路图。图4-9发光二极管4.3.5键盘设计该方案使用行列式键盘进行按键输入。它可以大大减少与MCU连接时对输入输出线路的要求。行列式矩阵键盘的工作原理是把按键按阵列起来,用水平和垂直的交叉点把按键连起来,如下图所示。在处理键盘输入时,键盘处理程序首先会等待按键触发并确认是否按下。通过把一个接口与小键盘矩阵相连,就能完成16个按键的输入,比直接用端口线连键盘的接线要少一半,而且随着连线的增多,这种差异也越来越明显。图4-10为键盘整体模框图:图4-10键盘整体模框图键盘扫描采用行扫描法,即依次置行线中的每一行为低电平,其余均为高电平,扫描列线电平状态,为低电平即表示该键按下。图4-11矩阵键盘设计电路4.3.6声音提示电路设计通过使用一个小型的蜂鸣器,我们能够控制脉冲信号的频率和持续时间,从而实现对密码的及时响应。这种方法能够有效地检测到密码是否正确或错误,并及时发出警告,从而满足报警需求。下图展示了蜂鸣器的电路。图4-12蜂鸣器电路5指纹模块5.1指纹模块简介本次设计选用了40系列的光指纹识别模组,其界面示意图如下:图5-1指纹模块接口图指纹识别模块主要由AS606型号的数字信号处理器(DSP)芯片构成,同时还配备了一个CMOS芯片。CMOS芯片的主要职责是对指纹进行“捕捉”图像,进而生成指纹特征。如下图所示,为一个指纹模板实例。用户只需输入两次相同的指纹特征,即可创建一个新的指纹。图5-2指纹模版由于我们手指内侧皮肤的凹凸纹理,会产生多种不同的设计图案。在处理信息时,我们通常称其为“特征”。每一根手指都有其独特的属性,这意味着它们是独一无二的。指纹识别系统,运用独特光学转换工具和图像处理方法,对指纹数据进行收集、解析和对比,自动、快速且精确地确认个体身份。该系统主要涵盖指纹图像采集、处理、特征提取,以及指纹特征值对比和匹配等多个环节。在指纹识别方面,我们选用了AS606系列DSP芯片,结合CMOS工艺实现了对指纹信息的采集与处理。首先,CMOS传感器对指纹进行采集,经过模糊运算,产生0、1两种数据,并将这些数据存入指纹识别模块中。在辨识模式下,指纹模组会撷取一幅指纹影像,并将影像资料与闪存晶片内储存的资料进行比对,判断有无相符的指纹。若符合,则指纹模组会传回对应的指纹号码。另外,本发明所述的指纹识别模组,还包含一光头,通讯连线,DSP芯片,稳压芯片,FLASH芯片,CMSO传感器等元件。5.2指纹模块引脚接法40系列独立式指纹识别模块的引脚功能如下:在该模块中,引脚1负责连接电源;引脚2接入单片机的RXD端;引脚3则与单片机的TXD端相连接;引脚4保持悬空状态;而引脚5则连接到地面。表5-1如下:表5-1指纹识别模块引脚功能引脚号名称类型功能描述1VINin电源正输入端2TDout串行数据输出。TTL逻辑电平3RDin串行数据输入。TTL逻辑电平4GND-信号地。内部与电源地连接6系统软件设计6.1软件设计6.1.1指纹识别程序设计对指纹识别模块进行了编程,采用串行通信的方法进行数据的收发,以完成本程序的启动。本软件采用了单片机和指纹识别模块的串行通讯方式,实现了数据的交互。其中,指纹识别软件的主要功能就是对LCD屏幕执行写入操作。在程序执行时,先对串口进行初始化,再通过相应的程序将一个指纹输入到相应的程序中,同时收集两个指纹,产生一个指纹模版,并且将所产生的特征文件保存。通过指纹识别,系统可以自动地检测出用户的身份信息,然后根据检测结果,对所获得的指纹信息和已经存入的数字序列做出相应的处理。若检测结果符合要求,系统就会自动生成相应的指纹信息,以此来确认用户的身份信息。通过这样的程序设计,可以实现指纹识别功能,并进行指纹的录入、匹配和验证操作。6.1.2指纹对比程序设计指纹对比就像是给用户出的一道难题。在进入比对阶段之前,指纹对比程序要细致分析指纹的每一个细节,然后将这些信息与数据库中的指纹逐一比对,努力寻找那个与用户指纹最相近的。一旦找到那个最相近的,程序就立即向用户发送匹配提示。当用户按压指纹时,指纹扫描器就围着用户手指转,把他的指纹全扫描进去。然后,\o""将此信息传送到MCU,供其分析。微控制器内建有指纹比对程序,可采集并记录指纹,并与事先存好的指纹资料相比对,以保证准确。如果系统发现目前的指纹和资料库中的信息不存在差异,则系统将自动触发开锁操作,但是,若发现存在差异,系统将立即切换到警报模式,以防止出现任何可能的安全风险。通过这样的指纹对比设计,可以有效实现指纹的比对与匹配功能,并确保系统在指纹信息一致时能正常开锁,同时在不一致情况下及时触发警报。6.1.3开锁程序设计解锁密码和指纹信息收到后,单片机立马开始工作,依次给门解锁。程序流程图如下图所示:图6-1开锁程序流程通过使用C语言,我们可以创造出独特的程序:指纹识别模块程序、12864液晶屏幕程序和按钮程序。这些程序可以让我们的操纵员轻松访问它们,从而实现对指纹识别模块、液晶屏幕等的高效操纵。利用KeilMCU的软件开发环境,可以高效地完成MCU的编程。这种程序的特性是,它能够根据需求把源程序细分为若干个独立的模块,每个模块都有自己的特定的功能,从而实现一个完整的程序结构。这个开发平台提供了一个完善的模拟调试功能,使得编辑和测试更加容易。此外,用户也能够在平台的主控台上轻松访问已经经过测试的代码。当单片机上电后,主程序必须执行一系列初始化操作,确保能实现所需功能。6.2主程序模块主程序的主要任务包括系统启动、中断向量配置、检测按键状态以及调用和显示等功能。以下为主程序部分的具体内容:图6-2主程序流程图6.3键盘扫描及识别子程序在主程序中,以查询的形式将键盘存入主程序,并在使用者按下某一按键后,该单片机就会自动地运行此程序。如果没有用户按下,它会自动转移到相应的子程序,直到完成所有操作后才会返回。键盘模块的工作流程图如图6-3所示:图6-3键盘程序流程图7系统制作及调试7.1焊接注意事项7.1.1电路的焊接焊前准备首先要了解要焊接的线路板的电路图,然后根据需要购买设备,检查零件的型号、规格和数量,并且要做好焊接前的准备。焊接顺序我的焊接顺序是按照附录=1\*ROMANI所示的指纹密码锁的硬件连接原理图依次焊接。对元器件焊接要求(1)电容器焊接请确保所安装的电容器都在指定的位置,同时要确保“+”和“-”的接线正确无误。请确保标记的方向易于观察。首先安装有机介质和瓷介质的电容器,然后再安装电解式的电容器。(2)二极管的焊接在二极管的焊接中,应特别关注三个方面:第一,确保电池的电流和电压符合规范;第二,确保电流的大小和电压符合规范;第三,在进行立体二极管的焊接时,应尽量避免在2S内完成所有的连续工序。(3)三极管焊接请务必牢记e、b、c三根导线的安放方式。在进行焊接操作时,请使用镊子夹牢导线,这样才有助于降低温度。请先把接头处处理得平坦、光洁,然后再进行安装。如果必须安装隔离层,请不要忘记添加隔离层。当将管脚安装在电路板上时,应使用高质量的塑料导线。(4)集成电路首先,按照图纸的要求,确保型号和引脚位置符合规范。在焊接过程中,应先焊接边缘的两只引脚,以确保它们的准确位置。接着,从左到右,一步一步地进行焊接。对于电容器、二极管和三极管,应当将它们的多余引脚齐整地剪掉。(5)12864注意事项:1)为了确保屏幕的正常运行,应尽量减少机械振动和外部压力的影响,以免造成损坏。2)在电源被打开,不能安装和拆卸模块。3)为了保护LCD模块免受损害,必须确保电源电压、输入电压和环境温度不超出最大的额定值。
(6)单片机焊接注意事项:STC89C52单片机的脆弱性使得它在焊接过程中更容易受到损害,因此,为了确保其正常运行,建议使用恒温可调的烙铁,尽量避免拉焊,并且烙铁放置的时间也应该控制在3秒以内。其他的电子器件焊接要求1)准备:a.清洁干净被焊元件。b.为了避免烙铁头烧伤周围的元器件,请轻轻地移动烙铁,使它能够轻松接触到被焊接的部位。c.在焊接新的元器件之前,应该确保它们的引线都已经被镀上了锡。将电烙铁头轻轻按压,使其与被焊元件接触几秒钟,以确保牢固的连接。2)焊接:a.加热焊枪,沾取少量焊锡,轻触元器件,将元器件焊稳。b.当想要移除部分时,请先将烙铁点燃,轻触移除元件。3)对焊接表面进行清理:a.若焊料点处有多余的焊料,可用吸焊器将焊料头上的焊料吸走一部分(小心别烧到肌肤)。b."蘸取"焊料可用于在焊接点处,若焊料数目不够或不够平滑,则可适当补焊料。4)检查焊点:a.请确保焊接点处的表面光滑、平整、牢固,并且没有与其他元件相连。b.特别要注意避免虚焊的情况出现。7.1.2硬件调试问题及解决方法本设计中存在的一些问题及解决办法:LCD遇到的问题:(1)当LCD接通电源时,它并未发出任何反应,所有的引脚都被正确地连接上。这很可能是因为初始化程序出错了。经查找得知是LCD显示器的有两个脚被不小心连在一起,重新连接好之后还是不能显示字符。再次查找发现有些管脚存在虚焊现象,重新焊接之后,LCD正常显示。指纹开锁遇到的的问题用指纹开锁时,有些时候不太灵敏,同一个手指可能有时候解不开锁,这可能是跟手指的湿润度有关,也可能是手指上有异物或者指纹模块的检验屏上有异物。8结果分析一、本设计中系统可实现功能如下:1.有两种开锁方法,一种是指纹开锁,一种是使用密码开锁。2.指纹解锁:LCD显示屏上出现了“请按手指解锁”的字样;如果输入的是正确的指纹,那么开启的时候就会出现“门已打开”的提示,如果输入的是错误的,那么就会出现“没有搜索到手指,请重新按手指”的提示。3.密码开锁:按键设定为6个数字,当输入密码时,如果密码是对的,就会出现“门已打开”的提示,如果输入的密码是错误的,那么就会发出警报声,同时LCD也会出现“密码错误”的提示。4.可以自行更改自己的密码(6个数字),在管理员状态下,可以更改密码,为了防止误操作,需要输入两次修改密码。在密码遗失情况下,也可进入管理员模式可以进行重设。5.如果连续3次以上的密码输入出现失败,蜂鸣器将发出警告,同时将锁定键盘按钮。6.增加/删除指纹:进入管理员模式,选择增加/删除指纹,根据提示录入指纹,录入成功并进行编号,内部保存指纹并存储。若指纹录入失败,则显示指纹采集失败。删除指纹时选择想要删除的指纹的对应编号删除即可。7.对输入的6位密码进行隐藏。8.按下复位键,可以关锁并退出。10.进入管理员模式的密码为:131420,开锁密码为:121212。二、按键排列方式:123A456B789C*0#DA键为进入管理员模式、B键为删除键、C键为密码解锁模式、D键为确定键、*、#无定义9结束语这次设计我使用了所学的数字电路、模拟电路、单片机、C语言等知识来设计完成,这不仅巩固了我之前所学的知识,也让我在设计研究的过程中了解到了许多以前不太接触的知识,让我受益匪且。从制定基本方案开始,经过精心挑选硬件电路,再到精确焊接,最后完成程序的编写与调试,这一切都是充满挑战的,有时候我会感觉自己无能为力,但是通过不断的努力,最终我们克服了重重困难,实现了预期的目标。通过这次设计,我发现了自己的许多缺陷:疏忽大意、缺乏理论知识和实践经验。但是,正是通过这次设计,我得到了宝贵的经验教训,并且获益良多,特别是检查电路时,让自己对电路有了更深的了解。除此之外,在这次设计中的这种坚持不懈,迎难而上的精神对我以后的生活和工作也很有帮助,我相信在以后遇到困难和挫折的时候,我会比之前多一份不放弃的精神,同时我也体会到理论与实践相结合的重要意义。鉴于本次设计的时间紧迫性,未能充分实现一些构想,例如:密码锁的面部识别、蓝牙开锁,IC卡解锁,指纹密码锁的网络通信扩展。但我仍然希望在未来有更多的机会,能够深入探索这些构想。10参考文献徐灿,吕锦彬.基于单片机的指纹识别门禁设计研究[J].新疆第二医学院,2023.关海鑫.基于指纹识别的会员管理系统[D].四川大学,2006.杨淑裕,基于单片机的指纹识别电子密码锁系统的设计[J]电脑知识与技术,2021年15期谭红,一种智能密码锁系统的设计与实现[J].软件工程。2021年11期Chenchangzhou.VoiceofElectronicPassword-lockDesign[N],Beijingaviationuniversitypress,2003.张毅刚.单片机原理与应用[M].北京:高等教育出版社,2006:56-234.[8]李明喜主编黄慧灵,甘双红,李国治,唐诗程.基于单片机的指纹密码锁设计[J].电子元器件与信息技术,2021.陈进超,新型无线遥控电子密码锁系统的研究[D],华中师范大学,发表时间:2006.陈光新.自动指纹识别技术及其应用[J].江苏船舶.2004,24(03):32-35.周兴华,手把手教你学单片机[J],北京航空航天大学出版社,2006年12期.
附录一:电路图附录二:实物图1、实物图2、通电后3、密码开锁4、指纹开锁
附录三:源程序主函数voidshuazhiwen(){ucharIDs1,IDs2,IDs3; LcmClearTXT(); PutStr(1,1,"请按手指开锁"); SFG_identify(); while(querenma==2||querenma==3) SFG_identify(); if(querenma==0){ LcmClearTXT(); PutStr(1,2,"门已打开"); IDs1=PageID/100; IDs2=PageID/10%10; IDs3=PageID%10; PutStr(2,1,"编号为:"); WriteCommand(0x8D); //指定第三行显示位置 WriteData(0x30+IDs1); WriteData(0x30+IDs2); WriteData(0x30+IDs3); ErrorCount=0; Feng=1; jidianqi=0; delay(2500); jidianqi=1; } elseif(querenma==9) { LcmClearTXT(); PutStr(1,1,"没搜索到指纹"); PutStr(2,1,"请重新按手指"); Feng=0; } elseif(querenma==1) { LcmClearTXT(); PutStr(1,1,"接收包出错"); }// else// {// LcmClearTXT();// PutStr(1,1,"请勿移开手指");// }// delay(2000);// while(Keycan()==0);}voidaddfinger(){ ucharIDa1,IDa2,IDa3; LcmClearTXT(); PutStr(1,2,"请按手指"); SFG_getimage(); while(querenma!=0) SFG_getimage(); SFG_genchar(buffer1ID); UART_Init(); SFG_fastsearch(buffer1ID); while(querenma==1) SFG_fastsearch(buffer1ID); if(querenma==0) { LcmClearTXT(); PutStr(1,1,"该指纹已存储"); PutStr(3,0,"按任意键继续"); while(Keycan()==0); } elseif(querenma==9) { LcmClearTXT(); PutStr(1,1,"请再次按手指"); SFG_enroll(); while(querenma==2) SFG_enroll(); LcmClearTXT(); if(querenma==0) { IDa1=PageID/100;IDa2=PageID/10%10;IDa3=PageID%10; PutStr(1,1,"指纹采集成功"); PutStr(2,1,"编号为:"); WriteCommand(0x8D); WriteData(0x30+IDa1);WriteData(0x30+IDa2);WriteData(0x30+IDa3); } elseif(querenma!=0) { PutStr(1,1,"指纹采集失败"); PutStr(2,1,"请重新操作"); } PutStr(3,0,"按任意键继续"); while(Keycan()==0); } LcmClearTXT(); PutStr(0,0,"按键1:增加指纹"); PutStr(1,0,"按键2:删去指纹"); PutStr(2,0,"按键3:手动开锁"); PutStr(3,0,"按键4:修改密码");}voiddeletfinger(){ uchari,j=0; LcmClearTXT(); PutStr(1,0,"输入删去的指纹号"); for(i=0;i<5;i++)dz[i]=0; Key=Keycan(); while(Key!=queren) { Key=Keycan(); KeyDeal(Key); delay(30); //按键有抖动@@@ if(Key==0)K=10; if((K>=0)&&(K<=9)) { dz[j]=K; if(j<3) { WriteCommand(0x88+j); //指定第三行显示位置 WriteData(0x30+dz[j]); } ++j; if(j==4) j=3; //@@#yinhuang }//显示LCD12864并行显示 if(K==34) //按了删除键 { if(j==0) { WriteCommand(0x88); //指定第三行显示位置 WriteData(0x20); } else { --j; WriteCommand(0x88+j); //指定第三行显示位置 WriteData(0x20); } } } if(j>=2) PageID=dz[2]+dz[1]*10+dz[0]*100; if(j==1) PageID=dz[1]+dz[0]*10; if(j==0) PageID=dz[0]; SFG_deletchar(PageID); if(querenma==0) { LcmClearTXT(); PutStr(1,1,"删去指纹号成功!"); } else { LcmClearTXT(); PutStr(1,2,"删去指纹号失败!"); } PutStr(2,0,"按任意键继续"); while(Keycan()==0); LcmClearTXT(); PutStr(0,0,"按键1:增加指纹"); PutStr(1,0,"按键2:删去指纹"); PutStr(2,0,"按键3:手动开锁"); PutStr(3,0,"按键4:修改密码");}voidgaimima(){ uchari,j=0,mima1[6],mima2[6]; uchark; LcmClearTXT(); PutStr(1,1,"请输入新密码"); for(i=0;i<6;i++)mima1[i]=0; Key=Keycan();while(Key!=queren) { Key=Keycan(); KeyDeal(Key); delay(30); if(Key==0)K=10; if((K>=0)&&(K<=9)) { mima1[j]=K; if(j<6) { WriteCommand(0x89+j); //指定第三行显示位置 WriteData(0x0f); } ++j; if(j==7) j=6; //@@#yinhuang }//显示LCD12864并行显示 if(K==34) //按了删除键 { if(j==0) { WriteCommand(0x89); //指定第三行显示位置 WriteData(0x20); } else { --j; WriteCommand(0x89+j); //指定第三行显示位置 WriteData(0x20); } } } if(j>=5)mima1_finish=1; LcmClearTXT(); LcmClearTXT(); j=0; PutStr(1,0,"请再次输入新密码"); for(i=0;i<6;i++)mima2[i]=0; Key=Keycan();while(Key!=queren) { Key=Keycan(); KeyDeal(Key); delay(30); if(Key==0)K=10; if((K>=0)&&(K<=9)) { mima2[j]=K; if(j<6) { WriteCommand(0x89+j); //指定第三行显示位置 WriteData(0x0f); } ++j; if(j==7) j=6; //@@#yinhuang }//显示LCD12864并行显示 if(K==34) //按了删除键 { if(j==0) { WriteCommand(0x89); //指定第三行显示位置 WriteData(0x20); } else { --j; WriteCommand(0x89+j); //指定第三行显示位置 WriteData(0x20); } } } if(j>=5)mima2_finish=1; LcmClearTXT(); if(mima1_finish==1&&mima2_finish==1&&mima1[0]==mima2[0]&&mima1[1]==mima2[1]&&mima1[2]==mima2[2]&&mima1[3]==mima2[3]&&mima1[4]==mima2[4]&&mima1[5]==mima2[5]) { for(k=0;k<6;k++) { x24c02_write(k,mima1[k]); delayms(100); } PutStr(0,1,"密码修改成功"); PutStr(3,0,"按任意键继续"); ErrorCount=0; while(Keycan()==0); } else { PutStr(0,0,"密码修改失败"); PutStr(1,0,"两次输入的密码不"); PutStr(2,0,"一致,请重新操作"); PutStr(3,0,"按任意键继续"); while(Keycan()==0); } LcmClearTXT(); PutStr(0,0,"按键1:增加指纹"); PutStr(1,0,"按键2:删去指纹"); PutStr(2,0,"按键3:手动开锁"); PutStr(3,0,"按键4:修改密码"); mima1_finish=mima2_finish=0;}voidzhu(){ LcmClearTXT(); PutStr(1,2,"门已打开"); jidianqi=0; delay(2500); jidianqi=1; PutStr(3,0,"按任意键继续"); while(Keycan()==0); PutStr(0,0,"按键1:增加指纹"); PutStr(1,0,"按键2:删去指纹"); PutStr(2,0,"按键3:手动开锁"); PutStr(3,0,"按键4:修改密码");}voidguanliyuan(){uchari,j=0,x=1; ucharRight_flag;LcmClearTXT(); PutStr(1,1,"请输入密码:"); for(i=0;i<6;i++)mimag[i]=0; Key=Keycan();while(Key!=queren) { Key=Keycan(); KeyDeal(Key); delay(30); if(Key==0)K=10; if((K>=0)&&(K<=9)) { mimag[j]=K; if(j<6) { WriteCommand(0x89+j); //指定第三行显示位置 WriteData(0x0f); } ++j; if(j==7) j=6; }//显示LCD12864并行显示 if(K==34) //按了删除键 { if(j==0) { WriteCommand(0x89); //指定第三行显示位置 WriteData(0x20); } else { --j; WriteCommand(0x89+j); //指定第三行显示位置 WriteData(0x20); } } }LcmClearTXT(); for(i=0;i<6;i++){UserPassword[i]=mimag[i];} if(j==6) { if(mimag[0]==1&&mimag[1]==3&&mimag[2]==1&&mimag[3]==4&&mimag[4]==2&&mimag[5]==0) //管理员密码改这里 Right_flag=1; else Right_flag=0; } if(Right_flag==1) { Right_flag=0; for(i=0;i<6;i++)mimag[i]=0; PutStr(0,0,"按键1:增加指纹"); PutStr(1,0,"按键2:删去指纹"); PutStr(2,0,"按键3:手动开锁"); PutStr(3,0,"按键4:修改密码");while(i!=tuichu){ i=Keycan(); KeyDeal(i); switch(K) { case1:addfinger();K=6;break; case2:deletfinger();break; case3: zhu(); K=8;break; case4:gaimima();break; default:break; }}}else{ PutStr(1,2,"密码错误"); PutStr(2,0,"请重新操作!"); PutStr(3,0,"按任意键继续"); while(Keycan()==0); PutStr(0,0,"按键1:增加指纹"); PutStr(1,0,"按键2:删去指纹"); PutStr(2,0,"按键3:手动开锁"); PutStr(3,0,"按键4:修改密码");}Key=0;}voidmimakaisuo(){ uchari,j=0,x=1; ucharRight_flag; ucharflag=0; LcmClearTXT(); PutS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模板支撑施工质量与安全管理要点
- 市场营销推广计划书范本
- 酒店薪资福利方案设计与案例分析
- 古典诗歌象征意象深度解读报告
- 雨季管道施工施工技术要求
- 智能制造设备操作流程及故障处理
- 酒店卫生管理检查标准汇编
- 民警办案系统操作流程说明书
- 中学语文经典作品阅读教学设计
- 人教版六年级下册英语口语训练测试
- 2024-2025学年海南省海口市外研版(三起)(2012)五年级上学期11月期中英语试卷(含答案含听力原文无听力音频)
- GB/T 5617-2025钢件表面淬火硬化层深度的测定
- 网店客户服务课件
- 危重症患者口渴护理规范
- 辅警保密培训课件
- 股票市场中的波动性与回报
- 排球规则课件
- DB46-T 481-2019 海南省公共机构能耗定额标准
- 赠送课程如何规定协议书
- 胃肠镜护士理论知识培训课件
- 2025反洗钱知识考试试题库及参考答案
评论
0/150
提交评论