基指纹IC卡楼宇门禁系统设计
Design of building access control system based on fingerprint IC card
容摘
着科技发展生活水提高现中国社会家庭物质财产十年质飞跃提高防盗意识提升锁具安全系数成务急传统机械锁构造简单已许久没技术更新导致安全系数降撬事件屡见鲜反观电子锁出现智时代势趋保密性高灵活性安全系数高智门锁算强行破门失窃情况配合智设备监控嫌疑生物特征进行采集期案件侦破重帮助
设计旨设计款基stc89c52单片机集成指纹认证IC卡认证智密码锁设计stc89c52微控制处理器芯片作控采指纹识模块IC卡认证模块组成安全认证系统通矩阵键盘输入电子密码设置指纹密码解锁IC认证两种解锁方式采LCD12864液晶进行显示交互反馈测试结果表明系统项功已达设计求
关键字:防盗安全智门锁stc89c52单片机IC卡
Abstract
With the development of science and technology and the improvement of people's living standards the material property of the family in China has made a qualitative leap over the past decade It is an urgent task to improve the awareness of antitheft and the safety factor of locks In the past the traditional mechanical lock because of its simple structure and no technical update for a long time leads to the decrease of safety factor There are many cases of being prized In contrast the emergence of electronic lock is the general trend of the coming of the intelligent age It has high security good flexibility and high safety factor Even if the intelligent door lock is broken by force it can cooperate with other intelligent devices such as monitoring to collect the biological characteristics of the suspect in the case of theft It is of great help to the investigation of later cases
The purpose of this design is to design an intelligent password lock based on STC89C52 which integrates fingerprint authentication and IC card authentication In this design STC89C52 chip is used as the main controller and fingerprint identification module and IC card authentication module are used as the security authentication system Fingerprint password unlocking and IC authentication can be set through the electronic password input by matrix keyboard LCD12864 liquid crystal is used for display and interactive feedback The test results show that all the functions of the system have reached all the requirements of the design
Key words Anti theft security intelligent door lock STC89C52 single chip microcomputer IC card
目录
第章 引言 2
11 前言 2
12 行业背景 3
13 设计特点 3
第二章 系统设计 5
21 硬件模块选择 5
22 系统整体设计 8
第三章 系统硬件电路设计 9
31 stc89c52系统设计 9
32 LCD12864液晶显示器电路设计 10
33 AS608指纹识模块电路设计 12
34 蜂鸣器电路设计 13
35 电磁继电器电路设计 14
36 整体电路设计图 15
第四章 系统软件设计 16
41 软件开发环境 16
42 函数设计 16
43 指纹通信设计 19
44 LCD12864显示设计 21
第五章 测试 22
第六章 结 23
参考文献 24
致 谢 25
附 录 26
第章 引言
11 前言
着科技发展生活水提高现中国社会家庭物质财产十年质飞跃提高防盗意识提升锁具安全系数成务急传统机械锁构造简单已许久没技术更新导致安全系数降撬事件屡见鲜反观电子锁出现智时代势趋保密性高灵活性安全系数高智门锁算强行破门失窃情况配合智设备监控嫌疑生物特征进行采集期案件侦破重帮助
回顾锁历史画卷锁中华文化中历史悠久锁历史远追溯中国五千年前仰韶文化时期时已锁诞生商周时期锁较文字记载春秋战国战争发诞生促机关术发展促锁技术发展发展速度说突飞猛进锁技术逐步发展出现诸青铜锁叶片锁弹子锁等机械结构锁具 目前常门锁便弹子锁叶片锁发展改进实叶片锁弹子锁技术早公元8世纪便出现通现代机械工业设计思想进行次技术提升结构升级然说现锁具门非常非常艺术熟知门锁解三类相信知道三类锁具设计师偷开锁匠成熟开锁匠开生活常锁具仅仅需分钟
传统锁具脆弱实纯机械结构构成设计提高复杂度旧法避免锁锁间趋性目前锁具实未真正拥防盗智门锁兴起必然通生物特征数字加密做独二安全防护
12 行业背景
着科学技术进步物联网技术出现智硬件两年快速民众中遍技术进步降低智家居设备生成成越越家庭开始智化生活着科学技术进步门锁已传统铜制纯机械结构机械锁具发展出夹杂着现代电子科技类门锁甚脸解锁
智门锁说智家居入门类产品重产品智门锁年发展说非常迅速行业断技术探索智门锁未越越明显发展趋势逐渐明朗两年间国家智门锁开始井喷式爆发 生物特征技术快速发展迅速提高智门锁安全级众生物特征认证技术中指纹认证说老牌生物特征认证技术稳定安全认证技术指纹识应场景银行取款道手机支付说指纹财产保护特征认证手段指纹识作广泛生物特征认证技术早已渗透进生活点点滴滴指纹生活中常种身份认证手段便IC卡认证水卡饭卡校卡身份证银行卡类IC卡开发款基指纹认证智门锁安全系数稳定性市场性十分明智选择
13 设计特点
设计旨设计款基stc89c52单片机集成指纹认证IC卡认证智密码锁设计stc89c52微控制处理器芯片作控采AS608指纹识模块IC卡认证模块组成安全认证系统通矩阵键盘输入电子密码设置指纹密码解锁IC认证两种解锁方式采LCD12864液晶进行显示交互反馈
单片机微控制器MCU普通逻辑芯片相区基础计算机硬件系统集成片芯片具体包括数运算处理CPU机存储RAM读存储器ROMIO口中断务系统定时器计数器功说完整微型计算机单片机计算机相缺少许外部设备接口许高级功拓展正丰富拓展性定制性成智硬件应芯片块芯片稍加拓展成台基础计算机设备单片机体积质量轻价格十分便宜应开发提供许便利条件
次设计基指纹IC卡楼宇门禁系统特点
(1) 户通指纹认证者IC卡认证进行开门动作
(2) 户输入理员密码进行添加删新户信息
(3) 通矩阵键盘输入理密码
(4) 进入理员界面修改理员密码
(5) 密码输入错误会进入锁死状态然蜂鸣器警报开启
第二章 系统设计
21 硬件模块选择
211 控芯片选择
方案:STM32F103微控制处理器STM32F103微控制处理器芯片意法半导体生产设计STM32F系列基ARM32位微控制处理器芯片中低端微控制处理器市场F103系列中入门级微控制处理器芯片
方案二:MSP430单片机MSP430微控制处理器德州仪器公司设计芯片具优点超低功耗超高信号处理力集成套精简指令集(RISC)常规单片机具备美国德州仪器公司特点处理芯片集成MSP430MSP430款具出色混合信号处理力MCU常规单片机相较 德州仪器(TI)公司针电信号处理实际需求MSP430里集成高精度模拟数字信号处理电路优良特点集成高效DSP处理器单片机微处理器集成MSP430单芯片提供单片机DSP优秀综合设计方案
方案三:STC89C52RC单片机STC89C52RC微控制处理器芯片款8位单片机微控制处理器芯片STC公司设计STC89C52RC微控制处理器芯片MCS51指令架构核拥51优良传统特点超低功耗高性STC公司MCS51指令架构核做优秀改良升级STC89C52RC微控制处理器芯片继承老牌51单片机功优点51没创新功STC89C52RC置8KFlash足够存储般基数STC89C52RC性拥常规8 位CPUSTC89C52众嵌入式设计特控制类应设计频繁采
方案分析:首先stm32f103c8t6款32位微控制处理器芯片32位结构说明具超高运算性设计控芯片需负担量数字运算选取更低成低数位MCU次MSP430单片机混合信号处理控制芯片通常MSP430常信号处理DSP居常控制领域适合作设计控芯片选定stc89c52rc作控芯片stc89c52作老牌单片机芯片具稳定低功耗8位性足胜设计指令处理工作
212 键模块选择
方案:矩阵键盘矩阵键盘单片机设计中常外部输入设备矩阵结构普通键样中断检测方法常矩阵键盘检测方法般扫描法常矩阵键盘般列线识通外接电阻接单片机芯片VCC口然行线接单片机芯片检测IO口
方案二:电容式感应触摸键触摸键盘具扁化美观化特点键反馈传统键盘
方案分析:设计采矩阵键盘作输入设备设计稳定性安全性高求电容式薄膜键盘会手指出汗手湿空气湿润等原导致误触矩阵键盘解决问题矩阵键盘键回弹力够更提供户反馈体验
213 IC卡读写模块选择
方案:型号MF RC522读写模块IC卡读写模块中发射低电压低成尺寸非接触读卡器芯片MF RC522读写模快1356MHz频段非接触场通信频带场通信模块具集成高端dsp处理力IC卡读卡器
方案二:DK25L读写模块DK25L读写模块基1356MH2 高频卡读写模块 采UART 通讯接凵 兼容性 通性强户通UART 模块发送简单指令实现NFC 卡片进行读写操作 简单易 户该模块高效快速开发NFC 读写功产品
方案分析:次设计IC卡模块选择更加成熟更加安全MF RC522体积更
214 显示模块选择
方案:液晶显示器型号LCD1602LCD1602电子设计中常显示器件显示字符图案液晶显示屏(LCD)驱动电路组成驱动电路般带少量电阻电容器件作显示屏稳定工作保障
方案二:液晶显示器型号LCD12864LCD12864电子设计中常显示器件显示字符图案液晶显示屏(LCD)驱动电路组成驱动电路般带少量电阻电容器件作显示屏稳定工作保障LCD12864设计初带中文字库简单说LCD12864液晶显示屏宽128高64LCD液晶单元组成液晶点阵通通入电流点亮应lcd液晶单元绘制分辨率128*64图置字库灵活绘制出文字交互界面
方案三:led数码led数码早接触显示器件7LED半导体发光元器件数字排列组成 8字型器件显示数字1234567890支持显示部分英文字母AEC等等
方案四:LED机半导体显示器型号OLED12864OLED技术年科技发展新产物种优良显示材料OLED1286显示OLED面板驱动电路组成驱动电路般带少量电阻电容器件作显示屏稳定工作保障
方案分析:选定LCD12864模块作设计显示反馈窗口首先智门锁交互显示字符元素繁数字中文英文等等种繁杂字符见LED数码显然适合设计LCD1602液晶显示器LCD12864液晶显示器选择显然LCD12864液晶显示器显示素更优势中文字符天然支持置中文字库反观LCD1602液晶显示器显示中文诸便显示两行字符OLED12864显示屏OLED作新显示技术然巧高密度高亮度等特点日光视性没传统LCD液晶显示oled烧屏通病智门锁需长时间工作烧屏影响LCD12864液晶显示器显示方案
215 指纹模块选择
方案:AS608 指纹识模块指采杭州晟元公司 AS608芯片进行指纹识信息处理集成供2次开发指纹模块基AS608芯片指纹模块控制电路控制协议样厂家性已
方案二:正点原子ATK301电容式指纹模块
方案分析:正点原子ATK301电容式指纹模块学指纹模块产品应着许限制相成熟AS608 指纹识模块讲稳定性安全性皆达标电容式指纹模块通病湿手出汗等法识选择AS608 指纹识模块
216 数存储芯片选择
方案:通单片机部EEPROM进行存储数STC89C52芯片置4KB EEPROM
方案二:AT24C02数存储芯片
方案分析:次设计需储存量数快速读写数作记录户标记置EEPROM足够需外置专数储存芯片
22 系统整体设计
通面模块选择述已准确设计框架设计采stc89c52微控制器芯片作次设计控芯片AS608 指纹识模块进行门锁生物特征采集识IC卡进行次身份认证手段然LCD12864液晶显示屏进行交互容显示信息反馈信息提醒通矩阵键盘进行户信息编辑修改交互输入设备
指纹智门锁电stc89c52控芯片便会模块进行初始化初始化完成LCD12864便会显示交互页面通矩阵键盘交互界面进行切换进入模式进入理员模式输入理员密码正确增删户信息修改理密码指纹模块检测正确户指纹通电磁继电器开关闭模拟开门关门动作
图21设计系统方案简图
图21 系统方案
第三章 系统硬件电路设计
31 stc89c52系统设计
STC89C52RC微控制处理器芯片款8位单片机微控制处理器芯片STC公司设计STC89C52RC微控制处理器芯片MCS51指令架构核拥51优良传统特点超低功耗高性STC公司MCS51指令架构核做优秀改良升级STC89C52RC微控制处理器芯片继承老牌51单片机功优点51没创新功
单片机系统少电子元器件构建芯片外围电路芯片组成完整计算机硬件系统首先电子产品说电源供电电路电子设计首务设计微电子智产品电源选择5V直流电足够
电源供完成单片机芯片工作需关重部件——晶振晶振晶体振荡器简称单片机需晶振产生规律震荡波形进行构建统系统运行机制
次选晶振110592MHz110592MHz晶振产生9600波特率0误差
晶振电路图31
图31
然单片机复位电路设计复位电路单片机恢复初始状态次设计两种复位方式电复位电时候电容电压突变电容RESET相连激活STC89C52芯片键手动复位手动键时候电路导通激活STC89C52芯片
复位电路图32
图32
里STC89C52单片机系统搭建完毕完整系统电路图图33
图33 STC89C52系统
32 LCD12864液晶显示器电路设计
LCD12864显示字符图案液晶显示屏(LCD)驱动电路组成驱动电路般带少量电阻电容器件作显示屏稳定工作保障LCD12864设计初带中文字库简单说LCD12864液晶显示屏宽128高64LCD液晶单元组成液晶点阵通通入电流点亮应LCD液晶单元绘制分辨率128*64图置字库灵活绘制出文字交互界面
LCD12864液晶显示器置中文字库外通点阵绘制现实简图案分辨率128×64 指令操作十分简单快速构成全中文机交互图形界面
图34LCD12864原理图
图34 LCD12864原理图
LCD12864引脚相关说明
3~VO调节度相调节点显示出深浅然亮亮两种选择亮模式相调节点底亮
4~RS1时候表示发送发送数0表示发送命令
5~RW控制LCD12864读数(1)写数(0)控制LCD然里面写数(0)
6~E信号
17~RST复位脚
DB0~DB7传输数字节八位 8线行
详细参考表
图35 LCD12864详细引脚图
图36 LCD12864操作时序图
33 AS608指纹识模块电路设计
AS608 指纹识模块指采杭州晟元公司 AS608芯片进行指纹识信息处理集成供2次开发指纹模块驱动指纹模块格式发送指令数
指令数包分三类:
1包标识01 命令包
2包标识02 数包续包
3包标识08 数包结束包
数包加包头:0xEF0
矩阵键盘电路设计
减少io口资源浪费次矩阵扫描方式进行设计
图37
1
2
3
进入理
4
5
6
选择项
7
8
9
选择项
退格
0
确定
返回
图37
34 蜂鸣器电路设计
选择电磁蜂鸣器5V源蜂鸣器蜂鸣器工作电流单片机法驱动样设计间接驱动蜂鸣器开关晶体图38蜂鸣器电路
图38
35 电磁继电器电路设计
图39
36 整体电路设计图
图310
第四章 系统软件设计
41 软件开发环境
软件开发环境选择keil5KeilIRA嵌入式单片机领域名IDE(集成开发环境)构建开发完善度开发体验超越许芯片厂商提供官方开发工具keil单片机开发必开发软件
42 函数设计
函数整系统父级函数功模块连接关系网节点
次设计系统逻辑单片机电进入运行状态首先进行显示界面初始化然开串口通信读取存储空间中户信息然初始化指纹模块IC卡模块切初始化完成程序正式进入循环中通循环串联功模块通判断功模块返回信息进行功调串联部分关键代码详细循环逻辑结构参考图41
*********************************************************
函数名称void main()
函数作函数
参数说明
*********************************************************
void main()
{
uchar i
akeycan()
if(a1)
{
AT24C02_write_date(2000)
AT24C02_write_date(2010)
AT24C02_write_date(2020)
}
LCD12864_init() 初始化LCD12864
UartInit() 串口初始化
T2_init()
low_mimaAT24C02_read_date(200) 读取存储AT24C02密码
low_mimalow_mima*100+AT24C02_read_date(201)
low_mimalow_mima*100+AT24C02_read_date(202)
diaplay_mode0() 显示初始界面
while(1)
{
i++
akeycan() 矩阵键盘检测
chuli() 矩阵键盘处理
if(mode1)
display_guanli()
else
if(mode2) 录入指纹
{
if(zhiwen_f1)
cunchu() 录入指纹
}
else
if(mode3) 注销指纹
{
if(zhiwen_f1)
shanchu() 注销指纹
}
else
if(mode0&&in_f0)正常解锁界面
{
if(i>150)
{
i0
xunzhiwen()指纹解锁
}
}
}
}
图41
43 指纹通信设计
指纹模块实独立单片机系统厂家提供固件处理指纹信息需做芯片厂商提供接口进行二次开发首先收集指纹信息载入模块中然新指纹信息进行终返回匹配结果结果匹配警告指纹错误匹配正确进行开门动作关键驱动代码详细代码见附录程序基逻辑结构参考图43
********************************************************
函数名称void xunzhiwen()
函数作查找指纹
参数说明
********************************************************
void xunzhiwen()
{
searchnumsearch() 搜索指纹
if((searchnum>1&&searchnum
if(searchnum>1&&searchnum
temp[0]searchnum1000100+0x30
temp[1]searchnum10010+0x30
temp[2]searchnum10+0x30
temp[3]' '
LCD12864_display_string(32temp)显示卡号
LCD12864_display_string(33指纹解锁)
LCD12864_display_string(14 )
in_mima0 清输入密码
num0 清输入密码位数
input_f0 清输入密码标志
jdq0 开电磁锁
T2_num0 开启重新开始计时
TR21
}
else 正确指纹
{
LCD12864_display_string(33效指纹)
didi(3) 报警三次
}
delay1ms(500) 延时动清显示容
LCD12864_display_string(32 )
LCD12864_display_string(33 )
}
}
图43
44 LCD12864显示设计
交互界面面众化产品说缺重组成部分程序进行初始化操作显示界面进入欢迎界面界面切换组函数指令进行控制程序结构判断程序指令具体函数逻辑结构参考图44
图44
第五章 测试
测试工具:KEIL5软件
测试台:Windows10智指纹门锁系统硬件
智指纹门锁系统软件KEIL5开发台软件进行编写编译固件通PL2303载器载51单片机中然进行智指纹门锁系统白盒测试验证功完整性观察智指纹门锁运行状态然进行反复修改调试程序终完善程序
系统软件调试遇问题:
(1)LCD12864显示出现花屏
解决方法:首先检查LCD12864液晶显示屏接线否牢固否短路错接等问题果没问题检查LCD12864液晶显示屏驱动代码时序否错误否初始化进行显示数初始化果法排错误尝试更换块新LCD12864液晶显示屏
第六章 结
着科技发展生活水提高现中国社会家庭物质财产十年质飞跃提高防盗意识提升锁具安全系数成务急传统机械锁构造简单已许久没技术更新导致安全系数降撬事件屡见鲜反观电子锁出现智时代势趋保密性高灵活性安全系数高智门锁算强行破门失窃情况配合智设备监控嫌疑生物特征进行采集期案件侦破重帮助
设计旨设计款基stc89c52单片机集成指纹认证IC卡认证智密码锁设计stc89c52微控制处理器芯片作控采指纹识模块IC卡认证模块组成安全认证系统通矩阵键盘输入电子密码设置指纹密码解锁IC认证两种解锁方式采LCD12864液晶进行显示交互反馈测试结果表明系统项功已达设计求
次毕业设计实践中说获益良第次产品研发思维进行设计制作电子产品开始题目时候智门锁没少概念历漫长资料查询专业知识复终开始进行整体产品框架设计进行材料选择制作出简单雏形断测试中慢慢完善整智门锁
次设计说次机遇次挑战次设计程中学东西电子工程师工作流程工作思维深刻理解通次实践增强动手力通实际工程设计解书知识实际应差实际应中遇问题需问题进行具体分析步步解决
参考文献
[1] 石文轩宋薇基单片机MCS51智密码锁设计[M]武汉工程职业技术学院学报2004(01)
[2] 祖龙起刘仁杰种新型编程密码锁[J]连轻工业学院学报2002(01)
[3] 叶启明单片机制作新型安全密码锁[J]家庭电子2005(10)
[4] 李明喜新型存储柜锁设计[J]机电产品开发创新2004(03)
[5] 董继成种新型安全单片机密码锁[J]电子技术2004(03)
[6] 杨茂涛种存储柜锁实现[J]福建电脑2004(08)
[7] 瞿贵荣实存储柜锁[J]家庭电子2000(07)
[8] ATmegaATmega8L8AC2006(01)
[9] Wireless World1998vol84No1509p69
[10] 王千实电子电路全[M]电子工业出版社2001p101
[11] 立民单片机应技术选编[M]北京:北京航空学出版社1998
[12] 李华MCS51系列单片机接口技术[M]北京航空航天学出版社1993
[13] 彭单片机典型系统设计实例精讲[M]北京:电子工业出版社2006
[14] 潘永雄新编单片机原理应[M]西安:西安电子科技学出版社2003
[15] 童诗白华成英模拟电子技术基础[M]北京:高等教育出版社2000
[16] 阎石数字电子技术基础[M]北京:高等教育出版社1998
[27] 樊昌信曹丽娜通信原理[M]北京:国防工业出版社2007
[28] 李瀚荪电路分析基础[M]北京:高等教育出版社1991
[19] 郭海英基单片机电子安全密码锁设计[M]现代电子技术2005(13)
[20] 希杜煜实电子电路设计[M]北京:电子工业出版社1998
[21] 康华光电子技术基础(第四版)[M]北京高等教育出版社1998
[22] 俞睆卿智家居终端研究设计[D ]海交通学2008
[23] 林旭东智家居系统相关技术发展趋势[J]创新科技导报2008656
[24] 李方浅谈种智家居系统网络技术[J]计算机网络2006年5(2)98101
[25] 陈文智嵌入式系统开发原理实践清华学出版社2005
[26] 贾宗璞许合利C语言程序设计中国矿业学出版社2007
[27] 谭浩强 C程序设计清华学出版社2005
[28] 余发山王福忠单片机原理应技术中国矿业学出版社2008
[29] 沈星星丛露微基ZigBee智家具控制系统文选粹2011第3期
[30] 冯培昌周晓云陈孝伟线传感器网络探讨[J]电气动化2005年27(5)7375
[31] 周健明江玲ZigBee网络层关键技术研究实现黄石理工学院学报200925
致 谢
文撰写程中李俊杰老师作指导老师治学严谨学识渊博视野广阔营造种良学术氛围置身间耳濡目染潜移默化仅接受全新思想观念树立明确学术目标领会基思考方式掌握通研究方法明白许接物处世道理严律宽崇高风范朴实华易格魅力微感深文关怀令沐春风倍感温馨正百忙中次审阅全文细节进行修改文撰写提供许中肯宝贵意见文成型
特李俊杰老师致衷心谢意挑剔敬业精神严谨认真治学态度深厚专业修养易方式表示深深敬意
附 录
*************************************************************
指纹密码锁
补充说明:
***************************************************************
#include
#include
#include
#include
#include
#include
#define uchar unsigned char 宏定义
#define uint unsigned int
#define ulong unsigned long
************************引脚定义************************
sbit buzzP3^7 蜂鸣器
sbit ledP0^0 LED灯
************************变量定义************************
#define MAX 5 指纹数量
#define ID_MAX 3输入ID位数
uchar mode0 0正常解锁1理界面2注册模式3删模式4修改密码
uchar mode_num0理界面选择项
uint ID0 存储输入编号ID
uchar n0 输入位数
bit zhiwen_f0 1标记进入指纹采集
uchar a 存储键值
uchar num 记录输入密码位数
bit in_f 输入密码标志
bit reset_f 重设密码标志
bit input_f 六位密码输完标志
uchar reset_num 标记修改密码阶段1输入旧密码2输入新密码3次输入新密码
ulong low_mima0系统密码
ulong in_mima0 暂存输入密码
ulong new_mima0暂存输入新密码
uchar temp[5] \0存储显示容
********************************************************
函数名称void delayms(uint ms)
函数作毫秒延时函数
参数说明
********************************************************
void delayms(uint ms)
{
unsigned char i100j
for(msms)
{
while(i)
{
j10
while(j)
}
}
}
********************************************************
函数名称void didi(uchar i)
函数作蜂鸣器鸣
参数说明i鸣次数
********************************************************
void didi(uchar i)
{
uchar j
for(j0j
led0 开启LED蜂鸣器
buzz0
delayms(20)
led1 关闭LED蜂鸣器
buzz1
delayms(15)
}
}
********************************************************
函数名称void diaplay_mode0()
函数作显示卡界面
参数说明
********************************************************
void diaplay_mode0()
{
LCD12864_display_string(11指纹密码锁)
LCD12864_display_string(02编号 )
LCD12864_display_string(03状态 )
}
********************************************************
函数名称void xunzhiwen()
函数作查找指纹
参数说明
********************************************************
void xunzhiwen()
{
searchnumsearch() 搜索指纹
if((searchnum>1&&searchnum
if(searchnum>1&&searchnum
temp[0]searchnum1000100+0x30
temp[1]searchnum10010+0x30
temp[2]searchnum10+0x30
temp[3]' '
LCD12864_display_string(32temp)显示卡号
LCD12864_display_string(33指纹解锁)
LCD12864_display_string(14 )
in_mima0 清输入密码
num0 清输入密码位数
input_f0 清输入密码标志
jdq0 开电磁锁
T2_num0 开启重新开始计时
TR21
}
else 正确指纹
{
LCD12864_display_string(33效指纹)
didi(3) 报警三次
}
delay1ms(500) 延时动清显示容
LCD12864_display_string(32 )
LCD12864_display_string(33 )
}
}
********************************************************
函数名称void cunchu()
函数作存储指纹
参数说明
********************************************************
void cunchu()
{
LCD12864_display_string(03状态 )
if(ID>0&&ID
if(enroll()1)采集两次生成1指纹模板成功
{
if(savefingure(ID)1)保存指纹成功
{
LCD12864_display_string(33录入成功)
}
else 保存指纹失败
LCD12864_display_string(33存储失败)
}
else 采集指纹失败
LCD12864_display_string(33采集失败)
}
else 输入指纹编号错误
LCD12864_display_string(33编号错误)
n0 清输入编号位数
ID0 清输入编号
zhiwen_f0关闭指纹采集
}
********************************************************
函数名称void shanchu()
函数作删指纹
参数说明
********************************************************
void shanchu()
{
LCD12864_display_string(03状态 )
if(ID>0&&ID
if(dellfingure(ID)1)删指纹成功
{
LCD12864_display_string(33删成功)
}
else 删指纹失败
LCD12864_display_string(33删失败)
}
else
{
if(ID999) 果输入999表示清空指纹
{
if(Clear_All()1)清空指纹成功
LCD12864_display_string(33清空指纹)
else 清空指纹失败
LCD12864_display_string(33清空失败)
}
else 输入错误编号
LCD12864_display_string(33编号错误)
}
n0 清输入编号位数
ID0 清输入编号
zhiwen_f0关闭指纹采集
}
********************************************************
函数名称void display_guanli()
函数作显示理界面
参数说明
********************************************************
void display_guanli()
{
LCD12864_display_string(01 理系统界面 )
LCD12864_display_string(02 录入指纹 )
LCD12864_display_string(03 删指纹 )
LCD12864_display_string(04 修改密码 )
switch(mode_num)
{
case 0 LCD12864_display_string(02 >> ) break
case 1 LCD12864_display_string(03 >> ) break
case 2 LCD12864_display_string(04 >> ) break
default break
}
}
*********************************************************
函数名称void chuli()
函数作键进行处理
参数说明
*********************************************************
void chuli()
{
if(key_f1) 先判断否键
{
if((mode2||mode3)&&a<10)果输入ID状态数字键
{
if(n
if(n0)判断编号第1位
{
LCD12864_display_string(32 )
LCD12864_display_string(03 )
}
LCD12864_display_char(3+n2a+0x30)显示出输入数字 ASCII[a]
IDID*10+a编号计算
n++ 编号输入位数+1
}
}
if((mode0||mode4)&&input_f0&&a<10)果in_f1(输入密码状态)数字键
{
if(in_f1||mode4)
{
if(num0) 清显示显示输入新密码
LCD12864_display_string(13 )
if(reset_f1&&reset_num>1) 重置密码时候输入新密码阶段
LCD12864_display_char(num+12a+0x30)显示输入数字
else 情况输入密码显示*
LCD12864_display_char(num+12'*') 显示*
}
else
LCD12864_display_char(num+14'*')显示*
in_mimain_mima*10+a读入密码
num++ 密码输入次数加
if(num6) 六位密码输入完成
input_f1 标记六位密码输入完成
}
if(a10) 进入理界面
{
if(mode0&&in_f0) 输入密码
{
num0 重置输入密码
in_f1
in_mima0
input_f0 清密码输入完成标志
write_com(0x01) 清显示
LCD12864_display_string(01请输入理密码 )显示输入密码
}
}
if(a15) 返回级菜单
{
if(mode>1) 理操作中
{
reset_f0
reset_num0
write_com(0x01) 清显示
LCD12864_clear12864()
mode1 回理选择界面
}
else 非理界面
{
if(mode0||in_f1)果输入密码阶段
{
write_com(0x01)清显示
mode0
diaplay_mode0()显示界面
in_f0
num0
input_f0 清密码输入完成标志
}
}
if(jdq0) 果电磁锁开该键手动关门
{
jdq1 关闭继电器
T2_num0 清计时
TR20
}
}
if(a11) 选择项
{
if(mode1)选择项理
{
if(mode_num0)
mode_num2
else
mode_num
}
}
if(a12) 选择项
{
if(mode1)选择项理
{
if(mode_num>2)
mode_num0
else
mode_num++
}
}
if(a13) 退格
{
if(mode0||mode4)输入密码状态
{
if(num0)
{
num输入密码数减1
if(in_f1||mode4)
LCD12864_display_char(num+12' ')
else
LCD12864_display_char(num+14' ')
in_mimain_mima10
input_f0
}
}
if(mode2||mode3)ID编号输入状态
{
if(n0)
{
LCD12864_display_char(2+n2' ')
n
IDID10
zhiwen_f0
}
}
}
if(a14)确定
{
if(mode1) 确定选择理操作
{
write_com(0x01)清显示
modemode_num+2
n0
ID0
zhiwen_f0
input_f0 清确定标志
num0
in_mima0
new_mima0
switch(mode_num)
{
case 0
LCD12864_display_string(01>> 录入指纹)
LCD12864_display_string(02编号 )
break
case 1
LCD12864_display_string(01>> 删指纹)
LCD12864_display_string(02编号 )
break
case 2
reset_f1
reset_num1
LCD12864_display_string(01请输入旧密码 )
break
default break
}
}
else
{
if(input_f1)密码输入完成确定
{
if(reset_f1) 修改密码区间
{
if(reset_num3)次输入新密码
{
if(new_mimain_mima)两次输入新密码致
{
low_mimanew_mima
AT24C02_write_date(200low_mima10000)
AT24C02_write_date(201low_mima10000100)
AT24C02_write_date(202low_mima100)
write_com(0x01)
LCD12864_display_string(11密码修改成功)
LCD12864_display_string(13请妥善保)
}
else
{
LCD12864_display_string(13密码修改失败)
}
reset_num0
reset_f0
}
if(reset_num2)输入新密码
{
write_com(0x01)
LCD12864_display_string(01请次输入新密码)
new_mimain_mima
reset_num++
}
if(reset_num1)输入旧密码
{
if(low_mimain_mima)输入密码旧密码致
{
write_com(0x01)
reset_num++
LCD12864_display_string(01请输入新密码 )显示输入新密码
}
else
{
LCD12864_display_string(23密码错误) 显示密码错误
reset_num1
LCD12864_display_string(12 )
}
}
}
if(in_f1) 进入理输入密码时候
{
if(low_mimain_mima)输入密码正确
{
mode1
write_com(0x01)
in_f0
}
else
{
LCD12864_display_string(23密码错误) 显示密码错误
LCD12864_display_string(12 )
}
}
if(mode0&&in_f0)
{
if(low_mimain_mima)输入密码正确
{
LCD12864_display_string(33解锁成功)
jdq0
T2_num0
TR21
}
else
{
LCD12864_display_string(33密码错误) 显示密码错误
didi(3)
}
LCD12864_display_string(14 )
delay1ms(500)
LCD12864_display_string(33 )
}
in_mima0
num0 清密码计数重新计算输入密码数
input_f0 清确定标志
}
if((mode2||mode3)&&nID_MAX)注册删指纹时编号输入完成开启指纹检测
{
zhiwen_f1
}
}
}
key_f0 清键标志
}
}
*********************************************************
函数名称void main()
函数作函数
参数说明
*********************************************************
void main()
{
uchar i
akeycan()
if(a1)
{
AT24C02_write_date(2000)
AT24C02_write_date(2010)
AT24C02_write_date(2020)
}
LCD12864_init() 初始化LCD12864
UartInit() 串口初始化
T2_init()
low_mimaAT24C02_read_date(200) 读取存储AT24C02密码
low_mimalow_mima*100+AT24C02_read_date(201)
low_mimalow_mima*100+AT24C02_read_date(202)
diaplay_mode0() 显示初始界面
while(1)
{
i++
akeycan() 矩阵键盘检测
chuli() 矩阵键盘处理
if(mode1)
display_guanli()
else
if(mode2) 录入指纹
{
if(zhiwen_f1)
cunchu() 录入指纹
}
else
if(mode3) 注销指纹
{
if(zhiwen_f1)
shanchu() 注销指纹
}
else
if(mode0&&in_f0)正常解锁界面
{
if(i>150)
{
i0
xunzhiwen()指纹解锁
}
}
}
}
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档