指纹识别智能锁系统软件设计在本次系统设计中, 软件设计主要分为三部分, 主程序设计, 串口通信程序设计以及舵机控制程序设计。主程序设计是整个系统的程序设计,在这个部分,介绍了主程序的设计思想与工作流程,串口通信构建了整个系统通信的基本网络,实现了核心控制芯片与指纹识别传感器模块以及GSM通信模块的通信, 舵机控制程序实现核心处理芯片对舵机的控制,使得舵机实现了正转反转的动能,由于舵机的转动角度可以通过程序来调控,在本设计中, 主程序中舵机转动的角度设定为 90° 。4.1 下位机程序设计4.1.1 主程序设计在主程序中, 先对整个系统进行初始化, 系统初始化时, 初始化系统的串口模块、中断模块以及与硬件连接的IO 口。系统初始化完成以后,系统将不断向指纹识别传感器模块发送1:N指纹对比模式的控制指令,这样使得系统处于指纹对比识别的模式, 加入按键作为中断源, 如果固定按键按下, 核心控制芯片将发送添加指纹的指令到指纹识别传感器模块,这时候传感器会添加放在上面的手指的指纹, 添加命令执行之后, 指纹传感器模块会将成功或者失败通过串口通信返回至核心控制芯片,如果添加成功,系统继续运行1:N指纹对比识别模式,如果失败,系统将继续处于添加指纹模式,以便于用户的继续添加。系统处于 1:N指纹识别模式时,会对放在指纹传感器上的手指进行扫描,并与数据库中已有的指纹图像进行对比,如果对比通过, 指纹传感器模块将会通过串口通信的方式向核心控制芯片反馈回对比成功的指令,核心控制芯片通过定时器设定,在固定引脚输出方波,实现对舵机的控制,使得滑块滑开,如果对比失败,指纹传感器也会向上位机反馈对比失败的指令,在主程序中, 我们设定了一个变量 I ,I 的初始值为 0,当指纹识别对比失败一次时,I 的值加一,如果指纹识别失败次数大于五次, 即 I>5 时,核心控制芯片将通过串口向GSM通信模块发送命令,使GSM模块向预设的电话号码发送预先设定好的报警短信。当I>5时,或者指纹识别通过,I 的值将被清零,并在下次进行指纹识别是重新计算。具体主程序流程图如下图所示。图 4.1 主程序流程图4.1.2 串口通信程序设计在本设计中,将使用两组串口分别对不同模块进行通信,他们的原理相同,在系统初始化的时候,将串口2 设置为 9600 的波特率, 8bit的数据位, 1bit的停止位,无校验位,实现了核心控制芯片与GSM通信模块间的通信,再通过GSM通信模块实现了指...