基于51单片机 指纹+密码+RFID 多功能锁

分享一下最近做的毕业设计 比较好的选题和资料

本设计选择使用51系列单片机+指纹模块+矩阵按键+射频卡 组成的多功能密码锁

可以实现密码解锁  按键密码解锁密码可修改

指纹识别解锁     指纹数据可以录入可以删除

射频ID卡解锁       可以录入RFID 也可以删除

设置管理员密码 可以进入后台管理

具有较好的应用场景和实际意义。

源码 原理图 实物设计 万字word 均可提供

详情看代码页

/*************主函数****************
*******QQ 2696472421***************
******时间 2022年4月6日 00:49:59***/
void main()
{ 	
	uchar i=0,j=0,x=1,check;
   	uchar Right_flag;
	init_rc522();      //RC522初始化
	UART_Init();	   //串口初始化		  
	x24c02_init();     //24C02初始化
	check = x24c02_read(0x68);
	delay(10);
	if( check != 1 )
	{
		LcmInit();	       //LCD12864初始化				                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
		LcmClearTXT();	   //LCD12864清屏
		PutStr(1,2,"初始化中...");
		check = 1;
		x24c02_write(0x68,check);
		for(i=0;i<6;i++)
		{
			x24c02_write(i,0+0x30);
			delayms(10);
		}
		for(i=0x38;i<0x68;i++)
		{
			x24c02_write(i,0+0x30);
			delayms(10);
		} 

	}
	LcmInit();	       //LCD12864初始化				                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
	LcmClearTXT();	   //LCD12864清屏
	PutStr(0,0,"    欢迎使用    ");
	PutStr(1,0,"  多功能门禁锁  ");
	PutStr(2,0,"  请输入密码:  ");
	while(1)  
	{ 
		for(i=0;i<6;i++)     //密码读取缓存清空
			mima[i]=0;	
		Key=Keycan();								
		while(Key!=0X48)	     //等待按下确定键后跳出
		{	 
			shuaka();
			if(k2==1)	     //检测指纹
			{	        	
				shuazhiwen();
				j=0;
			}				
			Key=Keycan();
			KeyDeal(Key);
			delay(30);
			if(Key==0x88)
			{
				Administrator();
			}		                              
			if(Key==0)	   //没有按键按下,K赋值为10,什么都不执行
				K=10;
			if((K>=0)&&(K<=9))	 //有数字键按下
			{
				mima[j]=K;		 //将按键值放入数组
				if(j<6)
				{	
					WriteCommand(0x99+j);		//指定第四行显示位置*
					WriteData(0x0f);	
				}
				++j;
				if(j==7)
				j=6;												  
			}  
			else if(K==11)		//按了删除键
			{
				if(j==0)
				{
					WriteCommand(0x99);		//指定第四行显示一个空格
					WriteData(0x20);
				}
				else
				{
					--j;
					WriteCommand(0x99+j);   //指定第四行显示一个空格,来删掉一个*
					WriteData(0x20);
				}
			}
		}
		if(j==6)			 //核对密码
		{
			Right_flag=PassWord_Chack();
		}
		if (Right_flag==1)   //密码正确
		{
			Right_flag=0;
			LcmClearTXT();
			PutStr(1,2,"门已打开");
			jidianqi=0;
			delay(2500); 
			jidianqi=1;	
			delay(1000);
			LcmClearTXT();
			PutStr(0,0,"    欢迎使用    ");
			PutStr(1,0,"  多功能门禁锁  ");
			PutStr(2,0,"  请输入密码:  ");
			j=0;
	     }
	    else				//密码错误,继续进入while循环检测指纹、寻卡、等待确定键按下
	    {
	
			PutStr(1,2,"密码错误");
			PutStr(2,0,"  请重新操作!"); 
			delay(2000);
		    LcmClearTXT();
			PutStr(0,0,"    欢迎使用    ");
			PutStr(1,0,"  多功能门禁锁  ");
			PutStr(2,0,"  请输入密码:  ");
			j=0;	
	    }
		Key=0;			   //按键值清零				  
	}	

  • 0
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值