电子密码锁详细报告
- 格式:doc
- 大小:92.50 KB
- 文档页数:12
实习报告:电子密码锁设计一、实习背景及目的随着科技的不断发展,电子产品在日常生活中扮演着越来越重要的角色。
电子密码锁作为一种安全技术防范产品,具有安全性高、成本低、功耗低、易操作等优点,已广泛应用于家庭、办公室、银行等领域。
本次实习旨在了解并掌握电子密码锁的设计原理,提高自己在电子技术方面的实际操作能力。
二、实习内容与过程1. 了解电子密码锁的原理电子密码锁的核心部分是密码控制器,它通过接收键盘输入的密码,与设定的密码进行比较,根据比较结果控制电路或芯片的工作。
在本实习中,我们采用51单片机作为密码控制器,通过矩阵键盘输入密码,利用数码管显示密码输入情况。
2. 设计电路图根据实习要求,设计电子密码锁的电路图。
电路主要包括51单片机、矩阵键盘、数码管、报警电路、电源等部分。
矩阵键盘用于输入密码,数码管用于显示密码输入情况,报警电路用于提示密码错误,电源为整个电路提供稳定的电压。
3. 编写程序使用C语言编写程序,实现电子密码锁的功能。
程序主要包括主函数、键盘扫描函数、数码管显示函数、报警函数等。
主函数负责初始化硬件设备,循环调用键盘扫描函数,接收并显示密码输入情况。
键盘扫描函数用于检测矩阵键盘按键状态,数码管显示函数负责在数码管上显示输入的密码,报警函数则在密码错误时发出报警。
4. 调试与优化在Proteus仿真软件中进行电路仿真,调试程序。
在仿真过程中,发现键盘输入与数码管显示部分存在问题,通过修改程序代码,解决了这些问题。
同时,对程序进行优化,提高了运行效率。
5. 实物焊接与测试根据电路图,购买元器件,进行实物焊接。
焊接完成后,对电子密码锁进行测试,验证其功能是否符合预期。
在测试过程中,发现报警功能存在问题,经过排查,发现是报警电路部分出现问题,重新焊接后,问题得到解决。
三、实习收获与体会通过本次实习,我对电子密码锁的设计原理和实际操作有了更深入的了解。
在设计过程中,我学会了如何根据实际需求,运用所学知识,设计出符合要求的电路图和程序。
课程设计(综合实验)报告( 2011 -- 2012 年度第 1 学期)名称:电子技术综合实验题目:数字电子钟院系:电气与电子工程学院班级:电气0903学号:**********学生姓名:**指导教师:**设计周数: 2成绩:日期:2012 年 1 月8 日一、课程设计(综合实验)的目的与要求钟表是人们生活中的常用物品。
本题要求用电子器件设计制作一个数字电子钟。
具体要求是:1、设计一个能直接显示时、分可以进行校“时”、校“分”的数字电子钟。
小时可采用十二进制也可采用二十四进制。
2、(1)设计24小时整点报时控制电路,要求每整点发出一声音响报时。
(2)要求只在6--22点之间每整点报时一次,23--5点之间整点不报时。
3、设计任意几点几分均可响铃的闹钟控制电路。
响铃1分钟,可提前终止。
4、根据规定的作息时间表,设计自动响铃控制电路。
(选做)2.设计思路数字式电子钟的基本功能是能够实现时、分、秒的正确计时,计时单位为1秒。
因此,一个简单的数字式电子钟,首先必须有计时显示电路和秒脉冲产生电路。
(为了避免重复电路,秒计时在本课题中省略,所以计时单位为1分钟,秒脉冲变为分脉冲,仿真中可用软件中已有的时钟信号发生器来实现。
)其次,当刚接通电源或时钟走时出现误差时,需要进行时间校准,否则就不能正确表示当前时间。
因此,数字式电子钟应有校时控制电路。
另外,若要求数字钟能够自动整点报时或按要求时间闹铃,还应有整点报时和闹铃控制电路。
若还需要其它功能,相应的还要有一些控制电路。
综上所述,数字式电子钟应由计时显示电路和控制电路组成。
二.方案设计与论证1、计时电路时间标准:“分”信号后,就可以根据60分为1小时,24小时为一天的计数周期,分别组成一个个60进制,一个24进制的计数器。
将这些计数器适当连接,就可以够成秒,分时的计数器,实现计时功能。
本实验采用74ls160十进制加法计数器。
采用清零法和异步级联法构成60进制,24进制计数器。
密码锁实验报告篇一:电子密码锁实验报告密码锁实验报告一,实验目的1. 学习8051定时器时间计时处理、跑马灯、按键扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上8个LED数码管,按键,跑马灯实现设置密码,密码锁的功能二,实验要求基本要求:1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。
2:可以自行设定或删除8位密码。
3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
三,实验基本原理利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
四,实验设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash 只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。
这样,既能做到经济合理又能实现预期的功能。
1在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。
电子密码锁实验报告姜岳松一、实验目的1.了解电子密码锁的原理,学会用硬件描述语言来建立电子密码锁的模块。
2.利用该软件进行可编程逻辑器件设计,完成电子密码锁的逻辑仿真功能。
3.使用编译器将设计实现,下载到JDEE—10实验箱上进行调试和验证所设计的电子密码锁的功能。
二、实验器材1.Pentium—Ⅲ计算机一台;2.JDEE—10实验箱一只;三、实验要求设计一个电子密码锁,实现以下的功能:用8个拨码开关分别代表预设的密码和输入待验证的密码。
一个微动开关做为触发判断。
判断结果通过点阵和蜂鸣器表示。
正确的话,所有点阵的绿色灯点亮,同时蜂鸣发出“di”声。
否则,点阵显示红色,同时蜂鸣“do”音。
四、实验方案及设计过程1.第一部是实验电子密码锁的基本功能,该程序的主体是一个密码判断程序:首先是将输入的预设的密码和待验证密码用数组储存起来进行比较,比较结果通过IF语句,相同则触动绿色点阵和蜂鸣器的一个频率,不同则触动红色点阵和蜂鸣器的另一个频率2.开始丰富附肢程序:两种不同的响声需要两个计数器来产生不同的频率;要有一个上升沿保证颜色显示程序和密码判断程序以一个高频率运行,需要一个计数器;一个密码验证开关,由微动开关实现,在密码验证开关触动后能够保持一个高电位,这样则需要一个由D触发器构成的锁存器来锁定高电平。
3.点阵的显示:点阵的显示控制,由于显示OK的原代码之前已经练习过,然后设计好NO的字符,可以直接完成拓展之一。
此部分不需要详述。
五、拓展功能设计拓展主要是为了实现八位密码,这样所有的拨码开关都要用上,所以还需要两个微动开关来确定密码设定和输入。
同时,微动开关启动后,能够将拨码开关的密码储存到数组A[7..0]和B[7..0]中,待判断开关启动后调用,所以要用寄存器储存起来,所以声明一个串进串出的寄存器。
同时对主程序的判断器的输入变量进行修改。
六、顶层文件和源程序文本文件顶层文件文本:SUBDESIGN ECLOCK ( a[7..0],b[7..0]:input;key: input;freq1,freq2: input;red: output;green: output;spk: output;)begindefaultsred=gnd; green=gnd;spk=gnd;end defaults;if key thenif a[]==b[] then red=vcc;spk=freq1;else green=vcc;spk=freq2;end if;end if;end;点阵显示文本:subdesign leddiaplay( green,red: input;clk[2..0]: input;row[8..1],colred[16..1],colgreen[16..1]: output; )begindefaultscolred[]=h"ffff";colgreen[]=h"ffff";end defaults;if green thentableclk[2..0]=>row[8..1],colgreen[16..1];H"0" =>H"1", H"DBC3"; %1101 1011 1100 0011% H"1" =>H"2", H"EBDB";H"2" =>H"4", H"EBDB";H"3" =>H"8", H"F3DB";H"4" =>H"10", H"F3DB";H"5" =>H"20", H"EBDB";H"6" =>H"40", H"EBDB";H"7" =>H"80", H"DBC3";end table;end if;if red thentableclk[2..0]=>row[8..1],colred[16..1];h"0" =>h"1", h"C3DB";h"1" =>h"2", h"DBD3";h"2" =>h"4", h"DBD3";h"3" =>h"8", h"DBC3";h"4" =>h"10", h"DBCB";h"5" =>h"20", h"DBCB";h"6" =>h"40", h"DBCB";h"7" =>h"80", h"C3DB";end table;end if;end;寄存器文本:SUBDESIGN register(clk,load,d[7..0] :input;q[7..0] :OUTPUT;)VARIABLEff[7..0] :DFFE;BEGINff[].clk=clk;ff[].ena=load;ff[].d=d[];q[]=ff[].q;end;七、试验中遇到的问题1、设计八位密码的时候,需要将八位的密码输进判断器,起初采取的不是寄存器的手段,而是自己定义了一个使能开关,当微动开关高电平就允许密码通过使能开关到达a[7..0]或者b[7..0],但是实验发现这样密码并不能被储存起来,后来想明白应该是由于并没有变量储存的机制,所以要想将变量储存必须有寄存器才行,根据教材定义寄存器后,该问题得到解决。
实习报告:电子密码锁设计与实现一、实习背景及目的随着科技的不断发展,电子密码锁作为一种新型的安全防护设备,逐渐应用于日常生活和工作中。
本次实习旨在通过设计和实现一个基于单片机的电子密码锁,掌握电子密码锁的工作原理,提升自己的实际动手能力和创新能力。
二、实习内容1. 电子密码锁的总体设计本次实习设计的电子密码锁主要包括以下几个部分:4x4矩阵键盘、单片机、LCD显示模块、掉电存储模块、报警机构和开锁机构。
其中,4x4矩阵键盘用于输入密码,单片机负责密码的存储、比较和处理,LCD显示模块用于显示密码输入状态和锁的开关状态,掉电存储模块用于保存密码信息,报警机构在密码输入错误时发出报警,开锁机构在密码输入正确时解锁。
2. 硬件设计(1)4x4矩阵键盘:采用行列矩阵式布局,减小了键盘占用的空间,提高了可靠性。
(2)单片机:选用51系列单片机,具备较强的逻辑处理能力和稳定性。
(3)LCD显示模块:采用液晶显示屏,清晰显示密码输入状态和锁的开关状态。
(4)掉电存储模块:采用EEPROM芯片,用于保存密码信息,确保数据不丢失。
(5)报警机构:采用蜂鸣器,声音响亮,提醒用户密码输入错误。
(6)开锁机构:采用继电器,实现电控锁的开关。
3. 软件设计(1)密码输入:用户通过4x4矩阵键盘输入6位密码,密码输入过程中,LCD显示模块实时显示输入的密码。
(2)密码比较:单片机对输入的密码进行处理,与预设的密码进行比较。
(3)密码存储:将正确的密码存储到EEPROM芯片中,确保断电后密码信息不丢失。
(4)报警功能:当密码输入错误达到一定次数时,触发报警。
(5)开锁功能:当输入的密码正确时,通过继电器控制开锁机构解锁。
三、实习心得通过本次实习,我深入了解了电子密码锁的工作原理和设计方法,掌握了单片机、矩阵键盘、LCD显示模块等硬件组件的使用,以及C语言编程技巧。
在实习过程中,我学会了如何根据需求进行合理的模块划分,如何通过程序实现密码的存储、比较和处理,以及如何调试硬件电路。
电子密码锁开题报告电子密码锁开题报告一、背景介绍随着科技的飞速发展,电子密码锁作为一种新型的安全防护设备,逐渐成为人们生活中不可或缺的一部分。
相较于传统的机械密码锁,电子密码锁具备更高的安全性和便利性,因此受到越来越多人的青睐。
本文将对电子密码锁的原理、应用和未来发展进行探讨。
二、电子密码锁的原理电子密码锁的核心原理是通过电子技术实现开锁的过程。
它通常由密码输入模块、控制模块和驱动模块组成。
当用户输入正确的密码后,密码输入模块将信号传递给控制模块,控制模块根据预设的密码进行比对,如果匹配成功,则通过驱动模块控制锁体解锁。
相比传统的机械密码锁,电子密码锁的开锁过程更加安全可靠,同时还可以设置多组密码,方便用户管理。
三、电子密码锁的应用1. 家庭安全电子密码锁在家庭安全方面发挥着重要作用。
传统的机械密码锁容易被破解,而电子密码锁采用数字密码,具备更高的安全性。
此外,电子密码锁还可以设置临时密码,方便家庭成员和亲友的进出,同时还可以记录开锁的时间和人员,为家庭安全提供更多的保障。
2. 商业场所电子密码锁在商业场所的应用也越来越广泛。
例如,酒店房间的门锁普遍采用电子密码锁,客人只需输入正确的密码即可进入房间,无需携带钥匙,提高了入住体验的便利性。
此外,电子密码锁还可以与其他系统集成,如门禁系统、监控系统等,形成一个完整的安全管理系统。
3. 公共设施电子密码锁在公共设施上的应用也逐渐增多。
例如,公共停车场的出入口处常常设置电子密码锁,用户只需输入正确的密码即可进入或离开停车场,方便快捷。
此外,一些公共场所如图书馆、学校等也开始采用电子密码锁,提高了管理效率和安全性。
四、电子密码锁的未来发展随着科技的不断进步,电子密码锁也在不断发展和创新。
未来,电子密码锁可能会与生物识别技术相结合,如指纹识别、人脸识别等,进一步提高安全性和便利性。
同时,随着物联网技术的兴起,电子密码锁还可以与其他智能设备连接,实现更智能化的管理和控制。
电子密码锁实验报告一,实验目的1. 学习按键扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上8个LED数码管,led发光二级管,蜂鸣器设计一电子密码锁。
二,实验要求1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。
2:可以自行设定或删除8位密码,能够掉电保存。
3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
4:自由发挥其他功能.5:要求有单片机硬件系统框图,电路原理图,软件流程图。
三,实验基本原理这个密码锁的功能是使用矩阵键盘中的十二个键输入密码0到9还有退格键和enter 键,输入的同时在八位数码管上显示用户所输入的密码,未输入的位置用横杆填补表述未输入。
输错的密码可以用退格键删除,当输入的密码超出设置的位数时,数据溢出,清零。
用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led 发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
当输入正确的密码,按enter键(每一次密码匹配都要按),本程序时间P1口全部打开,在实际中可以将P1口或是其他IO口接一个电位器,然后打开锁。
四,实验设计分析设计思想本系统采用单片机AT89S52作为核心元件的一款具有本机开锁,加锁,修改密码和错误报警的电子密码锁。
电子密码锁的原理是:从键盘输入一组密码,CPU把该密码和设置密码比较,对则将锁打开,错则要求重新输入,并记录错误次数,如果三次错误,则被强制锁定并报警。
一、前言随着科技的发展,人们对安全的重视程度日益提高,电子密码锁作为一种高科技产品,广泛应用于家庭、企业、银行等领域。
为了提高自己的实践能力,我参加了电子密码锁实训课程,通过本次实训,我对电子密码锁的设计与实现有了更深入的了解,以下是我对本次实训的心得体会。
二、实训内容与过程1. 实训内容本次实训主要包括以下几个方面:(1)电子密码锁原理及设计方法;(2)电子密码锁硬件电路设计;(3)电子密码锁软件编程;(4)电子密码锁仿真与调试。
2. 实训过程(1)理论学习:通过查阅相关资料,了解电子密码锁的基本原理、设计方法以及常见硬件电路。
(2)硬件电路设计:根据实训要求,设计电子密码锁的硬件电路,包括键盘输入、密码存储、显示、报警等模块。
(3)软件编程:根据硬件电路设计,编写电子密码锁的软件程序,实现密码输入、密码存储、密码比较、报警等功能。
(4)仿真与调试:利用Proteus软件对电子密码锁进行仿真,观察电路运行状态,根据仿真结果调整电路参数,直至满足设计要求。
三、实训心得体会1. 基本原理与设计方法通过本次实训,我对电子密码锁的基本原理有了更深入的了解。
电子密码锁主要由以下几个部分组成:(1)密码输入模块:用于输入密码,一般采用键盘输入方式;(2)密码存储模块:用于存储密码,一般采用EEPROM或Flash存储器;(3)密码比较模块:用于比较输入密码与存储密码是否一致;(4)显示模块:用于显示密码输入情况、锁状态等信息;(5)报警模块:用于在密码输入错误时发出报警信号。
在设计电子密码锁时,需要考虑以下几个因素:(1)安全性:密码存储方式要保密,防止他人非法获取;(2)可靠性:电路设计要稳定,防止因电路故障导致密码丢失或误操作;(3)易用性:操作简单,便于用户使用;(4)成本:尽量降低成本,提高产品竞争力。
2. 硬件电路设计在硬件电路设计过程中,我学习了如何选择合适的元器件,如何设计电路板,以及如何布线。
电子密码锁实验报告一、实验目的。
1.了解电子密码锁的工作方式,制定设计方案。
2.利用ISE软件进行可编程逻辑器件设计,完成逻辑仿真功能。
3.使用编译器将设计实现,下载到BASYS2实验板上进行调试和验证所设计的四位二进制数的运算.二、实验器材.1.Pentium—Ⅲ计算机一台;2.BASYS2 实验板一只;三、实验方案。
1.基本功能。
利用开关进行密码输入,并利用一个微动开关作为触发判断,密码正确则显示RRRR,错误则显示FFFF。
2.清零功能。
利用一个微动开关,当微动开关按下则预设密码和验证密码都为0,可以重新设定密码。
3.利用开关进行十进制密码输入。
本密码锁使用sw[3:0]进行密码输入,利用开关表示出十进制数的二进制形式,利用两个微动开关分别作为预设密码与验证密码的确认键,按下确认键则密码输入。
4。
数码管显示本密码锁可以动态显示输入的密码,并且当每一位密码输入时,原密码自动左移一位,未输入密码时数码管显示零。
四、实验原理图。
五、实验模块说明及部分代码。
module checker(s1,c1,c2,c3,an,a_to_go,clk,clr);input [3:0]s1;input c1,c2,c3;output reg[3:0]an;output [6:0]a_to_go;input clr;input clk;reg [16:0] clk_cnt;reg [3:0]num_ge1;reg [3:0]num_shi1;reg [3:0]num_bai1;reg [3:0]num_qian1;reg [3:0]num_ge2;reg [3:0]num_shi2;reg [3:0]num_bai2;reg [3:0]num_qian2;reg [3:0]flag;reg [3:0]choose=0;(* KEEP =”TRUE" *)reg [1:0]panduan;always @(posedge clk)begin //分频clk_cnt=clk_cnt+1;if(clk_cnt[16])clk_cnt=0;endalways @(*)begin //数码管是能循环case(clk_cnt[14:13])2'b00:begin an[3]=1;an[2]=1;an[1]=1;an[0]=0;end2'b01:begin an[3]=1;an[2]=1;an[1]=0;an[0]=1;end2’b10:begin an[3]=1;an[2]=0;an[1]=1;an[0]=1;end2’b11:begin an[3]=0;an[2]=1;an[1]=1;an[0]=1;end default:begin an[3]=1;an[2]=1;an[1]=1;an[0]=1;end endcaseendalways @(posedge c2 or posedge clr)begin //输入设定密码if(clr)beginnum_ge1=0;num_shi1=0;num_bai1=0;num_qian1=0;endelsebeginnum_qian1=num_bai1;num_bai1=num_shi1;num_shi1=num_ge1;num_ge1=s1[3]*8+s1[2]*4+s1[1]*2+s1[0];endendalways @(posedge c3 or posedge clr)begin //输入测试密码if(clr)beginnum_ge2=0;num_shi2=0;num_bai2=0;num_qian2=0;endelsebeginnum_qian2=num_bai2;num_bai2=num_shi2;num_shi2=num_ge2;num_ge2=s1[3]*8+s1[2]*4+s1[1]*2+s1[0];endendalways @(posedge c2 or posedge c3 or posedge c1)begin //显示密码还是原码if(c2)beginchoose=0;endelseif(c3)beginchoose=1;endelsebeginchoose=2;endendalways @(*)begin //显示case(choose)0:case(clk_cnt[14:13])2’b00:begin flag=num_ge1;end2'b01:begin flag=num_shi1;end2’b10:begin flag=num_bai1;end2’b11:begin flag=num_qian1;enddefault begin flag=0;endendcase1:case(clk_cnt[14:13])2'b00:begin flag=num_ge2;end2’b01:begin flag=num_shi2;end2’b10:begin flag=num_bai2;end2’b11:begin flag=num_qian2;enddefault begin flag=0;endendcase2:if(panduan==1)begin flag=4'ha;endelseif(panduan==0)begin flag=4’hf;endelsebegin flag=0;endendcaseendalways @(posedge c1 or posedge clr)begin //判断if(clr)beginpanduan=2;endelseif(num_ge1==num_ge2)if(num_shi1==num_shi2)if(num_bai1==num_bai2)if(num_qian1==num_qian2)beginpanduan=1;endelse begin panduan=0;endelse begin panduan=0;endelse begin panduan=0;endelse begin panduan=0;endendset a1(.flag(flag),。
一、引言随着科技的发展,人们对生活品质和安全性的要求越来越高。
电子密码锁作为一种新型锁具,以其安全性高、操作方便、易于管理等特点,在家庭、企事业单位等领域得到了广泛应用。
本实训报告旨在通过设计和实现一款智能电子密码锁,提高学生的实际动手能力,培养学生的创新思维和团队合作精神。
二、实训目标1. 掌握电子密码锁的基本原理和设计方法。
2. 学会使用单片机、密码学、传感器等相关技术。
3. 提高学生的动手能力和团队协作能力。
4. 培养学生的创新思维和实际应用能力。
三、实训内容1. 硬件设计(1)主控芯片:选用AT89S51单片机作为主控芯片,负责控制整个系统的工作。
(2)密码存储:使用E2PROM AT24C02作为数据存储器,存储密码信息。
(3)输入设备:设计一个4×4键盘,用户通过键盘输入密码。
(4)输出设备:使用蜂鸣器作为报警提示,同时使用LED灯显示开锁状态。
(5)传感器:选用红外传感器作为防夹手功能,检测用户是否夹手。
2. 软件设计(1)密码输入与验证:设计密码输入和验证模块,当用户输入正确密码时,LED 灯亮起,蜂鸣器不响;当用户输入错误密码时,蜂鸣器响,提示用户密码错误。
(2)密码修改:设计密码修改模块,允许用户修改密码。
(3)报警提示:当用户连续3次输入错误密码时,系统自动进入报警状态,蜂鸣器持续响,提示用户。
(4)防夹手功能:当用户夹手时,红外传感器检测到障碍物,蜂鸣器响,提示用户松手。
3. 仿真与测试(1)使用Altium Designer19绘制原理图,完成电路设计。
(2)使用KEIL5软件编写控制程序,实现密码输入、验证、修改、报警提示等功能。
(3)使用protues8.7软件进行仿真,验证电路和程序的正确性。
(4)搭建实物电路,进行实际测试,确保系统稳定可靠。
四、实训成果1. 设计并实现了一款基于单片机的智能电子密码锁。
2. 系统具有密码输入、验证、修改、报警提示、防夹手等功能。
目录第1节引言 (1)1.1 电子密码锁述 (1)1.2 本设计主要任务 (1)1.3 系统主要功能 (2)第2节系统硬件设计 (3)2.1 系统的硬件构成及功能 (3)2.2 AT89C2051单片机及其引脚说明 (3)第3节系统软件设计 (5)3.1 系统主程序设计(流程图) (5)3.2 软件设计思想 (5)3.3 储单元的分配 (5)3.4 系统源程序 (6)3.5 系统应用说明 (9)3.6 小结 (9)结束语 (10)参考文献 (11)附录 (12)- 1 -电子密码锁第1节引言1.1 电子密码锁概述随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。
而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。
传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。
另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。
随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。
从而使密码锁具有很高的安全性、可靠性。
目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。
但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。
很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。
电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。
设计本课题时构思的方案:采用以AT89C2051为核心的单片机控制方案;能防止多次试探而不被破译,从而有效地克服了现实生活中存在的许多缺点。
1.2 本设计主要任务(1)共8位密码,每位的取值范围为1~8。
(2)用户可以自行设定和修改密码。
(3)按每个密码键时都有声、光提示。
(4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。
(5)开锁密码错3次要报警10分钟,报警期间输入密码无效,以防窃贼多次试探密码。
(6)键入的8位开锁密码完全正确才能开锁,开锁时要有1秒的提示音。
(7)密码键盘上只允许有8个密码按键和1个发光管。
锁内有备用电池,只有内部上电复位时才能设置或修改密码,因此,仅在门外按键是不能修改或设置密码的。
(8)密码设定完毕后要有2秒的提示音。
以上是初步设定的电子密码锁的主要功能。
1.3系统主要功能本系统主要由单片机系统、键盘、报警系统组成。
系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。
除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。
本系统成本低廉,功能实用。
第1节电子密码锁硬件设计2.1 系统的硬件构成及功能根据总体要求分析,该密码锁电路所需要的I/O口线少于15个,所以可选择质优价廉的AT89C2051,而且不需要外接程序存储器和数据存储器及其它扩展部件。
电子密码锁由电路和机械两部分组成,此次设计的电子密码锁可以完成密码的修改、设定及非法入侵报警、驱动外围电路等功能。
从硬件上看,它由六部分组成,分别是:LED显示器,显示亮度均匀,显示管各段不随显示数据的变化而变化,且价格低廉,它用于显示键盘输入的相应信息;无须再加外部EPROM存储器,且外围扩展器件较少的AT89C52单片机是整个电路的核心部分;振荡电路为CPU产生赖以工作的时序;显示灯是通过CPU输出的一个高电平,通过三极管放大,驱动继电器吸合,使外加电压与发光二极管导通,从而使发光二极管发光,电机工作。
现在来进行修改密码操作。
修改密码实质就是输入的新密码去取代原来的旧密码。
密码的存储用来存储一位地址加1,密码位数减1,当八个地址均存入一位密码,即密码位数减为零时,密码输入完毕,此时按下确认键,新密码产生,跳出子程序。
为防止非管理员任意的进行密码修改,必须输入正确密码后,按修改密码键,才能重新设置密码。
密码输入值的比较主要有两部分,密码位数与内容任何一个条件不满足,都将会产生出错信息。
当连续三次输入密码出错时,就会出现报警信息,LED显示出错信息,蜂鸣器鸣叫,提醒人注意。
在电路中,P1口连接8个密码按键AN1~AN8,开锁脉冲由P3.5输出,报警和提示音由P3.7输出。
BL是用于报警与声音提示的喇叭,发光管D1用于报警和提示,L是电磁锁的电磁线圈。
图1 电子密码锁硬件电路图2.2.1AT89C2051单片机及其引脚说明AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版与Intel MCS-51系列单片机的指令和输出管脚相兼容。
由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。
内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,AT89C2051是一个有20个引脚的芯片,引脚配置如图2所示。
与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。
图2 AT89C2051引脚配置AT89C2051芯片的20个引脚功能为:VCC 电源电压。
GND 接地。
RST 复位输入。
当RST变为高电平并保持2个机器周期时,所有I/O引脚复至“1”。
XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2 来自反向振荡放大器的输出。
P1口 8位双向I/O口。
引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。
P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1”后,可用作输入。
在闪速编程与编程校验期间,P1口也可接收编码数据。
P3口引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚。
P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。
P3口的输出缓冲器能接收20mA 的灌电流;P3口写入“1”后,内部上拉,可用输入。
P3口也可用作特殊功能口,功P3口同时也可为闪速存储器编程和编程校验接收控制信号。
第3节系统的软件设计图3给出了该单片机密码锁电路的软件流程图。
图中AA1~AA8以及START、SET、SAVE是程序中的标号,是为了理解程序而专门标在流程图的对应位置的,分析程序时可以仔细对照参考。
3.1 系统主程序设计流程图(见附页)3.2 软件设计思想软件任务分析环节是为软件设计做一个总体规划。
从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能(如计算、显示、输出控制和通信等);另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。
这两类软件的设计方法各有特色;执行软件的设计偏重算法效率,与硬件关系密切,千变万化;监控软件着眼全局,主要处理人机关系,特点是逻辑严密、千头万绪。
本设计要完成的软件任务主要有:一是键盘输入的识别;二是8位LED的显示;三是密码的比较、修改、存储;;四是报警和开锁控制电平的输出。
根据以上任务,结合硬件结构,可以将键盘输入的识别用来作为系统的监控程序(主程序),用显示程序来延时,不断查询键盘。
如果有键按下,就得到相应的键值。
结合当前系统所处的状态,调用不同的操作模块,实现相应的功能。
而执行模块主要有数字输入模块、确定键模块、修改键模块、显示模块及报警模块。
3.3 存储单元的分配该密码锁中RAM存储单元的分配方案如下:31H~38H:依次存放8位设定的密码,首位密码存放在31H单元;R0:指向密码地址;R2:已经键入密码的位数;R3:存放允许的错码次数3与实际错码次数的差值;R4至R7:延时用;00H:错码标志位。
对于ROM存储单元的分配,由于程序比较短,而且占用的存储空间比较少,因此,在无特殊要求时,可以从0030H单元(其它地址也可以)开始存放主程序。
3.4 系统源程序ORG 0000HAJMP STARTORG 0030HSTART:ACALL BPMOV:R0,#31HMOV:R2,#8SET:MOV:P1,#0FFHMOV:A,P1CJNE:A,#0FFH,L8AJMP SETL8: ACALL DELAYCJNE A,#0FFH,SAVEAJMP SETSAVE:ACALL BPMOV @R0,AINC R0DJNZ R2,SETMOV R5,#16D2S:ACALL BPDJNZ R5,D2SMOV R0,#31HMOV R3,#3AA1:MOV R2,#8AA2:MOV P1,#0FFH MOV A,P1CJNE A,#0FFH,L9 AJMP AA2L9:ACALL DELAY CJNE A,#0FFH,AA3 AJMP AA2AA3 ACALL BPCLR CSUBB A,@R0INC R0CJNE A,#00H,AA4 AJMP AA5AA4:SETB 00HAA5:DJNZ R2,AA2 JB 00H,AA6CLR P3.5L3:MOV R5,#8 ACALL BPDJNZ R4,L3MOV R3,#3SETB P3.5AJMP AA1AA6:DJNZ R3,AA7MOV R5,#24L5:MOV R4,#200L4:ACALL BPDJNZ R4,L4DJNZ R5,L5MOV R3,#3AA7:MOV R5,#40ACALL BPDJNZ R5,AA7AA8:CLR 00HAJMP AA1BP:CLR P3.7 MOV R7,#250 L2:MOV R6,#124L1:DJNZ R6,L1CPL P3.7DJNZ R7,L2SETBRETDELAY MOV R7,#20L7:MOV R6,#125L6:DJNZ R6,L6DJNZ R7,L7RETEND3.5 应用说明若按键AN1~AN7分别代表数码1~7,按键AN0代表数码8。
在没有键按下时,P1.0~P1.7全是高电平1,若某个键被按下,相应的口线就变为低电平0。