当前位置: 首页 > java >正文

基于51单片机的无线电子密码锁

目录

具体实现功能

设计介绍

资料内容

全部内容

资料获取


具体实现功能

具体功能:
(1)密码锁上电后,即可输入密码,输入过程中不显示密码内容;密码正确时,显示密码正确,LED灯亮,继电器动作,表示开门;密码错误时,显示密码错误,蜂鸣器报警,连续输错三次后锁定2小时。
(2)具有修改密码功能。在输入原密码验正后才能修改密码,新密码需两次确认。
(3)具有一个万能的通用密码,在必要时可使用。
(4)具有无线控制门锁功能。利用串口模拟无线功能,可用串口输入密码及修改密码。

仿真演示视频:

基于51单片机的无线电子密码锁-仿真视频

设计介绍

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。

本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容

仿真实现(protues8.7)

本设计利用protues8.7软件实现仿真设计,具体如图。

程序(Keil5)

本设计利用KEIL5软件实现程序设计。

主函数如下:

///
void main()//主函数
{uchar i,j,num1=0,num2=0;lcd_init();                 // 初始化lcd_clear(0);               // 清屏lcd_set_line(0);             // 设置起始行为0mima_in();SCON=0X50;			//设置为工作方式1TMOD=0X21;			//设置计数器工作方式2TH1=0XFD;			//9600TL1=0XFD;ES=1;						//打开接收中断TR1=1;					//打开计数器TH0=0X3C;	//定时50msTL0=0XB0;	ET0=1;TR0=1;EA=1;while(1){i=key_scan();//按键检测if(i==11)//模式切换	  设置密码{mode=!mode;if(mode==1)//修改密码{if(!zhengque)mode=0;else{mima_reset();}}mima0[0]=0;//输入缓存清零mima0[1]=0;mima0[2]=0;mima0[3]=0; mima0[4]=0;mima0[5]=0; mima0[6]=0;mima0[7]=0; }
if(mode)//重设密码
{	 if(cishu==0){if((i>0)&&(i<11))//记录密码{ 				mima0[0]=mima0[1];//输入密码mima0[1]=mima0[2];mima0[2]=mima0[3];mima0[3]=mima0[4];mima0[4]=mima0[5];mima0[5]=mima0[6];mima0[6]=mima0[7];mima0[7]=i;	disp_num();  }if(i==12)//确认{mima3[0]=mima0[0];//记录第一次输入mima3[1]=mima0[1];mima3[2]=mima0[2];mima3[3]=mima0[3];mima3[4]=mima0[4];mima3[5]=mima0[5];mima3[6]=mima0[6];mima3[7]=mima0[7];//清空密码mima0[0]=0;mima0[1]=0;mima0[2]=0;mima0[3]=0;	mima0[4]=0;mima0[5]=0;mima0[6]=0;mima0[7]=0;disp_xin();ling(2);mima_zaici();cishu=1;}}else//第二次输入{if((i>0)&&(i<11))//记录密码{ 				mima0[0]=mima0[1];//输入密码mima0[1]=mima0[2];mima0[2]=mima0[3];mima0[3]=mima0[4];mima0[4]=mima0[5];mima0[5]=mima0[6];mima0[6]=mima0[7];mima0[7]=i;	disp_num();  }if(i==12)//确认{cishu=0;num1=0;for(j=0;j<8;j++){if(mima0[j]==mima3[j])num1++;}if(num1==8)//正确{mima1[0]=mima0[0]-1;//存储密码mima1[1]=mima0[1]-1;mima1[2]=mima0[2]-1;mima1[3]=mima0[3]-1;mima1[4]=mima0[4]-1;mima1[5]=mima0[5]-1;mima1[6]=mima0[6]-1;mima1[7]=mima0[7]-1;}//清空密码mima0[0]=0;mima0[1]=0;mima0[2]=0;mima0[3]=0;	mima0[4]=0;mima0[5]=0;mima0[6]=0;mima0[7]=0;disp_xin();mode=0;mima_in();ling(2);cishu=1;}}
}
else //输入密码
{	if((i>0)&&(i<11))//读取按键{mima0[0]=mima0[1];//输入密码mima0[1]=mima0[2];mima0[2]=mima0[3];mima0[3]=mima0[4];mima0[4]=mima0[5];mima0[5]=mima0[6];mima0[6]=mima0[7];mima0[7]=i;	//显示disp_xin();		}if(i==12)//OK{	num1=0;for(j=0;j<8;j++) //检验输入密码{if(mima0[j]-1==mima1[j]){num1++;}			}num2=0;for(j=0;j<8;j++) //检验万能密码{if(mima0[j]-1==mima2[j])num2++;}	if((num1>5)||(num2==8)) //密码正确{				times=0;zhengque=1;led=0;				mima_yes();delay_ms(5000);//延时5smima_in();led=1;cishu=0;}else{times++;zhengque=0;mima_no();ling(3);//密码错误mima_in();			}//清空密码mima0[0]=0;mima0[1]=0;mima0[2]=0;mima0[3]=0;	mima0[4]=0;mima0[5]=0;mima0[6]=0;mima0[7]=0;disp_xin();if(times==3)//3次错误{shi=1;ES=0;mima_lock();while(times==3);ES=1;}}
}
}
}

程序运行结果如图:

全部内容

全部资料包括程序(keil5)、protues仿真(protues8.7)、设计说明、答辩PPT、开发资料、资料使用介绍、仿真视频、最小系统介绍视频等。

资料获取

https://docs.qq.com/doc/DT0JHenRUWVpzYndn

http://www.xdnf.cn/news/13841.html

相关文章:

  • AI对话应用专题:6个高保真APP与网页原型案例详解(附工具指南)
  • Hibernate ORM框架开发指南
  • 同城O2O外卖跑腿源码功能开发详解:多商户、骑手调度、后台管理
  • 如何构建更好的香港服务器安全防护体系
  • @staticmethod 静态装饰器
  • 数据库-数据查询-Like
  • RK3588 ENV 环境配置之 fw_printenv
  • Python基于Django的棉花数据平台建设与可视化系统【附源码、文档说明】
  • MySQL主从数据库搭建
  • VSCode占C盘内存太大,如何处理
  • 双目视觉关键原理
  • 利用IS模型评估生成的图像质量
  • 解析XML发票:每一行标签的含义
  • GPIO简介(GPIO输出)
  • 创新综合实践 水果商城管理系统
  • 【Java工程师面试全攻略】Day8:高并发系统设计实战
  • python在容器内克隆拉取git私有仓库
  • 基于RK3588的KVM(Keyboard, Video, Mouse)远程传输方案
  • DQS和DQS_c
  • 进程间通信详解(三):Linux进程信号深度解析
  • 25年春招:字节跳动客户端开发二面总结
  • 【阿里巴巴 x 浙江大学】信息与交互设计 - 交互设计原则与思维
  • Vulkan学习笔记3—物理设备-逻辑设备-窗口表面-交换链-图像视图
  • ​约束催生自由,分离滋养创造——建造者模式有感
  • /proc/<pid>/maps文件格式详解
  • Git 常用总结
  • Unity | AmplifyShaderEditor插件基础(第十集:shader的基本属性+火焰制作-上)
  • 使用cmake安装faiss-GPU.so(无网或者内网情况下)
  • 《网络安全与防护》知识点复习
  • 多通道信号采集分析系统 - 01 功能分解与采样子系统