基于STM32单片机的密码锁(Proteus仿真+程序+报告)

这篇具有很好参考价值的文章主要介绍了基于STM32单片机的密码锁(Proteus仿真+程序+报告)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

3-基于STM32单片机的密码锁

功能描述如下:

         由STM32F103单片机最小系统+ 4*4矩阵键盘+LCD1602液晶显示+蜂鸣器+继电器模块;

1、采用STM32F103为主控芯片。

2、通过4*4矩阵键盘实现密码输入、功能键等排列如下

1     2    3     删除

4     5    6     修改密码

7     8    9     重新输入

返回  0   确认   紧急开锁键

3、每按下一次按键蜂鸣器会有‘滴’提示音。

4、按任意数字键键,进入密码输入界面 输入正确密码开锁,继电器打开,2秒都自动关锁;输入密码错误三次,系统锁死一分钟后才可再次尝试;

5、按“修改密码”键,进入密码修改界面,首先输入原始密码才可进行修改,输错三次同样锁死一分钟后才可再次修改密码。

6、按“删除”键可删除退格。

7、按“重新输入”键可重新输入。

8、按“紧急开锁”键可直接一键开锁并重置密码。

仿真软件:必须Proteus8.11版本

编程软件:Keil5

仿真效果主界面(附文件)

基于STM32单片机的密码锁(Proteus仿真+程序+报告)

仿真效果输入密码界面:

基于STM32单片机的密码锁(Proteus仿真+程序+报告)

仿真效果密码输入正确界面:

基于STM32单片机的密码锁(Proteus仿真+程序+报告)

仿真效果密码输入错误界面:

基于STM32单片机的密码锁(Proteus仿真+程序+报告)

仿真效果开锁界面:

基于STM32单片机的密码锁(Proteus仿真+程序+报告)

程序(附文件)

/************************************************************************
* 函数: void Password_Insert(void)
* 描述: 密码输入函数
* 参数: none.
* 返回: none.
************************************************************************/
void Password_Insert(void)
{
	char temp,i=0,j=0;

	Lcd1602_String(0,0," Input Password ");		//刷新屏幕显示
	Lcd1602_String(0,1,"                ");	
	while(1)  									//进入while死循环 进入之后如果没有退出 则程序只执行这个while里边的程序(中断函数除外)
	{
			
		delay_ms(10);
		temp=KeyScan();			 			//获取键值
		if(temp>='0'&& temp<='9')  			//如果按键按下的是数字0-9 说明是在输入数字
		{	
			
			if(i<6)	 						//如若输入小于6位数 则可以继续输入
			{
				Beep_Alram(40);
				Password_Input[i]=temp-48;	//把键值符号转换成ASCII对应的值	  
				Disp_char(i,temp); 			//显示输入的数字
				delay_ms(100);				//延时一会儿
				Disp_char(i,'*');  			//显示/*/号 遮挡密码
				i++;
			}
			else			   				//输入满了 长响
			{
				Beep_Alram(300);
			}	
		}
		else if(temp=='A')						//删除
		{
			Beep_Alram(40);
			if(i>0)						  	//判断O是否大于0 大于0 说明有输入
			{
				i--;					   	//前面可以看到输入了一次后i被加一了 所以这里减一
				Password_Input[i] = 0;		//清除对应数组的信息
			}
			Disp_char(i,' ');				//显示空白
		}
		else if(temp=='C')						//重新输入
		{
			Beep_Alram(40);
			if(i>0)						  	//判断O是否大于0 大于0 说明有输入
			{
				for(;i>0;i--)			    //前面可以看到输入了一次后i被加一了 所以这里减一
				{
					Password_Input[i-1] = 0;//清除对应数组的信息 
					Disp_char(i-1,' ');		//显示空白	
				}					   		
			}
			
		}
		else if(temp=='*')						//*退出
		{
			Beep_Alram(40);
			Lcd1602_Write_Com(0x01); 		//清屏
			break;							//退出循while循环 回到主界面 
		}
		if(temp=='#'&&i>5)					//按#确认
		{
			Beep_Alram(40);
			if((Password_Input[0]==Password[0])&&(Password_Input[1]==Password[1])		//如果密码正确
			&&(Password_Input[2]==Password[2])&&(Password_Input[3]==Password[3])
			&&(Password_Input[4]==Password[4])&&(Password_Input[5]==Password[5]))
			{
				i = 0;			
				Password_Right = 1; 		//密码正确标志位
				Lcd1602_String(0,0," Password Right ");		//提示一下
				Lcd1602_String(0,1,"                ");
				delay_ms(200);								//延时一会儿
				Lcd1602_Write_Com(0x01); 	//清屏			
				break;						//退出循while循环 回到主界面 
			}
			else  							//如果密码输入错误
			{
				j++;
				
				if(j>=3)					//输入三次错误
				{
					j=0;
					Password_Error3 = 1;	//密码输错误3次标志位
					Lcd1602_Write_Com(0x01);//清屏
					break;					//退出循while循环 回到主界面 
				}
				i=0;	  
				if(j==1)Lcd1602_String(0,1,"Password Error1!");		//显示提示密码输错一次	
				if(j==2)Lcd1602_String(0,1,"Password Error2!");		//显示提示密码输错二次
				//这里可以加报警
				Beep_Alram(300);delay_ms(100);	
				Beep_Alram(300);delay_ms(100);
				Beep_Alram(300);delay_ms(100);
				delay_ms(300);
				Lcd1602_String(0,0," Input Password ");
				Lcd1602_String(0,1,"                ");	
				
			}
		}

	}	
}

