《电子信息工程 基于STM32的指纹识别密码锁的系统设计.docx》由会员分享,可在线阅读,更多相关《电子信息工程 基于STM32的指纹识别密码锁的系统设计.docx(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、广东东软学院本科毕业设计(论文)本科毕业设计(论文) 基于STM32的指纹识别密码锁的系统设计 The design of fingerprint recognition password lock system based on STM32 single chip microcomputer 院 (系)计算机科学与技术系专 业电子信息工程班 级二班学 号16210420209学生姓名刘淑晶指导教师郭鹏飞提交日期2020年 4月18日毕业设计(论文)原创性声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图
2、件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人已经发表或撰写的作品及成果。对本文的研究作出贡献的个人和集体,均已在论文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。毕业论文作者(签字): 签字日期: 年 月 日成绩评定成绩项论文成绩(百分制)折合比例实得成绩(折合分)指导教师成绩30%评阅教师成绩20%答辩成绩50%总评成绩注:毕业设计(论文)成绩按百分制评定。答辩成绩不及格的(评分低于60分的),则该毕业设计(论文)总评成绩为答辩成绩。摘 要处于现在这个信息发达的时代,指纹识别技术得到了飞速的发展,此得益于其高度的安全性、成本低、还有方便实用。指纹可以说是
3、人们不可能会跟别人存在重复的部分,也就是说可以通过这一个特点,将一个人的指纹预先保存起来,然后与其他的指纹进行比较,可以验证出这个人是否为原本预先保存的那个人。本文是一个基于STM32单片机的指纹识别电子密码锁系统设计。控制AS608指纹模块以达到实现录取指纹并存储指纹数据的目的,键盘模块选择用矩阵式键盘且通过软件消抖减少其对单片机对应产生的影响,利用12864液晶呈现录入和对比的结果,应用直流继电器及发光二极管模拟开锁的操作,继电器及小灯起到提示指令是否完成的作用。关键词:STM32单片机 指纹识别技术 12864液晶 ANSTRACTIn this information develope
4、d era, fingerprint recognition technology has been rapid development, which benefits from its high security, low cost, and convenient and practical.Fingerprint can be said to be the part that people cant repeat with others, that is to say, through this feature, ones fingerprint can be saved in advan
5、ce, and then compared with other fingerprints, it can be verified whether this person is the person who was saved in advance.This paper is a design of fingerprint recognition electronic password lock system based on STM32.The AS608 fingerprint module is controlled to achieve the purpose of taking fi
6、ngerprint and storing fingerprint data. Matrix keyboard is selected as the keyboard module and its influence on the corresponding MCU is reduced by software buffeting,The 12864 LCD is used to present the results of input and comparison. The DC relay and LED are used to simulate the operation of unlo
7、cking. The relay and small lamp play the role of prompting whether the instruction is completed. Keywords: STM32 single chip fingerprint recognition technology 12864 liquid crystal目录第一章 概括11.1 指纹识别技术的发展11.2 指纹识别的基本规律11.3 系统设计的用处21.4 系统设计的操作流程2第二章 硬件介绍和设计42.1 单片机及最小系统42.2 指纹模块52.3 矩阵键盘模块62.4 液晶显示模块72
8、.4.1 控制器接口说明82.4.2指令说明92.4.3 12864引脚与单片机连接11第三章 系统软件的设计133.1 软件运作流程133.2 主程序流程图133.3 部分模块程序设计143.3.1 矩阵键盘模块程序设计143.3.2 液晶显示模块程序设计153.4 Keil编程15第四章 硬件的调试164.1 焊接电路164.1.1 电容器的焊接164.1.2 二极管的焊接164.1.3 三极管的焊接164.1.4 集成电路164.2 调试小灯、继电器164.3 液晶的调试174.3.1 液晶的注意事项174.3.2 调试12864液晶17结论18参考文献19致谢20附录21附录1 原理图
9、21第一章 概括1.1 指纹识别技术的发展 指纹其实在人类还没有出生的时候就已经形成,是取决于胚胎发育所处的环境。每一个人都是独一无二的,双胞胎也必然存在着独特的差异。想要确认一个人的真实身份,可以通过摄取他的血液,进行验DNA达到这个目的。但这并不是最安全的方法,因为同卵双胞胎存在DNA相同的情况;相反,虽然同卵双胞胎出生前在同一个胎盘里,但因为他们所受到子宫给予的压力不同以及其他原因,他们的指纹是不可能一样的。相比较验DNA,录取人的指纹更为方便,因为他的指纹是能够直接对应到他的身份信息。指纹识别因其方便快捷、安全等特点被广泛应用,1在工作方面,通过指纹考勤,排除了以前传统打卡存在他人代打
10、卡的隐患;在生活方面,消费时可以通过指纹支付,海关过关的时候需要用指纹验证身份信息,这样不仅提高了办事的效率,也提高了验证的准确性和保障了消费者的安全,另外,传统的门锁是通过钥匙打开的,如果把指纹识别运用在门禁系统上,就可以避免钥匙被非法复制的现象;在公安方面,搜集罪犯在犯罪现场遗留下的指纹,经过技术处理后可以确定嫌疑人的身份从而进行下一步的工作。在生物识别技术这方面,关于指纹识别,语音识别,面容识别的应用较为广泛,尤其是指纹识别的应用较为热门。运用指纹的唯一性和稳定性从我国古代的画字签押就已经开始,2经过对指纹学的不断研究,指纹识别技术在身份鉴别方面被应用的越来越广泛。1.2 指纹识别的基本
11、规律每个人的手指皮肤因为其凹凸程度的差异,导致其形成的纹路不同,也就是人的指纹不可能出现重复的情况。即使每个人一直都在成长,但其指纹并不会发生变化,改变的只是它明显的程度。箕型纹、斗型纹、弓型纹是指纹的三种纹路。图1-1 指纹基本纹路图案指纹的总体特征和局部特征也可称为指纹的特征点,多个特征点便构成了指纹。对于直观明了的特征,属于总体特征的有核心点和纹数,还有模式区和三角点等。而指纹节点的特点属于局部特征,有指纹的纹路因为分叉形成的分叉点、还有因为折转形成的折转点或者因为中断形成中断点,这些特征点主要参考系数有方向,也就是与核心点,特征点对应的方向,还有曲率,即纹路方向改变对应的速度,以及位置
12、,即节点的位置坐标,一般表示方式为x/y坐标。1.3 系统设计的用处随着时代的发展,社会的进步,科技带来的技术便捷不断充实着人们生活的方方面面。在身份识别方面,以前常用的身份证,密码等都鉴别方法都已经过时,因为它可以与本人分离,也意味着可以被伪造,可以被盗取,可以被破解。相反,指纹识别就可以与本人共生共存,而且指纹具有稳定性和唯一性,首先指纹不会随着人的变化而发生变化;3其次指纹对于每一个人来说都是独特的,因为世界上不可能存在两个一模一样的指纹;还有指纹只需要一小部分的皮肤就可以鉴别出这个人的真实身份,所以使用起来十分方便。因为指纹识别技术相比其他生物识别技术更安全、更便利、成本更低,指纹识别
13、技术将成为生物识别技术中的重要课题之一。4在生活中,因为单片机优异的可靠性和控制性能,单片机被许多电子产品应用,例如电饭煲,还有汽车等都是被单片机控制的。本系统通过实践设计把指纹识别技术和单片机的原理及应用结合起来,设计了一个基于STM32单片机的指纹识别密码锁。1.4 系统设计的操作流程1.4.1 设置模式设置模式主要包括指纹的增加或删除,手动开锁和更改密码。想要进入设置模式,首先是输入六位密码,密码正确就会进入设置模式,密码错误就无法进入设置模式。进入设置模式后可以选择录入指纹,然后指纹模块的指示灯会亮起,这时把手指放置AS608指纹模块上,同一根手指重复录入指纹这个动作两次,随后表示指纹
14、采集成功的信息会被显示在12864液晶显示屏上。进入删除指纹的模式后,根据12864液晶显示屏上的步骤,输入想要删除的对应指纹号,按确认后就成功删除了指定的指纹,这时删除指纹号成功的信息会被显示在12864液晶显示屏上。当指纹模块出现故障的时候,可以启动手动开锁。想要修改密码,首先要输入两次原本的密码,只有两次输入的密码一致且正确的情况下可以进行修改密码。1.4.2 开锁模式打开电源,根据液晶显示步骤,输入密码或者放置手指在AS608指纹模块上,这时开始指纹识别,如果继电器动作,亮起了LED指示灯,即指纹识别成功,也就是开锁成功,同时“开锁成功”及指纹的编号都会被显示在12864液晶显示屏上。
15、如果继电器不动作,LED指示灯并没有亮,即指纹识别失败,也就是开锁失败,同时“没有搜索到指纹 请重新按下手指”会被显示在12864液晶显示屏上,如果超过三次开锁失败,蜂鸣器会响起且报警锁死。第二章 硬件介绍和设计本系统设计主要包括五个部分:有STM32单片机部分,指纹识别模块,矩阵键盘模块、LCD12864液晶显示屏和继电器。STM32单片机指纹模块继电器液晶显示模块矩阵键盘模块图2-1 本系统设计主要组成部分 2.1 单片机及最小系统 图2-2 STM32最小系统模块一个计算机系统被集成起来的芯片被称为集成式电路芯片,也就是单片机。换而言之,单片机扮演着一个微型的计算机的角色。本系统设计选择
16、用单片机的原因不仅是芯片的体积小和质量轻,还有其价格优惠以及使用起来很方便。本系统设计的单片机最小系统是单片机STM32F103C8T6,这是一种基于ARM Cortex-M内核STM32系列的32位微控制器,其工作温度不得低于-40并且不得高于85,其程序存储器容量不得超过64KB,需要电压不少于2V以及不超于3.6V之间。构成本系统设计的单片机最小系统有主控芯片、电源模块,还有调试电路、复位电路和晶振电路。电源模块扮演着起供电的角色,提供3.3V电压给单片机STM32F103C8T6以及提供5.0V电压给其他模块。调试电路组成部分为JTAG下载口和串口1,在系统开发时,JTAG下载被应用,
17、因为需要通过其下载至CPU。然后输出调试的信息时,需要PC机串口助手通过USART1来实现。晶振电路中,需要8MHz晶振,还有72MHz工作效率,这时工作效率想要达到72MHz就要经过CPU内部倍频。5单片机起始的工作状态被明确,实现单片机运行的这个过程被称为复位电路。事实上,单片机系统有时候会被外界各种因素干扰,就会出现程序混乱的情况,复位按钮就显得格外重要,因为按下复位按钮,单片机最开始的工作状态被内部的程序自动开启。普遍被应用的有通过上电实现自动复位,还有通过外部按键实现手动复位,实现复位的条件是时钟电路工作后,连续两个机器周期的高电平被输出在单片机的RESET端。本系统设计用的是通过外
18、部按键实现手动复位,通过上拉电阻达到提高输出高电平的值的效果。本系统设计用的是STM32F系列的单片机,原因有以下几点,首先其他单片机没有STM32F单片机的资源多,执行速度也不够STM32F单片机快;其次STM32F系列单片机下载程序相对更方便,因为STM32F单片机是通过串口来烧写;还有就是STM32F单片机内部集成了看门狗电路且其抗干扰能力很强。2.2 指纹模块型号为AS608的DSP芯片是指纹模块的主要组成部分之一,另一主要组成部分是CMOS芯片。CMOS芯片的主要功能是给指纹“照相”,从而产生对应的指纹特征,需要读取两次指纹特征才可以构成一个指纹模块。图2-3为指纹模板。采集过程分为
19、:首先通过读取图像来扫描指纹,然后产生对应的指纹特征,之后建立一个指纹库的文件,最后合成指纹模板。图2-3 指纹模板为了实现通过单片机进行指纹识别与记录,让指纹模板的CMOS芯片读取一次指纹的信息,接下来经过模糊处理后,分别产生两种记录信息,即0和1,然后通过指纹模块的FLASH芯片,把生成的记录信息储存起来。进入识别模式时,CMOS芯片通过读取指纹,对比与FLASH芯片里已有的记录信息,看是否有对应的信息,如果有则显示出对应指纹的编号,没有则会显示没有此指纹,请重新按下手指。图2-4和图2-5为指纹模块的主要部分组成。 图2-4 指纹识别模块部件组成(1) 图2-5 指纹识别模块部件组成(2
20、)2.3 矩阵键盘模块图2-6 按键电路为了完成按键接口设计,有的设计会采用独立式按键这个方法,还有一种方法是矩阵式键盘。因为独立式按键是一个个独立的按键,所以每一个按键都对应的输入线都是唯一的。6如果本设计使用独立式按键,对IO的资源会产生很大的浪费,考虑到本系统设计需要用到较多的按键,为了让系统更可靠,键盘设计更简单,本系统选择用矩阵式键盘且通过软件消抖减少其对单片机对应产生的影响。本系统设计的矩阵键盘模块的电路如图2-6,当按键处于按下的状态时,呈现低电平。确定按键是否闭合取决于其在电压上电平的高低,高电平就是断开,低电平就是闭合。7当有按键被按下的时候,无法避免的是会产生不同程度的抖动
21、,本系统设计增加了消除电平抖动这一功能,目的主要是保证CPU只确定一次按键这个动作,也可以避免受到干扰,图2-7表示按键断开或闭合前后的电压。消除抖动分硬件消除抖动和软件消除抖动,有的设计是通过双稳态电路或者滤是通过波消抖电路来消除抖动,也就是硬件消除抖动;有的设计在首次确定有按键被按下时,利用延时程序消除抖动后再明确这个按键是不是依然处于闭合状态,是就可以确认这个按键处于闭合状态,因此达到消除抖动和避免受到干扰的影响就是软件消除抖动。8有键按下前沿抖动 按键确定 后沿抖动图2-7 按键抖动行线和列线构成了矩阵式键盘,单片机想要读取出哪个按键处于被按下的状态,可以从接收性线,或从列线上电平发生
22、的变化来确定。因为按键处于行、列的交叉点,所以当按键处于被按下的状态时,对应的交叉点连通其行线和列线上的电平就会产生相应的变化。本系统设计在实现按键检测方面,用的是逐行扫描法,其中列线是PB1、PB10、PB11、PB12,行线是PB13、PB14、PB15、PA8。具体过程为:1、确定有没有按键处于被按下状态。首先规定所有行线为输出口,而列线为输入口,然后确保所有行线输出的是低电平,这时判断是否有按键处于被按下状态,可以通过检测列线的电平状态实现,检测哪一列电平状态为低,那么对应的按键就是处于被按下状态。如果没有按键处于被按下状态,这时对应被按下的按键是处于电平为低的列线与四条行线,形成交叉
23、点对应的四个按键中,所有列线的输出电平都是高。 2、找出被按下的按键的具体位置。首先要进行按键消抖处理,以免有信号受到干扰。在确定有按键处于被按下状态的情况下,按顺序规定输出口为每条行线,且输出的是低电平,此时输出高电平的是剩下的行线,接下来按顺序检测每一根列线的电平状态,如果有一列线输出低电平,那么这条列线和规定输出低电平的那一条行线的交叉点对应的按键就是处于被按下状态的按键。 3、确定了被按下的按键具体位置之后,用计算法编码对矩阵键盘的每一个按键进行编号。2.4 液晶显示模块12864液晶显示屏是本系统设计应用的液晶显示模块,在其他同类型的液晶显示模块中,选择用12864液晶显示屏的原因不
24、仅是它的显示程序和硬件电路结构都更加清晰、简单,而且它的价格更加优惠。CPU和LCD12864之间可以直接进行接口,其可显示的分辨率可以达到12864,可以显示文字和图案。LCD12864共有20个引脚,各个引脚的说明如表2-8。表2-1 LCD12864引脚编号符号引脚说明编号符号引脚说明1VSS电源地11D4Data I/O2VDD电源正极12D5Data I/O3VO液晶显示对比度调节端13D6Data I/O4RS数据/命令选择端(H/L)14D7Data I/O5R/W读/写选择端(H/L)15PSB并/串选择H并行L串行6E使能信号16NC空脚7D0Data I/O17RST复位,
25、低电平有效8D1Data I/O18NC空脚9D2Data I/O19A背光电源正极10D3Data I/O20K背光电源负极2.4.1 控制器接口说明1)基本操作时序:表 2-2 基本操作时序输入输出读状态RS=L,RW=H,E=HR0D7=状态字写指令RS=L,RW=L,D0D7=指令码,E=高脉冲D0D7=数据读数据RS=H,RW=H,E=H无写数据RS=H,RW=L,D0D7=数据,E=高脉冲无2) 状态字说明表2-3-1 状态字说明STA7STA6STA5STA4STA3STA2STA1STA0D7D6D5D4D3D2D1D0表2-3-2 状态字说明STA06当前数据地址指针的数值S
26、TA7读写操作使能1:禁止 0:允许当需要进行读写操作时,应该先对控制器做读写测试,确定STA7为0。一般情况下,液晶控制器的反应速度并没有单片机操作的速度那么快,所以可以用简短延时来代替读写测试。2.4.2 指令说明当读取BF标志为零时,即模块内部的状态处于非忙碌状态,可以接受新的指令。如果BF标志没有被检查,通常会与前一个指令相隔比较长的时间之后再发出新的指令,以确保已经完成前一个指令。如果不变更“RE”位元,在使用相同指令集的情况下,不需要去重设“RE”位元。因为“RE”位元不仅控制基本指令集,还控制扩充指令集,发生改变后,只要“RE”位元不再做出改变,其后面的指令集最后的状态将维持不变
27、,具体指令介绍:1)清除显示RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH功能:把显示屏幕清除,调整DDRAM位址计数器为“00H”2)位址归位RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLHX功能:调整DDRAM位址计数器调整“00H”,游标回原点,对显示DDRAM没有产生影响3)位址归位 RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLHI/DS功能:调整DDRAM位址计数器为“00H”,游标回原点,对显示DDRAM没有产生影响:执行该命令后,显示在屏幕的第一行是所设置的行。Z地址计数器控制显示起始行,并且Z地址
28、计数器接受这个命令自动送入的A0-A5位地址,起始地址行数在0以上且不超过63。Z地址计数器还有一个功能是循环计数,可以实现行扫描同步显示的功能,扫描完一行后会自动加1。4)显示状态 开/关RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLHDCB功能:D=1;整体显示ON C=1;游标ON B=1;游标位置ON5)游标或显示移位控制 RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLHS/CR/LXX功能:设定游标的移动与显示的移位控制位:这个指令并不改变DDRAM的内容6)功能设定 RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLHDLX0
29、 REXX功能:DL=1(必须设为1) RE=1;扩充指令集动作 RE=0:基本指令集动作 7)设定CGRAM位址 RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC0功能:设定CGRAM位址到位址计数器(AC)8)设定DDRAM位址 RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLHAC6AC5AC4AC3AC2AC1AC0功能:设定DDRAM位址到位址计数器(AC)9)读取忙碌状态(BF)和位址 RSRWDB7DB6DB5DB4DB3DB2DB1DB0LHBFAC6AC5AC4AC3AC2AC1AC0功能:读取忙碌状态(BF)可以
30、确认内部动作是否完成,同时可以读出位址计数器(AC)的值 10)写资料到RAM RSRWDB7DB6DB5DB4DB3DB2DB1DB0HLD7D6D5D4D3D2D1D0功能:写入资料到内部的RAM(DDRAM/CGRAM/TRAM/GDRAM) 11)读出RAM的值 RSRWDB7DB6DB5DB4DB3DB2DB1DB0HHD7D6D5D4D3D2D1D0功能:从内部RAM读取资料(DDRAM/CGRAM/TRAM/GDRAM) 12)待命模式(12H) RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH功能:进入待命模式,执行其他命令都可终止待命模式 13)卷
31、动位址或IRAM位址选择(13H) RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLHSR功能:SR=1;允许输入卷动位址 SR=0;允许输入IRAM位址 14)反白选择(14H) RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLHR1R0功能:选择4行中的任一行作反白显示,并可决定反白的与否15)睡眠模式(015H)RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLHSLXX功能:SL=1;脱离睡眠模式 SL=0;进入睡眠模式16)扩充功能设定(016H)RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLLHHX1R
32、EGL功能:RE=1;扩充指令集动作 RE=0;基本指令集动作 G=1;绘图显示ON G=0;绘图显示OFF17)设定IRAM位址或卷动位址(017H)RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC0功能:SR=1;AC5AC0为垂直卷动位址 SR=0;AC3AC0写ICONRAM位址18)设定绘图RAM位址(018H)RSRWDB7DB6DB5DB4DB3DB2DB1DB0LLHAC6AC5AC4AC3AC2AC1AC0功能:设定GDRAM位址到位址计数器(AC)2.4.3 12864引脚与单片机连接图2-8 12864引脚与单片机连接实现
33、数据显示是液晶显示模块的主要功能,开始显示程序前,一定要进行初始化,不然显示模块会出现问题,没有办法正常的显示。当液晶模块接受指令前,单片机要确定模块的内部是非忙碌状态,接下来再依据接受的指令,在屏幕上显示对应的内容。(1)根据RS判断是写数据,还是写命令。如果要显示具体内容,那就是写数据。如果要显示液晶的光标,或者让光标闪烁,或者移屏,以及液晶显示的具体位置,那就是写命令。(2)读或写控制端设定为低电平,也就是写模式。(3)把写好的数据或者写好的命令输送到数据线上。(4)完成写操作的最后一步是把数据输送液晶控制器,这时候需要给E一个高脉冲。第三章 系统软件的设计3.1 软件运作流程本系统设计
34、的电路板,是以单片机为控制器嵌入系统当中。此软件开发由对指纹识别模块的软件开发和12864液晶、矩阵键盘模块的软件开发两个部分组成。本系统设计的主程序以调用子程序的方式进行程序开发,也就是用C语言分别编写关于指纹识别模块的子程序和编写关于12864液晶模块的子程序。本系统设计是在Keil单片机软件开发环境中将单片机编程,之所以选择Keil这个软件,一个原因是这个编译器可以把源程序分为几个模块来编写,然后通过编译器再合成一个文件,另一个原因是它可以对软件进行仿真调试,也就是程序的编写和调试起来相当方便,文件调试通过之后,单片机会用开发板来下载。主程序的初始化在单片机被通电的时候同时被完成。当主程
35、序对液晶初始化的时候,必须同时检测是否有按键处于被按下状态,因为这是电路的功能要求。如果有按键处于被按下状态,这时需要进行相对应的操作,单片机用串行接口来读写指纹模块。3.2 主程序流程图程序的运作过程是:首先初始化各个模块,检测有没有按键被按下,如果有,判断出来是否应该调用对应的子程序。主程序设计流程图如图3-1所示。开始初始化输入指纹输入按键处理数据驱动电路LCD12864显示结束图3-1 主程序流程图3.3 部分模块程序设计3.3.1 矩阵键盘模块程序设计本系统设计用的是按键44的矩阵键盘,由数字区0123456789*#和英文字母区ABCD组成。如图3-2所示。图3-2 矩阵键盘电路本
36、系统设计,*表示删除;#表示确定;A表示进入设置界面,设置界面是用来增加或者删除指纹,还有手动开锁和修改密码;B无意义;CD表示返回。数字区的作用是输入密码,从而进入设置界面或者驱动继电器来实现开门锁。矩阵键盘模块的工作流程图如图3-3所示。开始等待按键按下N有按键被按下延时消抖判断有无按键被按Y按键数据处理结束图3-3 矩阵键盘模块流程3.3.2 液晶显示模块程序设计液晶显示模块实现的功能是显示数据,也就是根据受到的指令,显示对应的内容。液晶显示模块程序流程图如图3-4所示。开始初始化写命令写数据结束图3-4 液晶显示模块程序流程3.4 Keil编程本系统设计是用Keil uVision2对
37、单片机进行编程,Keil可以编译C源码以及源程序,其代码生成效率高,生成代码紧凑且易理解。10Keil软件的主要工作流程为:1、 首先创建一个新的工程,并且在器件库中选择STM32F103的c8t6这个单片机型号;2、 然后新建一个text文件,命名为main.c,接下来在Target 1的子文件Source Group 1中添加main.c文件。3、 接下来就是设置单片机的工作频率为9600MHz,步骤如下:点击图3-5所指的地方后,会有对话框弹出,之后在Xtal后输入9600。11图3-54、 接下来是hex文件的生成,步骤如下:点击图3-6的Output,选择Create HEX这个选项
38、。图3-65、 用C语言创建源程序。6、 运行调试程序,修改源程序中存在的错误,然后烧写程序。第四章 硬件的调试4.1 焊接电路 依次按顺序焊接,首先是电阻,然后电容器,接下来二极管、三极管,然后是集成电路、大功率管,最后剩余的元器件的顺序是看其面积大小,优先焊接相对小的元器件,然后再焊接相对大的元器件。部分元器件需要注意的事项:4.1.1 电容器的焊接电容器因为其类型不同导致其焊接顺序不一样,电解电容器可以放在最后去焊接,首要焊接的是玻璃釉电容器,然后可以焊接有机介质电容器,接下来是瓷介质电容器。电容器要根据图解来安装并规定位置,对于有极性的电容器要尤其注意它的正负极,清楚表示出电容器上标记
39、的方向。4.1.2 二极管的焊接焊接二极管时,尤其注意其阴阳极,以及二极管的型号的标注要清楚的表示出来。立式二极管的最短引线,焊接时间要控制在两秒以下。124.1.3 三极管的焊接焊接三极管时,最关键的一点是在插接e、b、c三条引线的位置的时候要确保无误。还有尽量缩短焊接时间,可以利用镊子来夹住它的引脚线,这样有助于散热。如果要焊接功率比较大的三极管,需要用到散热片的时候,首先通过打磨使接触面变得光滑,然后再进行固定,这样做可以让接触面变得光滑;如果需要加垫绝缘薄膜时,切记要加薄膜。最后,一定要使用塑料的导线去连接电路板和管脚。4.1.4 集成电路先根据图解,确定型号和引脚的位置相符合且正确,
40、就可以开始焊接。焊接的时候,可以先焊接边沿的引脚,这样可以让它稳固,之后再从左往右、从上到下去按顺序一个一个焊接。在焊接电容器、二极管和三极管时,最好整齐地剪掉电路板上会有多余的引脚。4.2 调试小灯、继电器接通电源后,查看电源的指示灯是否有被电路,确保电源电路正常。接下来在Keil编译让小灯每一秒删一次的代码,烧写进单片机,如果小灯实现对应编译的功能,则单片机和小灯运作正常。这时候就可以再增加与继电器连接引脚电平高低变化的程序,用来测试继电器运作起来是否正常。4.3 液晶的调试4.3.1 液晶的注意事项(1)模块适宜存放的温度是0到35,适宜存放的湿度是低于70的环境。当12864液晶在处理
41、机械振动的时候不要对它施加外力,否则会破坏屏幕显示的功能。(2)为了不破坏显示屏上的偏光片,要避免显示屏被尖锐的东西接触到。当需要清洁显示屏时,可以用棉花蘸一点石油苯来擦干净或者用透明胶带粘去脏的东西。(3)如果显示屏破裂,接触到流出来液晶材料时,要马上用酒精冲洗一遍,然后用清水再冲洗干净。(4)使用的过程中,控制好电源电压的偏差和输入电压的偏差及温度湿度,控制在低于最大的额定值,不让12864液晶会报废。4.3.2 调试12864液晶通电后,如需调节液晶屏的对比度,可以通过完成12864液晶屏背面电位器的调节来实现。如果有小方格出现在12864液晶屏时,有两种可能性,第一种是它的对比度太大,
42、这个时候就要调整一下对比度的电阻。还有一种可能性就是在程序中,液晶的初始化指令没有正常接收,这个时候可以根据标准的初始化步骤,重新调整程序,也可以尝试一下加大指令之间的延时。结论本文主要介绍了基于STM32单片机的指纹识别密码锁的系统设计,运用到的单片机是STM32F103C8T6;在录取、存储和识别指纹方面,通过AS608指纹模块来实现;显示利用12864液晶来实现;录入和识别信号通过矩阵键盘按键来辅助完成;继电器及小灯是用来提示指令是否完成。基于单片机的各部分硬件电路是根据各个模块的工作原理被设计,而在程序编程方面,即整个系统设计的功能是通过Keil软件实现。本系统设计可以完成指纹的录入、储存和识别,所以可以应用在密码柜、密码门等。随着科学的发展,本系统设计还需要不断创新和完善。参考文献1刘小华,王燕生.指纹识别技术的发展J.光学技术.1998,23(04):78-80.2王春蕾,周美娇,易淑友.基于ST