毕业设计 基于51单片机的指纹采集识别系统的设计


🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机的指纹采集识别系统的设计

1 系统硬件电路设计

1.1 系统主电路设计

1.1.1 主体电路设计

本课题由单片机作为系统的控制核心,系统总体电路图如图1.1所示。另外主要的模块有指纹识别模块、按键模块、液晶显示模块。指纹采集模块包括了DSP处理器和AS608指纹传感器采集头,负责完成指纹特征的采集,键盘模块由一个 4*4 的矩阵键盘构成,对整套系统下达指令操作。液晶显示模块用于方便用户直观查看操作页面,以及返回的提示信息,起到人机交互的作用。其他还有一些小的模块,存储信息的存储器模块和蜂鸣器报警模块。

图1.1 系统总体电路图

1.1.2 单片机最小系统设计

构建一个单片机的最小系统,那么必须满足一些要求:第一必须要有电源、时钟电路和复位电路,这三项是单片机最小系统的核心电路,其次要有单片机的主芯片、程序下载电路和I/O口负载电路用于数据输入和输出。这样一套系统才能够满足使用者使用,下载,调试的要求。

图1.2 STC89C52引脚图

如图1.2所示,52单片一共有40个管脚,其中32个端口可供使用,P0口在本课题中与数据存储单元相连FLASH编辑时,P0口需要接收指令,所以连接一个排阻做上拉电阻,P1、P2口连接矩形键盘和显示屏,做输入口使用,P3口在52单片机中拥有很多重要的第二功能。

表1.1  52单片机P3口说明

端口名称

第二功能

P3.0

串行数据输入口

P3.1

串行数据输出口

P3.2

外部中断0

P3.3

外部中断1

P3.4

定时器0输入

P3.5

定时器0输出

P3.6

外部存储器写功能

P3.7

外部存储器读功能

电源电路:这对于一个电子产品是必不可少,维持整个系统运转。在本课题中由于52单片机的工作电压在4.5~5.5V之间,在接通电源后,构成一个接口电源的简单滤波电路。因为开关电源的输出电压波纹相对较大,因此需要先完成滤波[6]。

图1.3 晶振电路电路图

晶振电路:如图2.3所示,C2和C3是负载电容和晶振构成单片机的晶振电路,电容是用来改变晶振的频率和幅度。52单片机要求负载电容在20pf到40pf之间才可以,如果能达到30pf,那将是电容的最佳取值。晶振的取值大约在1.2~12MHz 之间,但可以更高,要求并不是特别严格,最高达到24MHz也没有问题,只是耗能也会相应地增多。由于AS608指纹识别模块与52单片机采用的是串口方式进行通讯,选用11.0592MHz晶振可以产生9600波特率,误差可以忽略不计[7],所以本课题就采用的是11.0592MHz 的石英晶振。焊接时这三个元件应尽量靠近单片机的管脚,可以有效减少线路上寄生电容对晶振产生影响。

复位电路:电路图中和电容并联的按键就是复位按键,52单片机是高电平复位,没被摁下之前需要上电复位,正常工作后摁下按键,使单片机的第九个管脚(RST)出现高电平达到手动复位的效果,这需要持续两个机器周期以上的高电平,才可以实现。当上电的瞬间,电容开始充电,电阻会产生压降,RST管脚检测到电阻上端变成高电平,这时单片机各个系统复位。

1.2 单元电路设计

1.2.1 传感器单元

AS608是光学指纹传感器,由高性能的 DSP 处理器和 FLASH等芯片构成,具有指纹图像处理、模板提取、模板匹配、指纹搜索和模板存储等项功能。一般是由8 部分组成:传感器阵列、偏置、ADC、DAC、振荡器、系统时钟产生器、芯片接口与控制、控制器。

图1.4 传感器实物

传感器阵列由许多采集单元组成,作用就是把芯片采集到的指纹转化为电信号。经过 ADC 转化器进入单片机,单片机系统会根据收到的图像是否清晰而对传感器阵列进行一定调节,系统通过下达不同指令让该模块完成所需要的功能。系统数据传输、发送指令以及应答都必须按照严格规定的数据包格式来实施。

操作可分为三类:数据包、命令包和结束包。系统必须按照这样的格式封装好发送的指令数据,才能使传感器正常工作。

图1.5 AS608电路原理图

如图1.5所示,TXD数据发送端口与单片机P3.0相连,RXD数据接收端口与单片机P3.1相连,AS608不再需连接任何外围部件,本身已经是完整的指纹识别模块。

1.2.2 显示屏单元

LCD12864是一款带有中文字库的的点阵图形液晶显示模块,其内部含有国标一级、二级简体中文字库,显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8的字符集[8]。一共有20脚的接口,显示出的字符其实就是将对应数据写入显示屏内部的DDRAM模块上的过程。利用这种简单、方便、灵活的接口方式和的操作指令,既可以显示点阵的汉字,也可以图形显示。在显示屏设计过程中和其他系列的液晶屏比较,这款不论硬件电路结构或显示程序都要简洁得多,只需占用单片机一个端口就可以完成。

