51单片机项目(5)——基于51单片机的密码锁设计,2024年最新整理几个重要的物联网嵌入式开发知识

73 阅读6分钟

img img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

3.功能演示视频


1.课题意义

        51单片机密码锁课题的意义如下:

        1. 实践和应用能力提升:通过设计和开发51单片机密码锁,学生可以锻炼自己的实践能力和应用能力。他们需要理解密码锁的原理和工作方式,并将其应用在具体的项目中,提高问题解决和创新思维能力。

        2. 综合学科知识的应用:51单片机密码锁涉及相关的电子电路、嵌入式系统和编程知识等多个学科领域。学生在课题中需要综合运用这些知识来设计和实现密码锁,从而加深对这些学科的理解和应用能力。

        3. 学习项目管理和团队合作:完成51单片机密码锁课题需要进行项目计划、资源管理和团队协作等工作。学生可以通过这个课题学习项目管理技能和团队合作精神,提高自己的组织能力和沟通能力。

        4. 创造力和设计思维培养:课题要求学生设计密码锁的外观、功能和用户交互界面等。通过课题,学生可以培养自己的创造力和设计思维,探索不同的设计方案,并将其实现在具体的产品中。

        5. 理论与实践的结合:51单片机密码锁课题将理论知识与实际应用相结合。学生需要将课堂上学到的理论知识转化为实际的设计和实现,培养在真实场景中应用理论知识的能力。

        6. 提高安全意识:密码锁涉及到安全和保密性的问题。通过设计和研究密码锁,学生可以提高对信息安全和保护隐私的意识,了解密码保护机制的原理和应用。

        总之,51单片机密码锁课题有助于学生综合运用多个学科领域的知识和技能,提高实践能力和创新思维能力。同时,它也培养了学生的项目管理和团队合作能力,并提高对安全意识和信息保护的认识。最重要的是,这个课题为学生提供了一个实践和应用学习的机会,帮助他们将理论知识应用到实际项目中。

2.实现功能

本次实现的功能如下:
初始密码:123456    密码位数:6位
注意:掉电后,所设密码会丢失,重新上电时,密码恢复为原始的123456
与P1.0相连的8位发光LED点亮代表锁被打开;熄灭代表锁被锁上

程序功能:
1、开锁:
下载程序后,直接按六次数字123456(即代表密码123456),LED亮,锁被打开,输入密码时,
六位数码管依次显示小横杠。
2、更改密码:
只有当开锁(LED亮)后,该功能方可使用。
首先按下更改密码键,然后设置相应密码,此时六位数码管会显示设置密码对应
的数字。最后设置完六位后,按下确认密码更改,此后新密码即生效。
3、重试密码:
当输入密码时,密码输错后按下重试键,可重新输入六位密码。
当设置密码时,设置中途想更改密码,也可按下此键重新设置。
4、关闭密码锁:
按下上锁按键即可将打开的密码锁关闭。

功能测试:输入原始密码123456---按下更改密码按键---按0到9设置密码---按确认键
密码更改---按上锁按键关闭密码锁---输入新的密码打开密码锁

仿真图如下所示

主函数代码:

void main(void)
{
	InitI2C();			   //初始化
	TMOD = 0x01;
	TH0  = (65535-2000)/256;
	TL0  = (65535-2000)%256; 
	EA=1;
	ET0=1;
	TR0=1;
	WritePassWord_Ini();
	ReadPassWord();
	//if(PassWord[0]==0xff) WritePassWord_Ini();
		
	while(1)
	{
		keyscan();
		shumima();
		yanzheng();
		if(allow)	 //验证完后,若allow为1,则开锁
		{
			Lock=0;GLED=0;RLED=1;
			if(!genggai)	wanbi=0;
		}
		else 
		{
			Lock=1;GLED=1;RLED=0;
			if(wanbi)
			{
				delay(500);
				beep=0;delay(500);beep=1;delay(500);
				beep=0;delay(100);beep=1;delay(200);
				beep=0;delay(100);beep=1;delay(200);
				beep=0;delay(100);beep=1;delay(200);
				beep=0;delay(100);beep=1;delay(200);
				beep=0;delay(100);beep=1;delay(200);
				beep=0;delay(100);beep=1;
				wei=0;wanbi=0;allow=0;
				a=16;b=16;c=16;d=16;e=16;f=16;
				new1=0;new2=0;new3=0;new4=0;new5=0;new6=0;
			}
			
		}
		if(genggai)	  //当S16更改密码键被按下,genggai会被置一
		{
			if(allow)	 //若已经把锁打开,才有更改密码的权限
			{
				while(!wanbi)	//当新的六位密码没有设定完,则一直在这里循环
				{
					delay(20);
				 	keyscan();
					shumima();
					if(retry|close)	 //而当探测到重试键S18或者关闭密码锁键S19被按下时,则跳出
					{	
						wanbi=1;
						break;
					}


![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/cd3922c665964b8d96e7deb573ee1d27~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1772524972&x-signature=HrI2C%2BxFqhgLmwaFP8HQJ30iBKU%3D)
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/fabafbb1bb6f4976af9212afc468e55b~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1772524972&x-signature=GZcIGOxfo9kYWP9fpvhc4LlWbLI%3D)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://gitee.com/vip204888)**