汪老师分享 - 51单片机压感式指纹识别系统的仿真与设计


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

第二章 总体方案及硬件设计

2.1 STC89C52单片机系统设计

简单来说,用最小的元器件构成的,并且能让单片机正常使用的系统,就是单片机的最小系统。本节会对51单片机最小系统所具备的元器件及其功能作简要地介绍。

最开始介绍的是电源,通过查询51单片机的相关参数,我们可以知道当电源电压处于4.5~5.5V的范围内时,51单片机能够正常地运行,所以在本次设计中,我们可以使用USB数据线,来给单片机提供电源。

然后我们简要地叙述一下晶振电路,晶振电路中有两个引脚[4],分别是XTAL1(反相放大器输入端)、XTAL2 (反相放大器输出端),这两个引脚不是相互依存的关系,它们彼此独立。在图2.1所示的晶振电路中,如果把定时元件与上述的两个引脚相连通,那么就会出现自激振荡的现象,这种现象出现在电路内部振荡器中。这种模式叫做室内时钟模式,相当于一个利用芯片内部的振荡电路。普遍来说,晶体振荡器频率的选取范围是不小于1.2MHz,不大于12MHz,频率的高低决定了功耗的大小,所以我们在选择晶体振荡器时,要根据功耗的大小选取合适的频率。在本实验套件中由于AS608指纹识别模块与单片机直接采用的是串口方式进行通讯,而且选用11.0592MHz的晶振能够产生9600波特率0%误差,所以采用的是对振荡频率的影响非常小的,11.0592MHz的石英晶振。

图2.1 晶振电路

最后介绍的是复位电路,复位电路有两种形式,分别是上电自动复位,开关复位。如图2.2所示,图中的复位电路显示的是在通电的瞬间,在这两种复位模式的电路中,电容器两端的电压,不能够进行突然地变化,这个时候对复位电路进行分析,电路中的复位键与电容的负极相连通,电路中的电压全部作用于R1,复位键处于高输入状态,芯片复位。接下来,在电容器C2充电的过程中,R1上的电压呈下降趋势,最后降到几乎等于0,芯片能够正常运行,复位按键与C2是并联的状态。

2.2 复位电路

完整的STC89C52单片机最小系统电路图如图2.3所示。

图2.3 STC89C52单片机最小系统

2.2 LCD12864液晶显示电路设计

LCD12864原理图如图2.4所示。

图2.4 LCD12864原理图

LCD12864,也称为12864点阵液晶显示模块(LCM),它也可以简称为12864,因为LCM的每一行横向一共有128个液晶显示点[5],每一列纵向一共有64个液晶显示点,就组成了一个阵列,大小为128列*64行。这个阵列中的每一个液晶显示点,都有一个二进制数与之相对,“0”表示显示点熄灭,“1”代表显示点亮起。显示数据存储器,我们更加熟悉的名字是RAM,在RAM中存储着这些液晶显示点的相关信息。我们如果要在液晶显示屏上,显示出我们所需要的图案或者文字,我们就要在RAM储存单元中,录入与之相对的图案或文字所对应的相关信息。

在市场上,绝大部分液晶显示模块的驱动电路的组成:一个行驱动器、两个列驱动器[6],12864液晶显示屏也是这样,它的左右分别有两个相互独立的64行*64列的液晶显示屏。

2.3 AS608指纹识别模块设计

原理图如下图2.5所示。

图2.5 单片机与AS608连接电路

AS608,一个具备整体性能的指纹识别模块,不需要与其他的外围部件连接,模块在整个设计中一直处于附属地位,主机会下达各种指令给模块,模块根据不同的指令来实现不同的功能。主机下达的命令、模块的响应和数据之间的交接,都必须遵循格式固定的数据包。

2.4 AT24C02的介绍

AT24C02芯片实物图如图2.6所示。

图2.6 AT24C02芯片实物图

2.4.1 AT24C02的引脚说明

AT24C02时钟芯片引脚功能描述见表2-2。

表2.1 AT24C02引脚

引脚

名称

功能

1~3

A0、A1、A2

这些脚处于悬空状态时,它默认为0。最多可级联8个器件。当只有一个AT24C02被总线寻址时,这三个地址输入脚(A0、A1、A2)可以悬空,也可以GND相连通。

4