表1.2 LCD12864接口说明

编号

名称

引脚说明

编号

名称

引脚说明

1

VSS

电源地

11

DB4

三态数据线

2

VDD

电源正极

12

DB5

三态数据线

3

V0

对比度调整

13

DB6

三态数据线

4

RS(CS)

显示数据

14

DB7

三态数据线

5

R\W

读\写选择端

15

PSB

传输方式

6

E

使能信号

16

NC

悬空

7

DB0

三态数据线

17

RESET

复位端,低电平有效

8

DB1

三态数据线

18

VOUT

驱动电压输出端

9

DB2

三态数据线

19

A

背光源正极

10

DB3

三态数据线

20

K

背光源负极

数字电路中,数据全部都的是用0和1表示的,显示过程中中文要比英文显示难的多,因为英文字母只有26个,每个只需要8位的一字节就可以完成显示。但是常用的汉字有几千个,显示起来比较复杂,英文字符只要占用1个字节,中文字符需要占用2个字节[9]。所以要设计好显示点在液晶屏上的位置与其在存储器中的地址之间的关系,这样对应的汉字将相应的点阵信息写入到对应的存储单元中,才可以完成汉字的显示。

图1.6 LCD12864与单片机接口图

单片机与显示屏的接口电路如图1.6所示,LCD12864显示屏的三态数据端口D0~D7和单片机的P2.0~P2.7连接,读写端口与单片机P3.4口相连,显示数据的端口与单片机P3.5口相连,都是通过产生高低电平控制数据,控制系统的数据显示,当高电平时读取数据,低电平时候写数据,LCD_EN 使能端与单片机的 P3.3相连,用来控制显示屏的亮度。VDD 接+5V电源,VSS 接地,19 脚为液晶接+5V背光电源正端,20 脚接电源负端。

1.2.3 数据储存器单元

AT24C02是一个2K位串行CMOS E2PROM,内部含有256个8位字节[10]。

表1.3AT24C02管口说明

管脚名称  

功能

A0,A1,A2

器件地址选择

SDA

串行数据/地址

SCL

串行时钟

WP

写保护

Vcc

+1.8V~6.0V工作电压

Vss

接地

AT24C02的芯片固定部分的地址为1010,A0~A2引脚在接通电平后会得到确定的3位编码,与1010相结合所组成的7位编码就是这个器件的地址码[11]。
    当单片机开始写操作的时候,会先发送该器件的7位地址码和写方向位“0”,一共八位,发送完成后在SCL线上产生第9个时钟信号;被选中的存储器器件在确认是自己的地址后,在SDA线上产生一一个应答信号作为相应,单片机收到应答后就可以传送数据了。

在开始工作的时候,单片机会先发出一个字节,存储器存储区的首地址写入,在字节地址后自动加1[12],随后存储器发出应答信号后,单片机开始发送下一个字节,但每发送一个字节后都要等待应答,收到应答信号后再发送下一个。如图2.7所示,单片机先发送7位地址码和写方向位“O”,通过释放存储器串行数据端口在SCL线上产生信号[13],在确认了信号是传给自己的后,发出回复信号。这款存储器的写次数可以达到一百万次,当输入的字节数量过大时,远远超过了芯片的承载数时,数据地址将会上卷覆盖掉之前的数据,直到数据全部写完,单片机会终止写入。

图1.8 AT24C02电路原理图

如图1.8所示,AT24C02共有八个管脚,SCL串行时钟和SDA双向串行数据地址两个管脚用于输入和输出数据,A0~A2用于设置器件地址,必须接到VSS上。WP管脚用于写保护与VCC相连。

1.2.4蜂鸣器单元

本课题的蜂鸣器选用5V电磁式有源蜂鸣器和一个PNP型8550三极管连接到单片机的P3.7口,三极管的发射极与蜂鸣器的负极相连,三极管的基级通过电阻与单片机相连[14],蜂鸣器发声原理是电流通过电磁线圈,所以蜂鸣器工作的时候所需要的电流一般都比较大,如果连接的电流过小,可能蜂鸣器无法发出报警信号,本设计用的电流就无法带动蜂鸣器线圈震动I/O口无法直接驱动,这时候就需要引入一个三极管开关电路来驱动。当I/O口输出高电平时,三极管不导通,没有电流流过,蜂鸣器不发声,当输出的是低电平时,三极管导通,蜂鸣器鸣叫[15]。

1.2.5 矩形键盘单元

本课题需要使用到一个4*4的正方形矩阵键盘,本课题采取了这种做法虽然比直接连接要复杂一些,焊接起来也要更加小心,但因为操作中要使用较多的按键,出于节省空间和单片机I/O口使用数量来考虑,采用矩阵法来作键盘是合理的,使用一个单片机端口就完成该模块设计。

