基于单片机指纹识别系统设计内容摘要:
ms(10)。 if(k3==0)//如果仍为低电平,表示按键有效 { while(k3==0)。 //等待松手 clearallflag=1。 changeflag=1。 . . } } } void Timer0(void) interrupt 1//定时器 0 中断函数 { TL0=0x97。 TH0=0xBD。 clk0++。 //延时 17ms } void int1(void) interrupt 2//中断 1,模式转换 { if(k1==0)//模式转换 其中用 modeflag 来标志 ,默认从第 1 个指纹开始录入 { delay1ms(10)。 if(k1==0)//如果仍为低电平,表示按键有效 { while(k1==0)。 //等待松手 modeflag=~modeflag。 //0 表示录入指纹 1表示识别指纹 changeflag=1。 //模式发生了转换 } } } 第五 章 调试 完成了硬件的设计、制作和软件编程之后,要使系统能够按设计正常运行,必须进行硬件调试和软件调试。 硬件调试 硬件调试的主要任务是排除硬件故障,其中包括设计错误和工艺性故障。 (1) 在电路的电源焊接一个电源指示灯,判断电路中通电是否正常。 (2)将电路中的电源线布置在通用板的四周,这样使用电源很方便,减少干 扰,同时可以减少短路故障发生的可能。 ( 3)元器件合理布局,且尽量减少占用板子的面积,力争做到节俭。 特别是单片机的晶振尽量靠近单片机,减少干扰。 ( 4)液晶的焊接注意方向,且调节背光的电位器不可以少。 软件调试 软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现硬件故障。 程序的调试应一个模块一个模块地进行,首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来总调。 联调需要注意的是,各程序模块间能否正确传递参数,特 别要注意各子程序的现场保护与恢复。 本设计主要有: ○ 1 指纹识别传感器图像采集模块 . . ○ 2 单片机图像处理 ○ 3 按键模块和指示灯模块 ○ 4 指纹液晶显示和蜂鸣器、继电器模块 不断地对单片机下程序,观看调试结果。 参考文献 [1] 河桥 ,段清明 ,邱春玲 .单片机原理及应用 .北京:中国铁道出版社, [2] 冯星奎 ,李林艳,颜祖泉 .一种新的指纹图像细化算法 .中国图像图形学报,1999, 4(10)835838. [3]吕凤军 .数字图象处理编程入门一一做一个自己的 :清华大学出版社, 1999. [4] 刘文星,王雄沂,母国光 .纹线跟踪及其在细化指纹后处理中的应用 .光电子傲光, 2020, 13 (2): 184187. [5] 刘家锋,唐降龙,赵泉 .一个基于特征点匹配的联机指纹鉴别系统 .哈尔滨工业大学学报, (1): 132136 [6] 简兵,庄镇泉等 .基于脊线跟踪的指纹图细节提取算法 .电路与系统学报,2020 [7] 刘旭,田捷 .自动指纹识别算法在嵌入式系统的实现 [ J].计算机工程与应用, 2020. [8] 周毅,等著 .基于 SPI协议的实现,计算机仿真 .2020. [9] 窦振中 .单片机外围器件实用手册 (存储器分册 ).北京:北京航空航天大学出版社, 20O0 [10] 李华. MCS51 系列单片机实用接口技术.北京:北京航空航天大学出版社,1998 [11] 张培仁,孙占辉,张村峰.基于 c 语言编程 MCS 一 51 单片机原理与应用[M].北京:清华大学出版社, 2020. . . 附件 2 程序清单 include include include sbit relay =P1^4。 //继电器引脚 sbit buzzer=P1^5。 //蜂鸣器引脚 sbit red= P2^7。 //录入模式指示灯 在板子靠近单片机处 sbit green= P2^0。 //识别模式指示灯 在板子远离单片机处 sbit k2=P3^4。 //录入一次指纹 sbit k1=P3^3。 //模式识别转换 sbit k3=P3^2。 //清除所有指纹( 10 个指纹清除) define Max_User 10 define error 2 unsigned char SaveNumber=0,searchnum=0。 unsigned int SearchNumber=0。 unsigned int clk0=0。 unsigned char str[3]={0,39。 \039。 ,39。 \039。 }。 unsigned char code Identify[16]=Lock: Idenfity。 unsigned char code Input[16] =Lock: Input。 bit modeflag=0,clearallflag=0,changeflag=0。 //默认为识别模式 ////////////////常用指令定义 ///////////////////////////// //Verify Password :验证设备握手口令 unsigned char code VPWD[16]={16,0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,7,0x13,0x00,0x00,0x00,0x00,0x00,0x1b}。 //回送 12个 //设置设备 握手口令 unsigned char code STWD[16]={16,0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,7,0x12,0x00,0x00,0x00,0x00,0x00,0x1a}。 //回送 12个 //GetImage :探测手指并从传感器上读入图像 unsigned char code GIMG[14]={12, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,3,1,0x00,0x05}。 //回送 12个 //Gen Templet1 :根据原始图像生成指纹特征 1 unsigned char code GENT1[14]={13,0X01 ,0Xff,0xff,0xff,0xff,0x01,0,4,2,1,0x00,0x08}。 //回送 12 个 //Gen Templet2 :根据原始图像生成指纹特征 2 unsigned char code . . GENT2[14]={13,0X01 ,0Xff,0xff,0xff,0xff,0x01,0,4,2,2,0x00,0x09}。 //回送 12 个 //Search Finger :以 CharBufferA 或 CharBufferB 中的特征文件搜索整个或部分指纹库 unsigned char code SEAT[18]={17, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,8, 4,1,0,0, 0,0x65, 0x00,0x73}。 //回送 16个 //Merge Templet。 将 CharBufferA与 CharBufferB中的特征文件合并生成模板,结果存于 ModelBuffer。 unsigned char code MERG[14]={12, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,3,5 , 0x00,0x09}。 //回送 12 个 //Store Templet :将 ModelBuffer 中的文件储存到 flash 指纹库中 unsigned char code STOR[16]={15, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,6,6,2, 0x00,0x00, 0x00,0x0f}。 //回 送 12 个 //Read Note unsigned char code RDNT[14]={13,0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,4,0x19, 0, 0x00,0x1e}。 //Clear Note unsigned char code DENT[46]={45,0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,36,0x18,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x00,0x3d}。 //DEL one templet unsigned char code DELE_one[16]={16, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,7, 0x0c, 0x00,0x00, 0,1, 0x00,0x15}。 //DEL templet。 清空指纹库 unsigned char code DELE_all[12]={12,0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,3, 0x0d,0x00,0x11}。 ////////常用指令定义 结束 ////////////////// /////////宏定义 /////////////////// define FALSE 0 define TURE 1 //状态定义表 define on 1 define off 0 define MAX_NUMBER 63 define _Nop() _nop_() ////////////////宏定义 结束 /////////////////////// unsigned char FifoNumber=0。 xdata unsigned char FIFO[MAX_NUMBER+1]={0}。 . . /*********1 毫秒延时程序 **********/ void delay1ms(unsigned int t) { unsigned int i,j。 for(i=0。 it。 i++) for(j=0。 j120。 j++)。 } void TxdByte(unsigned char dat)//串口发送信息 ,通过查询方式发送一个字符 { TI = 0。 //让 TI= 0 SBUF = dat。 //读入数据 while(!TI)。 //等待发送完毕 TI = 0。 //清零 } bit Command(unsigned char *p,unsigned char MaxTime) //命令解析 ,给模块发送一个命令 { unsigned char count=0,tmpdat=0,temp=0,i=0,package=0,flag=0,checksum=0。 bit result=。基于单片机指纹识别系统设计
相关推荐
……………………………………… 1 、设计思路 ………………………………………………………………………… 1 、 、单片机简介 …………………………………………………………………… 1 、步进电机 …… …………………………………………………………………… 1 、四相步进电机的工作原理 …………………………………………………… 2 、四相步进电机的脉冲分配规律 ……………………………………………
验收合格后方可进行下道工序。 砼工程 ⑴ 水泥进场后须做复试,经复试合格后由试验室下达配合比。 施工中严格掌握各种材料的用量,并在搅拌机前进行标识,注明每立方米、每盘用量。 同时搅拌时,须车车进磅,做好记录。 ⑵ 浇筑前,对模板内杂物及油污、泥土清理干净。 ⑶ 投料顺序:石子→水泥→砂子。 ⑷ 本工程均采用插入式振捣器,一次浇筑厚度不宜超过振捣器作用部分长度的 倍
制电路的外接电路包括单片机的晶振电路、复 位电路。 89S51单片机内含有一个高增益的反相放大器,通过 XTAL XTAL2 外接作为反馈元件的晶体后,构成自激振荡器,所以 89S51单片机正常工作时需要外接晶振和微调电容 ,本设计的单片机的晶振电路的外围电路由一个 12MHZ的晶振和两个 33PF的电容组成。 本设计的复位电路采用 最简单的上电复 位电路,上电复位电路的工作原理为:上电瞬间,
RST引脚出现两个机器周期上高电平将使单片机复位。 WDT益出将使该引脚输出高电平,设置 SFR AUXR 的 DISRTO 位 4 (地址 8EH)可打开或关闭该功能。 DISRTO 位缺省为 RESET输出高电平打开状态。 PSEN:程序储存允许( PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN有效,即输出两个脉冲。
序设 计 16 单片机汇编语言源程序 20 显示及按键控制系统 35 LED 数码管 35 数据显示电路的设计 36 4 系统检测及分析 56 系统仿真 /硬件验证 56 系统的调试方法 56 系统的硬件验证 56 设计技巧分析 57 结 论 59 附录 A: FPGA 芯片引脚 60 附录 B:总体电路图 61 参考文献 62 致 谢 63 1. 系统设计 系统组成 以 CPLD/FPGA
度传感器 高温度触发 低温度触发 配置寄存器 8位 CRC发生器 供电方式检测 GND VDD I/O 器的第二、三字节中,主机可再读出其中内容进行验证,如果正确,当主机发送复制暂存器命令,暂存器的第二、三字节将被复制到 TH、 TL 中,这样处理有利于确保该数据在单总线上传输的完整性。 暂存存储器作用是在单线通信时确保数据的完整性,它由 8 字节组成 ,头两个字节表示测暂存器结构