指纹密码锁主程序

上传人:新** 文档编号:464838483 上传时间:2023-06-18 格式:DOC 页数:29 大小:86KB
返回 下载 相关 举报
指纹密码锁主程序_第1页
第1页 / 共29页
指纹密码锁主程序_第2页
第2页 / 共29页
指纹密码锁主程序_第3页
第3页 / 共29页
指纹密码锁主程序_第4页
第4页 / 共29页
指纹密码锁主程序_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《指纹密码锁主程序》由会员分享,可在线阅读,更多相关《指纹密码锁主程序(29页珍藏版)》请在金锄头文库上搜索。

1、#include #include #include24C0x.h#includeLCD12864.h#define uchar unsigned char#define uint unsigned int #define buffer1ID 0x01#define buffer2ID 0x02#define queren 0x88#define tuichu 0x84#define shanchu 0x82#define User 2 void fan(); sbit B0=B0;sbit B7=B7;sbit k2=P37;sbit jidianqi=P36;/sbit Buzzer=P0

2、0; extern unsigned char times;uchar Member,sec,z=0; / =1uchar code bufferUser6= 000000; uchar dz4;uchar time4; uchar mima6;uchar mimag6;/uchar mimaID6=1,2,3,4,5,6;uchar mimaID6;uchar data K;uchar data Key; uint PageID;uchar data querenma=11;推荐精选uchar sum2;int summaf,summas;uchar xdata UserPassword6=

3、0;/密码uchar xdata DSY_BUFFER16 =0;/缓存void Red_Init(void);/检测脉冲宽度unsigned char check(void);unsigned char redchange(unsigned char rednum); void delayms(unsigned int z)unsigned int x,y;for(x=z;x0;x-)for(y=110;y0;y-);/* 名称 : Chack(uchar User_Number)* 功能 : 单一用户密码检测* 输入 : User_Number* 输出 : 密码正确与错误,错误返回0,正确

4、返回1*/uchar Chack(uchar User_Number)uchar flag, i,temp6,Address;Address=User_Number*10;for(i=0;i6;i+)tempi=x24c02_read(Address);delayms(10);Address+;for(i=0;i6;i+)if(tempi=UserPasswordi)flag=1;else flag=0;推荐精选return flag;/* 名称 : PassWord_Chack()* 功能 : 所有用户密码检测* 输入 : 无* 输出 : 密码正确与错误,错误返回0,正确返回1*/uchar

5、 PassWord_Chack()uchar i=0;while(iUser)if(Chack(i)=1)Member=i+1;return 1;i+;return 0; void delay(uint tt) uchar i; while(tt-) for(i=0;i125;i+); /* 名称 : UART_Init()* 功能 : 单片机串口初始化* 单片机:晶振11.0592MHz 波特率为9600bps* 指纹模块:波特率为9600bps,*/ void UART_Init()SCON= 0x50; /串口方式1/REN=1; 允许接收PCON=0x00; /SMOD=0TMOD=

6、0x21; /定时器1定时方式2TH1= 0xFD; /11.0592MHz 模块默认波特率为9600bps推荐精选TL1= 0xFD; TR1= 1; /启动定时器 EA=1; unsigned char Keycan(void) /按键扫描程序 P1.0-P1.3为行线 P1.4-P1.7为列线 unsigned char rcode, ccode; P1 = 0xF0; / 发全0行扫描码,列线输入 if(P1&0xF0) != 0xF0) / 若有键按下 delay(1);/ 延时去抖动 if(P1&0xF0) != 0xF0) rcode = 0xFE; / 逐行扫描初值 while

7、(rcode&0x10) != 0) P1 = rcode; / 输出行扫描码 if(P1&0xF0) != 0xF0) / 本行有键按下 ccode = (P1&0xF0)|0x0F; /do; while(P1&0xF0) != 0xF0); /等待键释放 return (rcode) + (ccode); / 返回键编码 else rcode = (rcode1)|0x01; / 行扫描码左移一位 return 0; / 无键按下,返回值为0 void KeyDeal(unsigned char Key) /unsigned char n; if(Key!=0) switch(Key)

8、case 0x11: K=1; break; case 0x21: K=2; break; case 0x41: K=3; break; case 0x81: break; case 0x12: K=4; break;推荐精选 case 0x22: K=5; break; case 0x42: K=6; break; case 0x82: K=34;break; case 0x14: K=7; break; case 0x24: K=8; break; case 0x44: K=9; break; case 0x84: break; case 0x18: break; case 0x28: K

9、=0; break; case 0x48: K=11; break; case 0x88: break; default: break; /*/ void SFG_getimage() /录入指纹图像 uchar i; SBUF=0xef; while(TI=0); TI=0; SBUF=0X01; while(TI=0); TI=0; SBUF=0XFF; while(TI=0); TI=0; SBUF=0XFF; while(TI=0); TI=0; SBUF=0XFF; while(TI=0); TI=0; SBUF=0XFF; while(TI=0); TI=0; SBUF=0X01;

10、 while(TI=0);推荐精选 TI=0; SBUF=0X00; while(TI=0); TI=0; SBUF=0X03; while(TI=0); TI=0; SBUF=0X01; while(TI=0); TI=0; SBUF=0X00; while(TI=0); TI=0; summaf=0x05; SBUF=summaf; while(TI=0); TI=0; for(i=0;i9;i+) while(RI=0); RI=0; while(RI=0); RI=0; querenma=SBUF; while(RI=0); RI=0; sum1=SBUF; while(RI=0); RI=0; sum0=SBUF; summas=(sum18)+sum0; void SFG_genchar(uchar bufferID) /生成特征并存于charbuffer1/2 调用后单片机波特率变化 uchar i;

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

当前位置:首页 > 资格认证/考试 > 自考

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