分享一下最近做的毕业设计 比较好的选题和资料
本设计选择使用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; //按键值清零
}