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

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

基于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、按“紧急开锁”键可直接一键开锁并重置密码。

视频演示链接:

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

仿真图:

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

程序源码:


#include "delay.h"
#include "LCD1602.h" 
#include "key4.h"
#include "led.h"
#include "timer.h"
#include "dht11.h"
#include "password.h"

#include "stdio.h" 	
#include "stdlib.h" 	

int main(void)
{	
	char buf[18];
	unsigned char cnt=0;
	
	unsigned char key_value = 0;	//按键返回值
	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	Lcd1602_Init();									//液晶1602初始化

	
	Key_Init(); 			 		//矩阵按键初始化
	TIM2_Int_Init(499,7199);		//10Khz的计数频率,计数到500为50ms 
    LED_Init();		  				//初始化与控制设备连接的硬件接口

    Password_Right = 0;
 	while(1)
	{	
		Lcd1602_String(0,0," Password Lock !");
		if(Lock_Flag==1)						//键盘可用
		{
			cnt=KeyScan();						//扫描按键键值 值赋给cnt
			
			if(cnt!=0xff)  						//如果有按键按下
			{
				if(cnt>='0'&&cnt<='9')		  	//如果按下了0-9之间的数字键 则直接输入密码开锁
				{
					Beep_Alram(40);
					Password_Insert();			//输入密码
				}
				else if(cnt=='B')				//如果按下了'B'键	修改密码
				{
					Beep_Alram(40);
					Password_Changed();			//密码修改函数
				}
				else if(cnt=='D')				//如果按下了'D'键	紧急开锁并重置密码
				{
					Beep_Alram(40);
					Password_Open();
					Password_Right = 1;
				}
			}
			if(Password_Right==1)				//输入密码正确?
			{	
				Jd0_Set(GPIO_ON);			   	//开继电器
				Password_Right = 0;	  			//清除标志
				Lcd1602_String(0,0,"  Openning...   ");
				delay_ms(300);					//延时一会儿
				Jd0_Set(GPIO_OFF);				//关继电器 由于电磁锁不能长时间通电并且由于门锁的特性,并不需要一直开着继电器。
			}
			if(Password_Error3 == 1)			//密码输错误3次标志位
			{
				Password_Error3 = 0;			//清除标志
				Lock_Flag = 0;					//锁死键盘不可用
				TIM_Cmd(TIM2, ENABLE);  		//使能TIMx	使能中断
			}
		}
		else
		{
			Lcd1602_Write_Com(0xc0+1);		 	//第二行0xc0开头
			Lcd1602_Write_Data(0+0x30);
			Lcd1602_Write_Data(0+0x30);
			Lcd1602_Write_Data(':');
			Lcd1602_Write_Data(Sec/10+0x30);
			Lcd1602_Write_Data(Sec%10+0x30);
			if(Sec<=0)							//达到1分钟 后 键盘恢复
			{
				Sec = 60;
				Lcd1602_String(0,1,"                ");
				Lock_Flag = 1;					//键盘恢复可用
			}				
		}
		
	}	
}

软件免费下载地址:

1、Proteus仿真软件
文件内容:Proteus7.8安装包、Proteus8.6安装包、Proteus.8.10安装包、Proteus Professional 8.11 SP0安装包

链接:https://pan.baidu.com/s/11LNUZ9BJXWvXf1C4dPc3_w 
提取码:2756 


3、KEIL5 MDK软件(STM32开发软件)
链接:https://pan.baidu.com/s/1t3eY-3yRdTa7jZMlijq_jg 

提取码:ab58 

代码下载:

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

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

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

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

相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月04日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包