GND

接电源地

5

SDA

双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其他开漏输出或集电极开路输出进行线或(wire-OR)。

6

SCL

串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。

7

WP

如果WP管脚连接到VCC,所有的内容都被写保护只能读。当WP管脚连接到GND或悬空允许器件进行正常的读/写操作

8

VCC

接+1.8V~6.0V电源

2.4.2 AT24C02的工作原理

通过相关的资料,我们可以对AT24C02有一个基础的认识。我们对它进行简要地介绍,其基本容量的大小为2Kb,AT24C02在正常运行时提供两种查寻地址的方法,一种芯片寻址[8],另一种是片内子地址寻址。

AT24C02读/写操作时序图如图2.7所示。

图2.7 AT24C02读/写时序图

在图2.8中我们可以看到有A0、A1、A2三个引脚,在本课题的设计中,电路中只需要使用到一个上述芯片,所以就可以直接将这三个引脚与地线进行连接,而WP作为保护引脚,在电路中通用,也接到地线上[9],提供写/擦除保护。时钟SCL和数据线SDA就分别接到单片机的两个引脚上,电路图如图2.8所示。

图2.8 AT24C02电路图

2.5 矩阵键盘的设计

我们在此次设计中采用了矩阵键盘,选择它是因为在操作中,会有许多按键的使用,需要占用的单片机的I/O口较多,为了更加地直观方便,就把按键排列成矩阵的样式。在矩阵键盘中,每条行线和列线在相交时不会直接连接,在它们的交汇处会有一个按键,通过按键来将两条线加以连通。于是任一端口都是由4*4=16个按键所组成,按键数是直接用端口线的键盘的两倍。所以当我们在设计过程中,需要更多按键的时候,使用矩阵键盘是一个非常不错、可行的选择。矩阵键盘电路图如图2.9所示。

图2.9 矩阵键盘电路图

4*4矩阵键盘的16个按键对应的功能表如3-3所示。

表2.2 矩阵键盘对应功能表

1

2

3

进入管理

4

5

6

选择上一项

7

8

9

选择下一项

退格

0

确定

返回

2.6 蜂鸣器电路的设计

通过挑选,采用的蜂鸣器,是有源蜂鸣器,其型号为5V电磁式。与蜂鸣器正常运行时相比,单片机的I/O口的输送出来电流比较小,所以需要在电路中添加一个三极管开关,来保证蜂鸣器的正常工作。从各方面进行考虑后,本次选取的是8550三极管。在三极管基极,将R4(1K)与单片机的I/O口进行串联。8550三极管能够根据I/O口的状态完成对蜂鸣器的控制,当其处于低电平的状态时,三极管导通,驱使蜂鸣器发出声音;当其处于高电平的状态时,出现与之相反的现象。蜂鸣器电路如下图2.10所示。

图2.10 蜂鸣器电路

2.7 继电器驱动电路设计

继电器,从它的名称就可以看出,是一个通过电来掌控的元器件。在日常生活中,我们经常把它用在需要自我调控的电路中。更加通俗来解释,继电器就相当于一个自动开关,它可以通过小电流的输入,来对大电流的输出进行调控。因为继电器的这些特征,它在电路中可以对电路进行自我调控,还能在电路出现问题时断开,对电路及其元器件进行一个保护。

因为51单片机从IO口输送出来的电流较小,而继电器正常工作时,所需要的电流要比51单片机从IO口输送出来的电流大,所以单片机不能直接对继电器进行驱使。这时,我们需要在电路设计中,加入一个电流放大电路。

2.11 继电器驱动电路

如图2.11所示,在本设计中采用的是S8550三极管,它的作用是进行放大,S8550三极管可以通过单片机IO口的状态来实现对继电器的控制,当其处于高电平的状态时,三极管截止,控制继电器断开,当其处于低电平的状态时,则出现相反的的现象。

2.8 系统总体方案

通过简要的介绍,对上面各个模块有了一个基本的了解后,我们确立了最后的总体方案,本次课题设计的主控芯片是STC89C52;为了更好地、及时地显示操作的内容及其提示,选取的是LCD12864液晶显示;为了方便使用对象能够对密码进行设置,对采集的指纹信息进行管理,还在设计中加入了对指纹进行辨识的功能;要对指纹密码锁进行一些操作时,比如对指纹密码锁进行解除锁定状态,或者改用新的密码时,使用的是矩阵键盘输入的方法。本设计的具体的系统方案如下图2.12所示。