视频演示:3、基于STM32单片机的密码锁_哔哩哔哩_bilibili

链接:https://pan.baidu.com/s/1v-56waF5QUdZzMMlBYDD6Q?pwd=ockn 
提取码:ockn 
 文章来源地址https://www.toymoban.com/news/detail-479837.html

到了这里,关于基于STM32单片机的密码锁(Proteus仿真+程序+报告)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于51单片机的密码锁设计

    电子密码锁设计,以AT89C51为主控,晶振电路和复位电路共同组成最小系统,使得单片机可以正常运行。矩阵按键作为输入模块,输入密码,LCD1602作为显示设备,显示输入的密码和提示语句,AT24C02作为EEPROM存储器,使用LED模拟“锁”,表示锁的开启和关闭状态。系统掉电后,

    2024年02月11日
    浏览(57)
  • 基于51单片机的电子密码锁

    主要功能: 1、6位密码开锁 可以修改用户密码和管理员密码 断电记忆 3次错误报警锁住键盘

    2024年02月11日
    浏览(45)
  • 基于51单片机的电子密码锁设计

    一.硬件方案         本系统由STC89C52单片机、4*4矩阵键盘,蜂鸣器,复位电路和晶振电路、继电器等组成,4*4键盘主要用于密码的输入和修改,蜂鸣器报警,复位电路和晶振电路与STC89C52单片机组成单片机最小系统。它具有设置、修改6位用户密码、输错报警、密码错误报

    2024年02月16日
    浏览(43)
  • 基于51单片机密码锁(修改密码,串口上锁解锁,仿真)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、仿真图 二、步骤 1.矩阵按键 2.串口配置 3.串口接收数据判断 4.修改密码+密码输入 总结 前言 LCD1602+矩阵按键+串口上锁解锁+修改密码   提供参考 代码如下: 代码如下(示例): 这里把判断拿

    2024年02月15日
    浏览(41)
  • (含代码)基于51单片机电子密码锁设计

    一.硬件说明 采用STC89C51作为主控芯片,结合矩阵按键输入模块、数码管显示模块、LCD1602液晶显示、LED、蜂鸣器报警器等电路模块实现开锁、上锁、报警、密码更改等功能,设计一款可修改密码且具有报警功能的液晶显示电子密码锁。 主要由STM32单片机+最小系统+LCD1602液晶显

    2024年01月16日
    浏览(47)
  • 基于51单片机的红外密码锁设计[proteus仿真]

    密码锁检测系统这个题目算是课程设计和毕业设计中常见的题目了,本期是一个基于51单片机的红外密码锁设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2¥,私信阿目【112基于51单片机的红外密码锁设计】即可获取(看到消息会第一时

    2024年02月21日
    浏览(53)
  • 基于51单片机LCD1602的简易矩阵键盘密码锁

    初次开始写博客,表达方面也许会有很多不足,希望自己能通过这种方式巩固自己的学习和锻炼表达能力,同时也是对于自己学习的记录。 四位密码锁,密码可更改,输入仅四次以内有效 矩阵键盘定义为1-16,顺序为从左上到右下,1-10号为密码输入键位,对键码取余,输入

    2024年01月23日
    浏览(58)
  • 0232-基于单片机的RFID刷卡密码锁电路设计

    1、采用STC89C52单片机作为主控芯片; 2、采用1602液晶显示使用过程及状态(液晶屏亮度可随光线自动调整); 3、采用矩阵键盘输入6位密码,输入密码正确则锁打开,显示open!输入错误次数超过3次,蜂鸣器报警并且锁定键盘; 4、可以自己修改密码,必须是锁打开时才能改密

    2024年02月20日
    浏览(59)
  • 基于STC15单片机的智能密码锁(矩阵按键输入)设计

    目录 一、项目背景 二、功能需求  三、功能组成 四、总结         智能门锁是一种基于现代智能化技术,与传统门锁进行比较的创新型的电子门锁产品。传统门锁通常采用钥匙旋转来开启门锁,但传统门锁存在钥匙遗失、易被复制等问题,特别是具有主动性质的人员如

    2024年02月03日
    浏览(44)
  • 微机课设 | 基于STC15单片机的简易数字密码锁设计

    在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。在安全技术防范领域,具有防盗报警功能的

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包