表1.4矩形键盘指令说明

键值

第一列

第二列

第三列

第四列

第一行

0*11

0*12

0*14

0*18

第二行

0*21

0*22

0*24

0*28

第三行

0*41

0*42

0*44

0*48

第四行

0*81

0*82

0*84

0*88

图1.9 矩形键盘接口图

如图1.9所示,键盘的每条线在交叉处不直接连通,而是使用一个按键加以连接。产生的16位按键与单片机的P1.0~P1.7接口。使用一个端口就可以构成,比直接与单片机端口连接节省了很大的空间和端口使用,行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。

1.3 驱动电路设计

继电器驱动电路在系统中主要起着保护电路以及调节转换电路的作用,继电器是一种可以传递信号的电器,一个自动控制的系统电路中必须有能够对系统的各种参数状态进行逻辑判断的电器元件,这就是继电器在本课题出现的原因。它可以通过输入较小的电流来控制过大电流的输出,一旦异常可以继电器可以吸合保护电路。在本课题中继电器在运行时的吸合电流可能最高要达到40mA左右,而单片机输出电流一般只有4~20mA范围内,这个时候直接控制无法驱动,我们增加一个可以使电流放大电路。本课题选用PNP型三极管进行电流放大,当单片机I/O口输出的是高电平时,三极管不导通,没有电流流过,继电器断开,反之如果是低电平,三极管导通,继电器吸合[16]。

图1.10 继电器驱动电路图

2 项目组装与调试

2.1 系统硬件调试

首先进行硬件电路焊接,过程中注意与原理图仔细对照,因为本设计的布线较密,元器件放置的顺序需格外注意,不然焊锡容易连接到其它元器件的引脚,可能导致元件损坏。

焊接完成后先检查STC89C52单片机及其晶振、复位等外围电路,必须保证这一部分的系统核心电路可以正常工作,才能保证系统正常运行,功能得以实现。先断开单片机电路与电源、液晶、指纹识别的连接检查 I/O 口是否连接正常,确保无短路、开路故障。检测时根据万用表在二极管档位时,使用红黑表笔相碰,出现报警这个原理进行对短路、断路、虚焊这些情况的检查。

报警电路主要检测蜂鸣器发出声音是否正常、三极管与单片机的接口连接,先使用万用表二极管档位检测一下三极管是否正常。之后可在电路中将三极管的集电极C和发射极E短接,听蜂鸣器是否可以发出声音来判断其好坏,同时声音大小是否合适,如果声音小就查看电压是否正常。

键盘单元为连接在P0端口的一组矩阵键盘,列线、行线分别连接单片机的 P1端口的八个管脚。用万用表检一下和单片机之间接口连接,并且逐个检测16个按键开关是否正常,检查是否存在按键本身不好使或者由于焊接这部分较为复杂,出现内部短路问题。

2.2 软硬件联调

图2.1  keil5编译界面

在软件调试完成后,点击编译,当文件正常运行,会在底部显示无错误,但如果显示的是“error”,还会显示有几处错误,就要根据提示找到错误的地方并改正,直到运行无问题。

图2.2  项目实物图

把编写好的单片机程序下载进去,将系各个元器件部分与单片机相连,打开电源开关,进行调试。通过调试,密码3次输入错误可以启动蜂鸣器进行报警,当密码正确输入,需要进行下一步的指纹的比对,同样指纹不匹配也不能显示,错误三次进行报警。通过多次调试可以得出结果,该系统受密码和指纹的双重保护,各项测试全部合格,符合预期的全部功能,完成了基于单片机指纹识别系统的设计。

2.3 调试遇到的问题及解决

在整个系统调试过程中,采集指纹这一块可能会受到一些外部因素影响,比如手指接触的力度、干湿情况、指纹的接触面积不同都会导致识别失败,在第一次没有成功的情况下,不能马上判断是程序代码有问题,还需进行第二次的尝试。

液晶显示屏出现花屏现象,在前几次调试过程中每次执行下一个口令时,液晶屏都会出现花屏乱码现象,无法按正常出现应有的字符。在检查了连线没有问题后,翻看了液晶手册,重新检查了一遍程序代码后发现,造成这种情况的原因是因为字库显示和绘图显示两种显示方式有一些不同,找到相关的程序进行了修改,当每次操作字库显示或者绘图显示时先将另一种显示方式清除,这样就解决了这个问题,开机后没有再出现花屏。

图2.3系统流程图

图2.4 指纹传感器程序流程图

图2.5矩形键盘程序流程图

如果你有任何问题、需要建议或解决疑难,别客气噢,随时找我求助或寻求支持。我专注于单片机相关的知识,可以提供电子设计、嵌入式系统、编程和硬件方面的宝贵帮助。不管你的问题属于哪个领域,都可以向我咨询啦,获取有针对性的建议和指导。祝愿你在单片机设计领域取得巨大成功!

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值