图2.12 系统方案

第四章 系统应用与实际效果

4.1 系统调试与应用

4.1.1 硬件组成的调试和应用

首先,进行的是系统的硬件电路的调试,主要内容是对电路进行检验,先检查电路有无设计错误,再看具有方向性的元器件的方向是否安装错误,最后检查由于粗心,在电路中经常出现的电路短接、部分元器件遗忘焊接、电路断开、虚焊假焊等失误。

对于部分元器件遗忘焊接、弄错方向性元器件方位的问题,检验的方法:将焊接完成的线路板与PCB图的线路进行对比,观察焊接完成的线路板上的每一个元器件和导线的位置,是否出现遗漏、位置错误、方向弄错等问题。如果出现了上述问题,应及时地通过对照后进行补焊。

在平时的实验中,我们经常采用数字万用表,来检测电路中是否出现电路短接、电路断开、虚焊假焊等情况的出现。检测的原理是当数字万用表处于二极管档位时,红色表笔和黑色表笔相互碰触,数字万用表的蜂鸣器会发出报警声。我们将黑红两根表笔接在我们所要检验的元器件或者导线的两端,如果电路是导通的,万用表会发出警报,如果电路是断开的,万用表不会发出声音。然后将我们所需要检验的问题,与检验出来的现象相结合,再分析,就能够检查出线路中存在的问题。

图4.1 线路板焊接图(左)和指纹密码锁PCB图(右)

4.1.2 系统软件的调试

在编写指纹密码锁的系统程序时,都是使用KEIL这一软件来完成的,将程序编写结束后,在上述软件中生成HEX文件,然后把该文件传输到PL2303下载器中,最后把文件下载到单片机中。然后就是不断地进行调试,反复修改和完善整个程序,使系统达到更佳的运行的状态。

图4.2 Keil调试图

接下来,是我在调试过程中遇到的一些问题与对应的解决方法:

(1)LCD12864在运行时出现画面重复的现象。

对于这个问题的解决方法是:在本次课题的硬件组合的安排中,选择的是LCD12864的字库显示,还有图形绘画显示,最开始的时候,我理所当然地认为,LCD12864的显示屏上要么显示的是字库内容,要么呈现的是图形绘画的内容,上述两者中只会呈现一个,但是结果出乎我的意料,这两者的内容在显示屏上同时呈现了出来,且这两者的内容在显示屏上相互交叠后,就导致了LCD12864显示屏上出现画面重复的情况。后来通过查阅相关资料,知道了这两者呈现内容的工作原理不是一致的,了解到这一点后,就对程序进行了一些改动,在其中一个内容被呈现的时候,先会进行对另一个内容的清理,然后再进行反复地调试,成功地解决了出现画面重复的问题。

(2)虽然已经知道了如何读得在矩阵型键盘上的按键,但是在我们的设计中,还是需要把读得的每个按键的值与其一一对应,再给予其特定的功用。如果直接采取用人工来进行计算的方式,不仅会产生巨大的工作量,而且在计算的过程中,十分微小的计算失误都会导致问题的出现,就会在调试的过程中花费大量不必要的时间。所以需要找到一个更加简洁的方法。

解决方法:我们可以利用本设计中存在的显示器件,在显示器上直接把读得的健值进行呈现,然后分别按下每一个按键,显示器上就会显示一个与之相对应的健值码,最后我们将这些健值码一一进行记录,记载完成后,再集中设计功能给每一个按键。这样既能大大减少工作量,节约时间,也能保证结果的正确性。

4.2 实际运行效果

在历经系统总体方案的设计,系统硬件组合的设计与调试,对PCB电路的改进,以及软件程序的检测和完善等开发工作后,设计制作出的指纹锁密码锁,各种技术指标基本上实现了最初预案的标准和需求,对指纹的辨识速度较快,辨识效率也比较高,以脱机模式运行的时候,功耗的大小也在规定的范围内,硬件系统板的整体大小也是适宜应用到实际中的。系统基本上能够平稳、牢靠地进行运行和工作。指纹密码锁的实物图如图4.3所示。

4.3 实物图

如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值