指纹识别模块单片机程序

上传人:第*** 文档编号:34522804 上传时间:2018-02-25 格式:DOC 页数:14 大小:92KB
返回 下载 相关 举报
指纹识别模块单片机程序_第1页
第1页 / 共14页
指纹识别模块单片机程序_第2页
第2页 / 共14页
指纹识别模块单片机程序_第3页
第3页 / 共14页
指纹识别模块单片机程序_第4页
第4页 / 共14页
指纹识别模块单片机程序_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《指纹识别模块单片机程序》由会员分享,可在线阅读,更多相关《指纹识别模块单片机程序(14页珍藏版)》请在金锄头文库上搜索。

1、#include #include #define TRUE 1unsigned char SaveNumber=0,searchnum=0;unsigned int SearchNumber=0;unsigned int clk0=0;sbit relay =P14; /继电器引脚sbit buzzer=P15; /蜂鸣器引脚sbit red= P27;/录入模式指示灯 在板子靠近单片机处sbit green= P20;/识别模式指示灯 在板子远离单片机处sbit k1=P33; /模式识别sbit k2=P34; /录入一次指纹sbit k3=P32; /清除所有指纹(10 个指纹清除)/

2、变量定义:unsigned char code tab10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/表:共阳数码管 0-9 /数码管引脚定义:sbit SMG_g = P13; /定义数码管阳级控制脚(个位)/由于程序中定时器被用 我们用一位数码管显示 且为静太显示 所以推荐大家用 1602 或者 12864 液晶 bit changeflag=0,modeflag=0,clearallflag=0; /默认为识别模式,如果为 1 为录入指纹模式,每录入一次 SaveNumber+/常用指令定义 /Verify Password :

3、验证设备握手口令unsigned char code VPWD16=16,0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,7,0x13,0x00,0x00,0x00,0x00,0x00,0x1b; /回送 12 个/设置设备握手口令unsigned char code STWD16=16,0X01 ,0Xff,0xff,0xff,0xff, 0x01,0,7,0x12,0x00,0x00,0x00,0x00,0x00,0x1a; /回送 12 个/GetImage :探测手指并从传感器上读入图像unsigned char code GIMG14=12, 0X01 ,0Xff

4、,0xff,0xff,0xff, 0x01, 0,3,1,0x00,0x05; /回送12 个/Gen Templet1 :根据原始图像生成指纹特征 1unsigned char code GENT114=13,0X01 ,0Xff,0xff,0xff,0xff,0x01,0,4,2,1,0x00,0x08;/回送12 个/Gen Templet2 :根据原始图像生成指纹特征 2unsigned char code GENT214=13,0X01 ,0Xff,0xff,0xff,0xff,0x01,0,4,2,2,0x00,0x09; /回送12 个/Search Finger :以 Char

5、BufferA 或 CharBufferB 中的特征文件搜索整个或部分指纹库unsigned char code SEAT18=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 MERG14=12, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,3,5 , 0x00,0x09;/回送

6、 12 个/Store Templet :将 ModelBuffer 中的文件储存到 flash 指纹库中unsigned char code STOR16=15, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,6,6,2, 0x00,0x00, 0x00,0x0f; /回送 12 个/Read Noteunsigned char code RDNT14=13,0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,4,0x19, 0, 0x00,0x1e;/Clear Noteunsigned char code DENT46=45,0X01 ,0Xff

7、,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 templetunsigned char code DELE_one16=16, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,7, 0x0c,0x00,0x00, 0,1, 0x00,0x15;/DEL templet ;清空指纹库unsigned char code DELE_all12=12,0X01 ,0Xff,0xff,0xff

8、,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; unsigned char FIFOMAX_NUMBER+1=0;/*1 毫秒延时程序*/void delay1ms(unsigned int t)unsigned int i,j;for(i=0;i=6)checks

9、um=FIFOcount+checksum; /计算校验和if(count=8) package=FIFO7*0X100+FIFO8; /计算包长度stop= TURE;if(stop)if(count=package+8)checksum=checksum-FIFOcount-1 - FIFOcount;if(checksum != (FIFOcount&0xff) result=FALSE; /校验失败,置结果标志为0else result=TURE;flag=0;break; /do 的内容- 结束 /while (clk0 =2)/如果不成功,再验证一次,如果两次不成功,返回失败 re

10、turn(0); void Clear_All(void) /清空指纹库 delay1ms(200);Command(DELE_all,50); /清空指纹库 unsigned char ImgProcess(unsigned char BUFID) /发获取图像并生成特征文件,存入BUFID 中/输入参数为缓冲区号 if(Command(GIMG,89) & (FifoNumber=11) & (FIFO9=0x00) if(BUFID=1) if(Command(GENT1,60) & (FifoNumber=11) & (FIFO9=0x00) return 1; elsereturn

11、0;else if(BUFID=2)if(Command(GENT2,60) & (FifoNumber=11) & (FIFO9=0x00) return 1; elsereturn 0;elsereturn 0; return 0; bit Searchfinger(void)/搜索指纹 (发送搜索命令、以及根据返回值确定是否存在) if(Command(SEAT,60) & (FifoNumber=15) & (FIFO9=0x00) ) SearchNumber=FIFO10*0x100+FIFO11;/搜索到的页码/MatchScore=FIFO12*0x100+FIFO13 可以在

12、此计算得分,从而进行安全级别设定,本程序忽略return 1; else return 0; unsigned char search(void)/搜索指纹 unsigned char SearchBuf=0,i=0;while (i=40)/如果采集了 40 次,还不成功,直接采集失败,直接退出enroll 函数返回 0 return(0);delay1ms(2000);/延时 2S 开始采集下一个特征/开始采集第二个特征 while(1)temp=ImgProcess(2); /生成特征 2 if (temp=1)/生成特征文件 2 成功if ( (Command(MERG,40)& (F

13、ifoNumber=11) & (FIFO9=0x00)=1 ) /合并成功返回 1buzzer=0;delay1ms(100);buzzer=1;delay1ms(100);buzzer=0;delay1ms(100); /响两声,表示生成一个模板成功buzzer=1; return(1);elsereturn(0);else if (temp=1)/采集指纹没有成功count+;if (count=25) return(0);void main(void)/主函数unsigned char i=0;ET0=1; /定时器 0 开中断TL0=0x97; /17ms 的初值TH0=0xBD;/串口初始化 SCON=0x50; /UART 方式 1:8 位 UART; REN=1:允许接收 PCON=0x00; /SMOD=0:波特率不加倍 TMOD=0x21; /T1 方式 2,用于 UART 波特率TH1=0xFD; TL1=0xFD; /UART 波特率设置:9600n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号