基于51单片机的智能门锁设计与实现
摘 要 中文摘要
随着智能家居的出现,智能门锁作为智能家居中的一个主要部分,对于人们的居住安全起到很好的防护作用,但是目前市场上存在的智能门锁,虽然能够满足一定的用户安全需求,但是在使用的过程中也存在一定的安全隐患。因此,本次设计以STC89C54单片机为控制系统,设计一款具显示功能、指纹模块功能、IC卡等多种功能的智能门锁,不仅满足了大部分用户的使用安全要求,同时也增加了智能家居的安全性。图20张,表3张,参考文献16篇。
关键词:51单片机;智能密码锁;报警功能;设计与实现
I
Design and implementation of intelligent door lock based on
51 MCU Abstract
With the emergence of smart home, smart door lock, as a main part of smart home, plays a very good role in protecting people's living safety. However, the current market exists, and smart door lock is difficult to meet the needs of users to a certain extent. Therefore, this design uses STC89C54 single chip microcomputer as the control system to design a smart door lock with display function Fingerprint module function, IC card and other functions of intelligent door lock, not only meet the needs of users, but also increase the security of smart home. There are 20 figures, 3 tables and 16 references.
Keywords: 51 single chip microcomputer; intelligent password lock; alarm function; design and implementation
I
目 录
成果申明 ..................................................................... 错误!未定义书签。 基于51单片机的智能门锁设计与实现 .................................................. I 摘 要 ......................................................................................................... I 中文摘要 ..................................................................................................... I Design and implementation of intelligent door lock based on 51 MCU .... I Abstract ....................................................................................................... I 目 录 ........................................................................................................ II 1 引言 ....................................................................................................... 1 2 总体设计思路 ...................................................................................... 3 2.1 设计要求............................................................................................ 3 2.2 整体方案设计 ................................................................................... 3 3 硬件系统设计 ...................................................................................... 5 3.1 单片机的设计 ................................................................................... 5 3.1.1 STC89C54单片机介绍 ................................................................. 5 3.1.2 外部晶振的设计 ............................................................................ 7 3.1.3 复位电路的设计 ............................................................................ 8 3.2 液晶显示模块 ................................................................................... 9 3.2.1 12864系列液晶的引脚功能 ....................................................... 10 3.2.2 控制器接口说明 .......................................................................... 10 3.2.3 12864引脚与单片机连接图 ....................................................... 11 3.3 按键控制部分电路 ......................................................................... 12
II
3.4 指纹模块.......................................................................................... 13 3.5 IC卡模块......................................................................................... 15 4 软件设计............................................................................................. 16 4.1 主程序流程图 ................................................................................. 16 4.1.1 键盘管理程序设计流程 .............................................................. 17 4.1.2 LCD显示模块程序设计流程 ..................................................... 18 4.1.3 指纹模块的通信程序设计流程 .................................................. 18 4.2 Keil编程介绍 .................................................................................. 19 5 调试与总结......................................................................................... 20 5.1 调试 .................................................................................................. 20 5.2 总结 .................................................................................................. 21 参考文献 ................................................................................................... 22 附 录 ....................................................................................................... 24 致 谢 ....................................................................................................... 32
III
1 引言
我国对于智能密码锁的研究,起步相对较晚,从上个世纪90年代初开始对密码锁进行初步的探索。虽然我国对于智能密码锁的研究比较晚,但是发展比较迅速,目前在智能密码锁方面也取得了一定的研究成果,使得智能密码锁已经被使用在家庭、公司、金融行业等多个方面。加上智能家居的出现,智能密码锁的使用,已经成为进行智能家居推广的一个主要放行。但是这些智能密码锁需要进行特定的定制,在指纹、密码卡等方面都有着一定的要求,同时对于使用的箱子、门等智能密码锁的载体也有着一定的技术要求,使得智能密码锁在使用的过程中,成为了一种非必要性的选择。
近年来,随着人们对于安全问题的越来越重视,使用电子密码锁的人越来越多,但是目前市场上见到的电子密码锁不仅在安全性上存在一定的问题,同时电子密码锁的价格也是非常昂贵的,这造成了电子密码锁在市场中推广的困难,也增加了电子密码锁的成本。目前,市场上常见的电子密码锁采用的是触摸键盘方式进行密码锁开锁的,虽然这样的设计,给使用者带来的是一种操作简便的操作方式,但由于电子密码锁使用了弹子锁,在钥匙的携带上很不方便,因此很多人容易把钥匙丢失,加上电子密码锁的架构比较复杂,对于制作的工艺要求比较高,造成了电子密码锁成本高,安全性低等因素,因此,需要进行一款能够满足客户的使用需求的密码锁,同时也具有很强的安全性。
随着我国在电子元件方面的发展,对于电子元件在精度上的制作也越来越好,使得高精度、高安全性的电子密码锁的设计提供了一定的技术支持。从目前对密码锁的研究来看,大量的专家和学者开始向着这个方面进行研究,并取得了一定的研究成果。目前在电子密码锁的研究上,主要集中在电子密码锁的安全性的研究,电子元件的发展,也就使得电子密码锁在安全性方面得到了快速的提高,不仅使得目前大量的电子密码锁加入了感应元件,同时特使得电子密码锁在密码的设置上也区域电子加密方向,但是价格的问题也一直没有得到解决,从而造成了电子密码锁发展难的一个困境。面对这样的情况下,如何设计一个具有较高的安全性,同时在价格上也比较亲民的电子密码锁,是摆在很多电子密码所厂商面前的一个主要问题。为了更好的实现密码锁安全性和功能性,目前对于密码锁的设
1
计中,大多数都是根据这两个方面为重点方向进行。
因此,在这样的背景下,本设计根据自己大学期间学习的知识,并对智能密码锁的相关资料进行查阅,结合当前智能密码锁的应用技术,以单片机为主要的核心元件,设计一款不仅具有安全性,同时在制作、价格上比较优化的智能密码锁。
2
2 总体设计思路
2.1 设计要求
根据目前对智能密码锁的调查研究,并结合对于单片机学习,对本次进行的基于51单片机的智能密码锁的设计,其设计的要求有以下几个方面:
(1)智能密码锁在安全性上比较高,同时能够根据使用者的习惯进行密码的更换,需要进行二次输入,才能够保证智能密码锁的密码的更换。
(2)智能密码锁具有报警功能,在受到非正常情况下的打开的时候,能够进行报警处理,并及时对智能密码锁进行锁定。
(3)智能密码锁能够实现显示功能,对智能密码锁的显示功能进行安全性的设计,并能够进行数字按键的数字输入等。
(4)智能密码锁的控制电路方面,通过电路的控制,实现智能密码锁的功能化,比如在进行智能密码锁的储存、设置等方面,与传统的智能密码锁相比,具有一定的优势。
(5)智能密码锁使用的时候,需要通过密码或者指纹进行确认,如果三次以后,密码和指纹都不成功,系统会进行报警。
根据这样的设计要求,与传统的智能密码锁相比,在性能上更加的具有稳定性,在安全方面更加安全,使得智能密码锁具有很高的应用需求和很高的水平。
2.2 整体方案设计
从整体上看,整个智能密码锁的系统结构如下图1所示。
图1 系统结构图 Fig. 1 system structure diagram
在控制系统模块,本次设计以51单片机为控制系统,对密码锁进行中心控制;在指纹模块方面,使用ZFM60作为指纹模块的主要设备;在按键系统上,
3
使用矩阵按键的方式,对指纹模块进行设计;在显示模块上,本次设计中,选用12864系列液晶器作为系统的显示硬件;在IC卡模块部分,使用使用RC522为系统的IC卡模块。
在进行系统的使用中,其主要的功能有以下几个方面: 1、开机。
对系统进行通电,系统指示灯亮了之后,在显示屏上进行系统进入界面的显示。
2、指纹输入。
开机之后,屏幕上显示“请先按键再刷指纹”提示之后,再进行按键确认。 3、指纹识别。
指纹识别是对录入的指纹进行识别,在系统使用以后,对系统进行复位处理,开始进行指纹的录入,指纹的识别,具有一定的特殊性,需要在进行设计的过程中,进行专业化模块的设计。
4、密码设置。
在系统使用以后,通过键盘,进入到系统的设置模式下,可以进行密码的设置,本次设计中,使用6位数字密码。
5、指纹采集。
指纹采集,需要通过设置模块,选择到指纹录入的过程,从而进行指纹的采集,在指纹采集完成以后,可以进行指纹的识别。
6、指纹删除。
对于不需要的指纹,可以在后台管理中进行删除。
4
3 硬件系统设计
3.1 单片机的设计
3.1.1 STC89C54单片机介绍
单片机作为微型计算机的一种,常被用作一种中央处理器使用。现在生产单片机的厂商比较多,使得单片机的种类也多,在性能方面也存在一定的差异,在功能上也各不相同,有的偏向于计算,有的偏向于储存,有的偏向于读写,因此在用户选择单片机的过程中,需要用户根据自己的需求,对单片机进行选择。单片机实物图如下图2所示:
图2 STC89C54单片机实物图 Fig. 2 stc89c54 MCU Physical diagram
在本次设计中,设计的是一款智能密码锁,因此在进行单片机选的过程中,不仅需要考虑单片机的功能能否满足设计的要求,同时还需要对系统具有一定的兼容性,单片机的综合性上,要能够满足智能密码锁的运行和控制,从而保证智能密码锁的正常使用,并提供一定的功能要求。加上在进行本次设计的过程中,受到成本、环境条件等因素的影响,本次设计STC89C54单片机作为系统的控制系统,并且其成本在自己进行实物制作的过程中,是一个可以接受的价格,从而保证设计的顺利完成。
STC89C54单片机是一款由宏晶科技推出的单片机,其主要的性能有运转的速度比较快速、在功耗的消耗方面比较小,对于与其他的电路系统进行使用的过程中,STC89C54单片机具有很强的抗干扰性,也能够与设计中需要运行的指令
5
代码相互融合,在周期上具有多功能性。STC89C54单片机的主要特性如下表所示。
表1 STC89C54单片机主要特性 Table 1 main characteristics of STC89C54
序号 1 2 3 4 5 6 7 8
名称 周期 兼容性 工作电压 工作频率 用户应用程序空间
通用I/O 定时器/计数器 工作温度
特点
具有6时钟的周期特点
完全兼容
可以分为5V单片机和3V单片机
0~40MHz 8K字节 32个 共3个16位
-40~+85℃(工业级)/0~75℃(商业级)
STC89C54单片机在断电的过程中,也会进行两个的功耗消耗的,同时单片机断电以后,需要进行唤醒处理,使得单片机的效果更好,因此使得在STC89C54单片机使用的过程中,对于STC89C54单片机功耗是很多人选择的依据之一。其主要的引脚如下图3所示。
图3 STC89C54引脚图 Fig. 3 stc89c54 pin diagram
6
STC89C54单片机一共有40个引脚,在引脚中,每一个的功能都不一样,有的是进行电压连接的,有的是进行数据连接的,因此,为了更好的对引脚进行区分,其主要的引脚功能如下表所示。
表2 主要的引脚功能 Table 2 main pin functions
序号
名称
特点
在使用的时候,其主要的功能是对电源进行输出或者输入,因
1
P0口
此在进行使用的过程中,需要找准相关的I/O接口,并保证这
些结构的功能性。
2 3 4 5 6
P1口 P2口
而保证系统的稳定性。
P3口 XTAL1 XTAL2
作为系统的第二功能接口来使用。
输入端。 输出端。
一般用作输出线或者输入线来使用。
是8位准双向I/O接口,可以直接与系统的设备进行连接,从
在单片机中的第二功能的,其主要的说明如下表所示。
表3 STC89C54 P3口的第二功能 Table 3 second function of STC89C54 P3 port
端口功能 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
第二功能
RXD(串行输入口) TXD(串行输入口) INT/0(外中断0) INT/1(外中断1) T0(定时/计数器0) T0(定时/计数器1) 外部数据的储存 外部数据的读写
3.1.2 外部晶振的设计
在单片机系统里面,为了更好的实现单片机的运行,并配合单片机所需的时
7
钟频率的使用,因此需要对单片机的晶振进行设计,通过晶振的设计,使得单片机在执行命令的时候,其执行的命令的都是具有一定的规律性,符合单片机的时钟频率。
在单片机进行工作的过程中,在通常工作条件下,通过时钟电路,为单片机提供一个时钟信号,使得单片机和系统在功能上能够同步的进行,为了更好的保持系统的统一性,单片机晶振在精度上的要求都比较高,一般的单片机晶振精度都是在百万分之五十,有的精度比这个还要高,这样的高精度单片机晶振,为单片机的整体的运行,提供了一定的稳定性。
在本次设计中,通过STC89C54的外部晶振电路,指需要进行一个晶振的连接,从而实现两个电容的控制,为中使得单片机的效果达到最好,电容容量的取值为30PF,并在XTAL1,XTAL2两个引脚上,与外部进行连接,从而形成一个具有反馈作用的元件晶体,其外部晶振电路连接如下图4所示。
图4 外部晶振电路
Fig. 4 external crystal oscillator circuit
对于晶振频率的选用,本次设计中晶振频率选择为11.0592MHZ,在周期上,选择的振荡周期为1us,对设计的总体要求来看,这样的选择能够满足设计的需求。
另外,在设计中需要注意的是,在设计的晶振部分,不能够离单片机的具体太远,如果距离太远了,对于信号的接受效果不是很好,从而影响整个单片机系统的使用。
3.1.3 复位电路的设计
在单片机系统的使用中,通过使用置位和复位这两个功能,使得控制系统回
8
到最初的位置上,在进行复位电路连接的过程中,需要注意的是连接的引脚不能够出现错误,避免引脚的错误导致复位电路不能够进行正常的工作。其复位电路如下图5所示。
图5 复位电路 Fig. 5 reset circuit
从上图可以看出,为了使复位电路更加完整,实现单片机的复位功能具有有效性。在设计中电容的选取为10uF、电阻的选取为10K。
3.2 液晶显示模块
液晶显示作为一种高分子的材料,又去其特殊的物理性和化学性,因此在化学上得到官方的使用,目前市场上常见的液晶显示种类比较多,功能也多样化,为了符合本次设计的需要,在设计前,对多种液晶显示的功能和特点进行调查、对比,最后选择了体积小、能耗低、操作简单的12864系列液晶显示来作为本次设计的液晶显示模块。其实物图如下图6所示。
9
图6 12864系列液晶显示实物图
Fig. 6 12864 Series LCD
其相关的功能特点如下所示。 3.2.1 12864系列液晶的引脚功能
为了更好的增加对12864的学习,在使用的时候,进行正确的接线,因此对对12864的引脚进行介绍,其主要的引脚有:
引脚1:电源接地引脚,用于电源的接电处理; 引脚2:电源的正极引脚,用于接电源的正极;
引脚3:通过这个引脚,可以对12864的对比度进行调节,从而保证12864的正常使用;
引脚4:主要用于数据的传输; 引脚5:主要用于数据的读写;
引脚17:数据的复位引脚,进行复位功能的使用。
12864液晶显示,为了更好的对汉字进行显示,采用内置汉字的方式,以16X16点阵的形式进行汉字的显示的,因此其本身具有一定的储存功能。 3.2.2 控制器接口说明
其时序图如下图7所示:
10
图7 12864液晶显示时序图 Fig. 7 12864 LCD timing chart
在对液晶显示进行工作的时候,必须对其进行读写检测,使得在STA7上的显示为0,说明液晶显示能够开始进行工作,但是由于液晶显示的系统在反应上比较缓慢,因此在进行显示的过程中,具有一定的延时性,这一点在进行使用的时候,需要值得注意。
3.2.3 12864引脚与单片机连接图
在设计中,使用的液晶显示12864是需要与单片机进行连接的,其连接的引脚处理,如下图8所示。
图8 显示连接图
Fig. 8 shows the connection diagram
11
在显示模块部分,其主要的功能是完成设计的相关数据的显示,因此在进行使用的时候,需要对其进行初始化处理,使得显示能够进行显示,并针对显示模块设计相关的程序,在显示模块接收到指令以后,需要根据相关的设计进行显示,从而达到在屏幕上显示设计的相关内容的目的。
3.3 按键控制部分电路
为了在进行按键的过程中,使得按键达到更高的水平,在对按键进行选择的时候,需要通过前沿抖动和后沿抖动的方式,来达到相应的目的,从而实现按键消除抖动,并达到一定的抗干扰功能,矩阵键盘实物图如下图9所示:
图9 矩阵键盘实物图 Fig. 9 matrix keyboard
在进行按键部分设计的时候,其相应的设计电压如下图10所示。
图10 按键闭合及断开前后的电压
Fig. 10 voltage before and after key closing and opening
为了更好的对电路进行检查,在设计中,对电路进行检查,根据其电路图进行。
12
图11 按键电路 Fig. 11 key circuit
从上图可以看出,按键电路主要有两个部分,一个是电源线路,另外一个是列线线路,对其进行检查,其过程为:
1、对键盘中是否有键进行判断的处理。
在使用的时候,需要对电路中进行低电平输出的处理,使得数据的读取能够处于一个列线上,从而让到电路中只有只要有一列的低电平状态,其他的线路都为高电平,通过这样的方式来进行判断。
2、判断被按下按键所在的位置。
在对位置上的判断中,通过对低电平的检查,实现系统的多功能性,在程序上需要进行逐一的检查,使得按键功能完整,从而进行按键位置的设置,因此在进行处理的过程中,需要针对这些进行。
3、按键程序的处理。
在对按键进行确认了以后,需要结合矩阵键盘的设置规范,对按键的程序进行处理,在设计中,可以对按键程序进行计算法的处理,从而实现按键程序的处理。
3.4 指纹模块
指纹模块的使用,要实现指纹的录入、删除、识别等功能,综合本次设计的需求,本设计选用ZFM60为指纹系统,其实物图如下图12所示:
13
图12 ZFM60实物图
Fig. 12 zfm60
其电路如下图13所示:
图13 ZFM60电路图 Fig. 13 zfm60 circuit diagram
在进行使用的过程中,需要和单片机的P3.0和P3.1进行连接,保证指纹模块的有效使用。
指纹模块通过加入DSP芯片的使用,使得系统更加的完整,并执行相关的操作命令,从而实现指纹模块的储存和记忆。其工作的流程为:
1、扫描指纹,通过指纹的扫面,对指纹进行录入处理;
2、指纹生产,通过相关的记忆和储存功能,使得系统生存相应的指纹,从而实现指纹的识别;
3、建立指纹库,对于录入的指纹,可以进行多人指纹的录入,并建立相应的指纹库,从而实现指纹识别的多样性。
在本次设计中,通过对ZFM60进行分析,可以看出,其主要技术指标有一下几个方面:
1、ZFM60的供电电压一般在3.8-7V之间;
14
2、使用ZFM60的时候,需要进行接口的处理,保证接口的正确性; 3、ZFM60的工作电流小于65mA,因此在使用的时候,要注意进行区别; 4、ZFM60的安全等级为3级,在使用的过程中,要保证在这样的安全等级下进行使用。
指纹模块引脚接法为:
为了很好的实现指纹模块的功能化,对ZFM60进行引脚的连接,其主要的使用的引脚有以下几个:
1、电源引脚,用于接入电源,通过系统需要的供电; 2、数据信息引脚,用于进行数据的接收和传输;
3、外部接入引脚,用于与外部元件进行连接,本次设计中,需要与单片机进行连接。
3.5 IC卡模块
在本设计中,使用RC522为系统的IC使用。其实物图如下图14所示:
图14 RC522实物图 Fig. 14 real object of rc522
RC522的电路图如下图15所示。
15
图15 RC522电路图 Fig. 15 rc522 circuit diagram
RC522支持多种接口处理,为了使用上的方便,本次设计选用SPI接口。RC522在进行工作的过程中,根据自己的时序要求下出发,在模式上为从模式的方式进行,在传输速率方面,RC522的速率为10Mbps,为了保持这样的低平状态,在时钟要的数据接受和传送需要达到同步的要求,因此在进行电路图的连接中,需要注意RC522各个引脚的电路连线。
16
4 软件设计
4.1 主程序流程图
为了更好的让硬件部分进行运行,需要对其见软件部分的设计,在本次设计中,其软件部分的设计主流程图如下图所示:
图16 主程序流程图 Fig. 16 main program flow chart
16
从图中,可以看出,在进行主流程判断的过程中,需要对各个模块进行初始化的处理,再进行其他模块的识别,其主要的流程有:
1、对是否有按键进行判断:如果有按键,需要通过指纹或者密码来进行按键判断,从而达到按键处理的目的。
2、按键A:使用常规的操作模式,对按键进行设计,输入6位密码以后,并按#号键来对密码进行确认,如果密码正确,那么密码所进行开启,如果密码错误,那么返回上一步。
3、按键B:在指令中对密码进行识别,从而确定密码的功能性,对不同的密码进行对比,并储存已经录入了的指纹密码。
4、登录后台管理以后,可以对系统进行设置,保护对密码的修改,以及对密码进行第二次录入。 4.1.1 键盘管理程序设计流程
键盘的使用,对于系统的使用具有一定的方便性,因此,为了保证键盘的正常使用,对其软件流程进行设计,如下图17所示:
图17 键盘程序流程图 Fig. 17 keyboard program flow chart
17
在进行按键的时候,如果没有执行相关的,那么会返回初始的第一步,因此,在进行处理的过程中,需要增加对按键的判断命令,如果按键正确,对按键进行分析,并执行相关的程序;如果按键错误,返回到初始模式。 4.1.2 LCD显示模块程序设计流程
显示模块的使用,是为了在进行系统使用的过程中,对使用的执行命令在进行直观上的体现,给人一种更加方便的感觉。
图18 显示程序流程图 Fig. 18 shows the program flow chart
首先,对显示模块进行初始化处理,从而进入到初始化的界面,并把相应的命令录入到显示模块中,对相应的数据进行读取,从而实现显示模块的初始化功能。
4.1.3 指纹模块的通信程序设计流程
指纹模块的程序,是通串口通信的方式进行的,其流程图如图19所示。
18
图19 指纹模块流程图 Fig. 19 fingerprint module flow chart
1、对指纹模块的数据进行发送,如果发送的数据是正确的,相关的程序会接受到程序的指令,并对这些数据进行指令发出,在系统收到指令以后,根据指令的数据,进行功能的实施;
2、如果在系统接受到错误的指令,需要进行上一步操作,错误指令出现了3次以后,对系统进行锁定。
4.2 Keil编程介绍
KeilC51是美国的Keil Software公司所设计的一款用于单片机开发的程序,与其他程序相比,KeilC51不仅具有容易学习、功能性强等有点,同时还能够完美和单片机系统进行融合,对于单片机的选择更加的具有优势,在后期的维护处理上,也更好的使用到后期的维护。Keil软件的使用,由于其融合性强,因此在进行使用的过程中,可以把软件和相关的开发环境进行使用,从而达到使用的效果更好的作用。
19
5 调试与总结
5.1 调试
对系统硬件部分进行装配,得到实物如下图所示:
图20 系统实物图
Fig. 20 physical diagram of the system
利用相关的编程软件,对电路进行方式处理,其主要的过程有: 1、检查原理图。根据设计中的硬件部分,对接一个硬件中的原理图进行检查,使得每一个硬件连接正确,从而保证系统的有效性。
2、在进行仿真的过程中,录入系统的电路以后,如果有电路错误的情况,需要及时的进行修改,并保证电路的运行成功。
对系统进行调式,其调式的过程有:
1、对硬件系统的组装进行检查,看系统整体性是否组装正确; 2、对硬件部分的焊接进行检查,特别是有外部电路的部分,焊接的处理上是否能够正确的运用焊接的方法;
3、对系统进行烧录程序,并运行相关的程序,检测其功能是否达到设计的要求;
4、对系统的数据电路进行调式,检查调式结果,并及时的进行修改;
5、在调式的过程中,如果调式的结果出现错误,因此需要对调式进行检查,直到调式结果正常为止。
20
在调式的过程中,出现的主要问题和解决方法有:
1、在调式的过程中,部分电路的焊接存在松动的情况,需要对电路进行重新焊接,并保证电路的完整;
2、在系统的运行中,数据的显示出现蓝屏的情况,经过检查,发现显示部分的连接电路不正确,查找相关的电路手册,其显示模块进行重新连接,从而避免蓝屏的情况出现;
3、在指纹模块的录入中,出现读写错误的情况,经过检查,发现录入模块的引脚连线不正确,对指纹模块引脚重新连接后,指纹模块录入功能得以实现。
5.2 总结
本次设计将我所学的知识充分的应用到了生活实践上去,和以前设计的相比,此次设计难度更加大,对我的考验也更大。
在本次设计中,对智能门锁的设计不仅包含了系统的硬件部分设计,同时也包含了系统的软件部分设计,设计过后对系统机型调式,其调式的结果显示,智能门锁能够正常的运行,能够实现智能门锁的安全性,使得本次设计能够应用到生活中。通过这次设计,发现自己还是有很多不足的地方,还要加强对专业知识的学习和对实际操作的练习。单片机领域是无边无际的,我们还要慢慢摸索,碰到问题解决问题,不断的提升自己的能力,不辜负老师对我们的期望。
21
参考文献
[1]贾广政,魏东,王永顺.智能门锁身份识别系统设计与开发[J].计算机工程与设计,2019,40(07):2094-2102.
[2]李瑞松.基于AT89C51单片机的智能门锁控制系统的设计分析[J].科技创新与应用,2020(27):91-92.
[3]罗淑娟.基于PIC单片机的智能锁芯设计关键研究[J].现代经济信息,2019(02):415.
[4]李楠,尹睿,董佳康,苏鹏,马奔.基于单片机的无线智能门锁系统设计[J].电子测试,2018(04):18-19.
[5]符锐.基于PIC单片机原理的智能锁开发设计[J].电子技术与软件工程,2015(08):125-126. [6]符锐.基于PIC单片机原理的智能锁开发设计[J].电子技术与软件工程,2015(08):125-126. [7]张学龙,张金菊.基于MIFARE技术的实验室身份识别系统设计[J].湖南工业职业技术学院学报,2016,13(06):1-3.
[8]王永,马运领,马志刚,周烽.基于AT89C51单片机的智能门锁控制系统的设计[J].自动化与仪表,2017(03):77-80.
[9]谭志强.采用EOC88104单片机的智能门锁设计[J].河北工业大学成人教育学院学报,2016 (02):10-13.
[10]张学龙,张金菊.基于MIFARE技术的实验室身份识别系统设计[J].湖南工业职业技术学院学报,2013,13(06):1-3.
[11]张潇,王锋,马海华.APP控制智能电磁门锁系统的设计与实现[J].物联网技术,2019,9(02):88-89+94.
[12]周少铧,吕群芳.基于蓝牙的智能门锁控制系统设计[J].数字技术与应用,2016(10):18. [13]王斌.基于单片机的智能控制电子门锁设计[J].产业与科技论坛,2016,15(16):45-46.
[14]Cypress.Alarm design based on intelligent door lock, American science and technology[J].2018(07)33-35.
[15]Analog. Design and implementation of Bluetooth intelligent door lock based on MCU[J]. Electronic technology and software engineering,2019(22):37-39.
[16]Device. Design of intelligent door lock based on eoc88104 MCU[J]. Electronic technology and software engineering,2019(24):78-83.
22
23
附 录
相关设计代码 #include #define uchar unsigned char #define uint unsigned int #define buffer1ID 0x01 #define buffer2ID 0x02 #define queren 0x48 #define tuichu 0x18 #define shanchu 0x82 #define User 1 uchar Card_type[20]; sbit k2=P3^7; sbit jidianqi=P3^6; sbit beep=P3^2; * 名称 : PassWord_Chack() * 功能 : 所有用户密码检测 * 输入 : 无 * 输出 : 密码正确与错误,错误返回0,正确返回1 ********************************************************************/ uchar PassWord_Chack() { uchar i=0; 24 while(i void SFG_fastsearch(uchar bufferID) //搜索指纹返回指纹ID号 sum、pagenum>255都会使程序卡@@@ { } void addfinger() { uchar IDa1,IDa2,IDa3; LcmClearTXT(); PutStr(1,2,\"请按手指\"); SFG_getimage(); while(querenma!=0) SFG_getimage(); UART_Init(); SFG_genchar(buffer1ID); 25 SCON= 0x50; //串口方式1 //REN=1; 允许接收 PCON=0x00; //SMOD=0 TMOD= 0x21; //定时器1定时方式2 TH1= 0xFD; //11.0592MHz 模块默认波特率为9600bps TL1= 0xFD; TR1= 1; //启动定时器 EA=1; } PutStr(0,0,\" 欢迎使用 \"); PutStr(1,0,\" 多功能门禁锁 \"); PutStr(2,0,\" 请输入密码: \"); UART_Init(); SFG_fastsearch(buffer1ID); while(querenma==1) SFG_fastsearch(buffer1ID); if(querenma==0) { LcmClearTXT(); PutStr(1,1,\"该指纹已存储\"); PutStr(3,0,\" 按任意键继续\"); while(Keycan()==0); void Administrator(void)//管理员模式 { uchar i,j=0,x=1; uchar Right_flag; LcmClearTXT(); PutStr(1,1,\"请输入密码:\"); } //显示LCD12864并行显示 if(K==11) //按了删除键 //指定第三行显示位置 WriteCommand(0x89); WriteData(0x20); WriteCommand(0x89+j); //指定第三行显示位置 WriteData(0x20); UserPassword[i]=mima[i]+0x30; } if(j==6){Right_flag=PassWord_Chack(); } if (Right_flag==1) { Right_flag=0; while(Key!=tuichu) { 26 PutStr(0,0,\"按键1 : 添加指纹\"); PutStr(1,0,\"按键2 : 删去指纹\"); PutStr(2,0,\"按键3 : 卡片管理\"); PutStr(3,0,\"按键4 : 修改密码\"); Key=Keycan(); KeyDeal(Key); switch(K) case 1: addfinger();K=6; break; case 2: deletfinger();break; case 3: kapianguanli();Key=0;continue; case 4: gaimima();break; default: break; PutStr(1,2,\"密码错误\"); PutStr(2,0,\" 请重新操作!\"); PutStr(3,0,\" 按任意键继续\"); while(Keycan()==0); } Key=0; LcmClearTXT(); PutStr(0,0,\" 欢迎使用 \"); PutStr(1,0,\" 多功能门禁锁 \"); PutStr(2,0,\" 请输入密码: \"); init_rc522(); //RC522初始化 UART_Init(); //串口初始化 x24c02_init(); //24C02初始化 //check = x24c02_read(0x68); delay(10); // if( check != 1 ) // { 27 // // // // // // // // // // // // // // LcmInit(); //LCD12864初始化 LcmClearTXT(); //LCD12864清屏 PutStr(1,2,\"初始化中...\"); check = 1; x24c02_write(0x68,check); for(i=0;i<6;i++) { } for(i=0x38;i<0x68;i++) { x24c02_write(i,0+0x30); delayms(10); x24c02_write(i,0+0x30); delayms(10); LcmInit(); //LCD12864初始化 LcmClearTXT(); //LCD12864清屏 PutStr(0,0,\" 欢迎使用 \"); PutStr(1,0,\" 多功能门禁锁 \"); PutStr(2,0,\" 请输入密码: \"); Right_flag=0; j=0; while(1) { for(i=0;i<6;i++) //密码读取缓存清空 mima[i]=0; // // Key=Keycan(); while(Key!=0X48) //等待按下确定键后跳出 { shuaka(); 28 if(k2==1) { } //检测指纹 shuazhiwen(); j=0; Key=Keycan(); KeyDeal(Key); //delay(10); if(Key==0x88) { } Administrator(); if(Key==0) //没有按键按下,K赋值为10,什么都不执行 K=10; //有数字键按下 if((K>=0)&&(K<=9)) { mima[j]=K; if(j<6) { //将按键值放入数组 WriteCommand(0x99+j); WriteData(0x0f); //指定第四行显示位置* else //密码错误,继续进入while循环检测指纹、寻卡、 等待确定键按下 { LcmClearTXT(); PutStr(1,2,\"密码错误\"); PutStr(2,0,\" 请重新操作!\"); beep=0; delay(300); beep=1; 29 delay(2000); LcmClearTXT(); PutStr(0,0,\" 欢迎使用 \"); PutStr(1,0,\" 多功能门禁锁 \"); PutStr(2,0,\" 请输入密码: \"); j=0; } Key=0; } //按键值清零 30 原理图 31 致 谢 本次论文完成之际,感谢我的大学—贵州民族大学给我一次学习的机会;感谢我的任课老师,对我四年的教诲。 非常感谢特别用心,特别有责任心的张凯琳老师,如果不是张凯琳老师适时的监督和悉心的指导,那么我的论文工作肯定是很难完成的。自从论文工作开展以来,老师总是及时将学校或者系里安排的任务落实到位,对于每次小组同学论文编写中存在的共同问题,老师也会及时反馈到群里并给出宝贵的意见。更难能可贵的是老师如果在QQ上没收我们回复的消息时,她就会电话联系我们,确保每个同学都收到群里的消息,而且对于我们每次提交的论文材料,老师总是及时批改和指导,且整个过程中都是那么的耐心仔细,哪怕只是一个小小的标点符号或者空格老师都能注意到,这份用心真的很让人感动,也是特别荣幸有这样一位指导老师。尤其是我,在整个论文撰写过程中遇到了很大的知识上的问题,老师知道后,便为我推荐了相关的教材,同时也给我提供了一些相关的文献阅读材料,非常感谢老师的用心付出。最后感谢组里小伙伴,每次我需要帮助时,她们都会积极帮助我,也因为他们的带动和帮助,我的论文才能更加顺利的完成,谢谢大家! 32 因篇幅问题不能全部显示,请点此查看更多更全内容