基于单片机的电子密码锁设计——毕业论文全套资料(原理图、仿真工程、答辩论文、答辩PPT)

【毕业设计】11-基于单片机的电子密码锁设计(原理图+仿真工程+答辩论文+答辩PPT)

文章目录

  • 【毕业设计】11-基于单片机的电子密码锁设计(原理图+仿真工程+答辩论文+答辩PPT)
  • 资料下载链接
  • 任务书
  • 设计说明书
  • 摘要
  • 设计框架架构
  • 设计说明书及设计文件
  • 源码展示
  • 资料下载链接

    资料链接
    包含此题目毕业设计全套资料:
    原理图工程文件
    原理图截图
    仿真工程文件
    源代码工程文件
    答辩论文(低重复率),18046字

    任务书

    主要研究内容:
    基于51单片机作为主控,矩阵键盘、液晶显示器和密码存储等为外围电路,设计一个电子密码锁系统,并通过编程能够实现密码设置、密码修改、密码正确开锁、错误提示、报警等功能要求。

    研究方法:
    1.分析电子密码锁的结构,确定其功能要求;
    2.对系统的硬件以及软件进行设计;
    3.应用PROTEUS软件对电子密码锁的功能进行测试。

    设计说明书

    摘要

    本次设计基于单片机的电子密码锁设计,电子密码锁需要实现密码锁的开锁、解锁、以及更改密码等功能,再通过LED灯和蜂鸣器辅助表示其状态等功能。需要使用51单片机及其外围电路组成控制系统。单片机最小系统、LCD1602显示器、键盘、AT2402储存器、蜂鸣器及其LED组合而成。
    通过对当前关于锁的发展背景分析,确定系统功能实现。然后对系统的硬件与软件进行设计。整个系统是以模块化的形式设计电路的各个子电路为一个功能模块,最后汇总到一起组成的控制系统应用电路。软件设计同样是以模块化的形式编写程序,按照功能对软件驱动划分最后调用到主函数中。最后使用Proteus软件对系统仿真,通过对系统电路连接,并将程序导入到单片中,运行调试。
    最后测试系统功能与系统稳定性,总结完成设计的相应功能,完成了本次的设计。

    设计框架架构

    前 言 1
    第一章 绪论 2
    第一节 电子密码锁的研究背景 2
    第二节 电子密码锁的研究现状及趋势 3
    一、研究现状 3
    二、研究趋势 3
    第三节 电子密码锁的研究意义 4
    第四节 论文主要研究内容 4
    第二章 电子密码锁的设计方案 6
    第一节 系统的设计功能分析 6
    第二节 电子密码锁的系统结构 6
    第三节 本章小结 7
    第三章 电子密码锁的硬件设计 8
    第一节 单片机最小系统 8
    第二节 矩阵按键电路 9
    第三节 AT24C02电路 10
    第四节 LCD1602显示器电路 11
    第五节 蜂鸣器及LED电路 12
    第六节 电源电路 13
    第七节 系统的总电路 13
    第八节 本章小结 14
    第四章 系统的软件设计 15
    第一节 编程软件的介绍 15
    第二节 主程序设计 15
    一、主程序设计流程 15
    二、主程序源码 17
    第三节 AT24C02程序设计 17
    一、AT24C02程序流程设计 17
    二、AT24C02程序 18
    第四节 矩阵键盘程序设计 19
    一、键盘输入板块的程序流程图 19
    二、矩阵键盘程序 20
    第五节 蜂鸣器报警及LED程序设计 22
    一、报警器及其显示灯程序设计流程 22
    二、蜂鸣器报警及LED程序源码 23
    第六节 LCD1602显示程序设计 24
    一、LCD1602显示程序设计流程 24
    二、LCD1602程序源码 24
    第七节 本章小结 25
    第五章 系统仿真 27
    第一节 仿真软件的介绍 27
    第二节 系统仿真 28
    一、仿真电路搭建 28
    二、功能仿真 28
    第三节 本章小结 31
    结 论 33
    致 谢 34
    参考文献 35
    附 录 36
    一、英文原文 36
    二、英文翻译 39
    三、源代码 42

    设计说明书及设计文件

    源码展示

    //退格
    void password_back_answer()
    {
    	if(j>=0)
    	{
    		if(j==0)
    		{
    			password_save[0]=0;
    		}
    		else
    		{
    			password_save[--j]=0;
    			lcd_wchar(1,10+j,'_');
    		}
    	}
    }
    
    //取消
    void password_cancel_answer()
    {
    	uchar i;
    	lcd_wstr(1,10,"______");
    	for(i=0;i<j;i++)
    	{
    		password_save[i]=0;
    	}
    	j=0;
    }
    
    //密码正确
    void succeed_answer()
    {
    	led_green=0;
    	led_red=1;
    	confirm_flag=0;
    	fail_times=0;
    	lcd_wcmd(0x01);
    	lcd_wstr(0,0,"The password is");
    	lcd_wstr(1,0,"right. Welcome!");
    	lcd_delay(3000);
    }
    
    //密码错误,蜂鸣器报警
    void fail_alarm()
    {
    	uint i;
    	for(i=0;i<2000;i++)
    	{
    		DelayMs(1);
    		beep=~beep;
    	}
    }
    //密码错误
    void fail_answer()
    {	
    	fail_times++;
    	led_red=0;
    	if(fail_times==3)
    	{	
    		fail_times=0;
    		lcd_wcmd(0x01);
    		lcd_wstr(0,0,"The password is");
    		lcd_wstr(1,0,"wrong. Sorry!");
    		fail_alarm();
    		lcd_delay(3000);
    		input_admin_password();
    		ReadFromROM(read_password,6,6);
    		password_confirm();
    		if(confirm_flag)
    		{
    			led_green=0;
    			led_red=1;
    			confirm_flag=0;
    			lcd_wcmd(0x01);
    			lcd_wstr(0,0,"The adm code is");
    			lcd_wstr(1,0,"wright. Welcome!");
    			lcd_delay(3000);
    			lcd_wcmd(0x01);
    			lcd_wstr(0,1,"Do you want to");
    			lcd_wstr(1,1,"show the code?");
    			key=16;
    			while((key!=confirm)&&(key!=password_cancel))
    			{
    				keydown();
    			}
    			if(key==confirm)
    			{
    				display_password();
    				lcd_delay(6000);
    				function_choose();
    			}
    			else
    			{
    				function_choose();
    			}
    		}
    		else
    		{ 
    			lcd_wcmd(0x01);
    			lcd_wstr(0,0,"The adm code is");
    			lcd_wstr(1,0,"wrong. Sorry!...");
    			fail_alarm();
    			lcd_delay(3000);
    			lcd_wcmd(0x01);
    			lcd_wstr(0,0,"Lock is locked!!");
    			lcd_wchar(1,2,':');
    			lcd_wchar(1,5,':');
    			lcd_wstr(1,9,"......");
    			EA=1;
    			while(count_second!=1)
    			{
    				display_initial_time();
    			}
    			count_second=0;
    			lock_flag=1;
    			while(lock_flag)
    			{
    				display_lock_time();
    			}
    			system_start();
    		}
    	}
    	else
    	{
    		lcd_wcmd(0x01);
    		lcd_wstr(0,0,"The password is");
    		lcd_wstr(1,0,"wrong. Again...");
    		lcd_delay(3000);	
    		input_password();
    		ReadFromROM(read_password,0,6);
    		password_confirm();
    		if(confirm_flag)
    		{
    			succeed_answer();
    			function_choose();
    		}
    		else
    		{
    			fail_answer();
    		}
    	}	
    }
    
    
    
    物联沃分享整理
    物联沃-IOTWORD物联网 » 基于单片机的电子密码锁设计——毕业论文全套资料(原理图、仿真工程、答辩论文、答辩PPT)

    发表评论