电子锁设计
- 格式:doc
- 大小:576.25 KB
- 文档页数:22
电子锁设计心得体会5篇面对新的挑战,我们要保持开放的心态,以便从中获得宝贵的心得体会,通过总结过去的经历,我们能够获得更多关于自己的心得体会,下面是作者为您分享的电子锁设计心得体会5篇,感谢您的参阅。
电子锁设计心得体会篇1通过这一周的课程设计,我对一些专业知识和电子设计有了更深的了解,同时也尝试着去应用自己的所掌握的知识。
本次电子课程设计主要是对本学年学习的模拟电子技术和数字电子技术的应用,同时加上电路等知识,设计一些课题。
经过几天的奋战,我感受非常深。
我和客某某、沈某某三个人在参加学校电子设计大赛并获奖后,便成了参加明年的北京市电子深感自己在培养动手能力这方面还需非常大的努力。
于是,这次我们在积累参加电子设计大赛和培训的基础上,在老师的指导下,准备把这个课程设计作为一次练兵,争取为明年的北京市电子设计大赛做足准备,取得一个好成绩。
电子课程设计不仅给我们提供了一个非常好的展现应用自己所掌握的知识的平台,又是检验自己所学知识的一次考核。
我们运用各自在各方面的优势中和起来,形成了一个团队。
通过团队力量,才使设计得以完成。
可以说,我们三个人是一个不可或缺的整体,少了任何一个人都是无法完成任务的。
单片机是我们下学期要学的一门非常重要的课程,它具有强大的功能。
由于我们对单片机的应用有了一定的了解,同时也为了下学期学习单片机打好基础,于是这次设计主要是以单片机为主的。
一个是单片机编程器,另一个便是对单片机的一个应用电母鸡。
在设计的过程中我们也不可避免的遇到了非常多的问题。
尤其是在调试过程中,会因为某些原因出不来结果,或三个人之间出现了意见分歧,但在最后都达成了一致。
最后在调试结果出来后,我们更是无比的兴奋,无比的自豪。
总之,通过这次电子课程设计,我不仅对自己的知识有了更好的掌握和应用,更了解到团队精神的力量。
在以后的学习和生活中受用终身。
电子锁设计心得体会篇2时光匆匆而过,一周转瞬即逝。
在过去的这一周时光里面,原本以为会比较简单的设计任务却让我觉得有点措手不及。
单片机电子密码锁设计一、设计背景随着科技的不断发展,传统的机械锁已经不能满足人们对于安全性和便捷性的需求。
电子密码锁具有保密性好、操作方便等优点,逐渐取代了传统机械锁。
单片机作为一种集成度高、功能强大的微控制器,为电子密码锁的设计提供了良好的硬件基础。
二、系统总体设计本电子密码锁系统主要由单片机控制模块、键盘输入模块、显示模块、存储模块和开锁控制模块等部分组成。
单片机控制模块是整个系统的核心,负责处理输入信息、控制各个模块的工作以及进行密码的验证和存储。
键盘输入模块用于用户输入密码,通常采用 4×4 矩阵键盘,可实现数字 0 9 以及确认、取消等功能按键的输入。
显示模块用于显示系统的相关信息,如输入的密码、提示信息等。
常见的显示方式有液晶显示屏(LCD)和数码管显示。
存储模块用于存储设置的密码,以便系统在断电后仍能保存密码信息。
EEPROM 存储器具有掉电不丢失数据的特点,适合用于密码存储。
开锁控制模块在密码验证通过后,控制电磁锁或电机等执行机构完成开锁动作。
三、硬件设计1、单片机选型选择一款合适的单片机是系统设计的关键。
常用的单片机有 51 系列、STM32 系列等。
51 系列单片机价格低廉、开发简单,适合本设计的需求。
2、键盘接口电路采用行列式扫描的方式实现 4×4 矩阵键盘的接口电路。
通过单片机的 I/O 口依次扫描行线和列线,判断按键的按下状态。
3、显示电路如果选择液晶显示屏(LCD),则需要通过单片机的并行接口或串行接口与 LCD 控制器进行通信,实现字符和图形的显示。
数码管显示则相对简单,通过单片机控制数码管的段选和位选信号即可。
4、存储电路EEPROM 存储器通过 I2C 总线与单片机连接,单片机通过发送特定的指令和数据来实现对 EEPROM 的读写操作。
5、开锁控制电路使用继电器或三极管驱动电磁锁或电机,单片机输出高电平或低电平来控制开锁电路的通断。
四、软件设计1、主程序流程系统上电后,首先进行初始化操作,包括单片机内部资源的初始化、显示模块的初始化、存储模块的初始化等。
基于51单片机电子锁设计摘要随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。
本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。
根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。
而且采用键盘输入的电子密码锁具有较高的优势。
采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。
软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。
测试结果表明,本系统各项功能已达到本设计的所有要求。
关键词:单片机;密码锁;单片机设计,电子锁。
Electronic Lock Design with 51 Serires Single Chip ControllerAbstractAlong with the exaltation of social science and the living level of people, how carry out the family to guard against theft, this problem also change particularly outstanding.Because of the simple construct of traditional machine lock,the affairs of theft is hackneyed.the electronics lock is safer because of its confidentiality, using the vivid good, the safe coefficient is high, being subjected to the large customer close.It can carry out the key information to register in the main on board initial attestation, the password information encrypt etc. Go to correspond by letter the principle according to the string between 51 machines, this is easy to encrypt and protect to the passwords information random. Adopt the numerical signal codes,not only can carry out many controls of the road information, raise the anti- interference that signal deliver, reduce the mistake action,but also the power consume is low, Respond quickly,the efficiency deliver is high, work stable credibility etc. The software design adoption the design thought from top to bottom, to make the system toward wear distribute type,turn to the direction development of small, strengthen the system and can expand the stability and circulate.Test the result enunciation, various functions of this system are already all request of this design.keyword:singlechip;cryptogram lock;singlechip design; electronics lock.目录1 绪论 (1)1.1 引言 (1)1.2 电子密码锁的背景 (1)1.3 电子锁设计的意义的本设计特点 (2)2.系统设计 (3)2.1系统总设计结构图 (3)2.2.开锁机构设计 (3)2.2.1主控芯片AT89C51单片机的简介 (4)3系统硬件设计 (6)3.1键盘设计 (6)3.2系统电路设计: (8)3.2.1 晶振时钟电路 (8)3.2.2复位电路设计 (8)3.2.3串口引脚功能介绍 (8)3.2.4 其它引脚 (9)3.3电路图的绘制 (9)3.3.1 PROTEL 99 SE简介: (12)3.4原器件采购 (14)3.5电路焊接 (14)4.软件设计 (17)4.1 系统软件设计整体思路 (17)4.2系统软件设计流程图 (18)5 程序调试 (19)5.1 程序调试用到的软件及工具 (19)5.2 KEIL C51简介 (19)5.3 调试过程 (19)6 设计总结与展望 (22)致谢 (23)参考文献 (24)附录 (25)1 绪论1.1 引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。
千里之行,始于足下。
电子密码锁的电路设计电子密码锁是一种基于数字密码输入的锁,它利用电子电路技术实现了对锁的控制和解锁功能。
下面将介绍如何设计一个简单的电子密码锁电路。
整个电子密码锁电路设计主要包括以下几个部分:1. 数码键盘模块:用于输入密码的模块,一般采用矩阵键盘或单片机带有键盘的模块。
2. 输入密码存储模块:用于存储用户设置的密码,可以采用EEPROM、FLASH等非易失性存储器。
3. 控制逻辑模块:用于控制电子锁的解锁和上锁功能,可以采用CMOS逻辑门电路实现。
4. 驱动模块:用于驱动电子锁的解锁和上锁功能,可以采用继电器、场效应管等。
5. 电源供电模块:为整个电路提供稳定的电源,可以采用适配器、电池等。
下面将详细介绍每个模块的设计原理和具体实现方法:1. 数码键盘模块:常见的数码键盘有4x4或4x3结构,可以使用针对数码键盘的扫描编码技术,通过扫描按键状态来确定按键的值。
2. 输入密码存储模块:采用非易失性存储器,如EEPROM、FLASH等,可以在电源关闭后依然保存数据,这样可以避免用户密码丢失的情况。
第1页/共2页锲而不舍,金石可镂。
3. 控制逻辑模块:控制逻辑模块根据输入密码和已存储的密码进行比较,如果匹配则解锁,这里可以使用CMOS逻辑门电路实现比较功能,比如采用与门和非门组合。
4. 驱动模块:驱动模块用于控制电子锁的解锁和上锁功能,可以采用继电器、场效应管等。
当密码匹配正确时,驱动模块接通电子锁电路,实现解锁功能。
5. 电源供电模块:为整个电路提供稳定的电源,可以采用适配器、电池等,要保证电源电压稳定,并且能够支持电子锁的工作电压。
总结:电子密码锁电路的设计主要包括数码键盘模块、输入密码存储模块、控制逻辑模块、驱动模块和电源供电模块。
需要注意的是,电子密码锁电路的安全性非常重要,密码存储模块需要保护好,以防止密码泄露。
此外,为了增加密码的复杂度,可以加入密码长度和重试次数的限制等措施。
电子密码锁毕业设计电子密码锁毕业设计近年来,随着科技的不断发展,电子密码锁作为一种新型的安全设备,逐渐成为人们生活中不可或缺的一部分。
作为一名大学生,我也对电子密码锁产生了浓厚的兴趣,并决定将其作为我的毕业设计主题。
首先,我对电子密码锁的基本原理进行了深入的研究。
电子密码锁主要由密码输入模块、控制模块和电机驱动模块组成。
通过密码输入模块,用户可以输入自己设定的密码。
控制模块负责接收用户输入的密码,并与预设的密码进行比对,如果输入正确,则通过电机驱动模块控制锁的开关。
这种设计简单而高效,能够有效地保护用户的财产安全。
接下来,我开始着手设计我的电子密码锁。
我决定采用微控制器作为控制模块,并使用数字密码键盘作为密码输入模块。
为了增加系统的稳定性和安全性,我还添加了指纹识别模块和蓝牙模块。
通过指纹识别模块,用户可以使用自己的指纹进行解锁,这种方式更加方便快捷。
而蓝牙模块则可以实现手机远程开锁的功能,用户只需通过手机发送指令,即可控制电子密码锁的开关。
这种设计不仅提高了用户的使用便利性,同时也增加了系统的安全性。
在设计过程中,我遇到了许多挑战。
首先是如何保证系统的稳定性和安全性。
为了解决这个问题,我进行了大量的实验和测试,不断优化系统的设计。
其次是如何提高系统的响应速度。
通过对系统的硬件和软件进行优化,我成功地将响应时间缩短到了毫秒级别。
最后是如何保证系统的可靠性。
我进行了多次的测试和模拟,确保系统在各种条件下都能正常工作。
在完成设计后,我进行了一系列的实验和测试。
通过对系统的各项指标进行评估,我发现我的电子密码锁在安全性、稳定性和响应速度等方面都达到了预期的要求。
同时,我还对系统进行了实际应用测试,得到了用户的积极反馈。
他们对电子密码锁的使用体验非常满意,并对我的毕业设计表示了赞赏和肯定。
通过这次毕业设计,我不仅深入了解了电子密码锁的原理和设计方法,还提高了自己的动手实践能力和解决问题的能力。
同时,我也意识到科技的发展给我们的生活带来了巨大的改变,我们应该积极拥抱科技,并将其运用到实际生活中,为人们带来更多的便利和安全。
第1节引言1.1 电子密码锁概述随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。
而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。
传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。
另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。
随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。
从而使密码锁具有很高的安全性、可靠性。
目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。
但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。
很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。
电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。
设计本课题时构思的方案:采用以AT89C2051为核心的单片机控制方案;能防止多次试探而不被破译,从而有效地克服了现实生活中存在的许多缺点。
1.2 本设计主要任务(1)共8位密码,每位的取值范围为1~8。
(2)用户可以自行设定和修改密码。
(3)按每个密码键时都有声、光提示。
(4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。
(5)开锁密码错3次要报警10分钟,报警期间输入密码无效,以防窃贼多次试探密码。
(6)键入的8位开锁密码完全正确才能开锁,开锁时要有1秒的提示音。
(7)密码键盘上只允许有8个密码按键和1个发光管。
物理与电子信息学院数字电路课程设计报告书姓名:班级:学号时间:论文题目电子密码锁的设计课程论文要求设计一个电子密码锁,要求如下:1、有10个数字号码0,1,2,········9,设定密码号为3,5,6,7,按从高位到低位顺序开锁。
2、只有输入正确的密码时,锁才能打开,且经历一段时间后电路自动返回原始状态,以指示灯的状态来表示锁的关闭和打开。
3、当按下任意一个非密码号时,锁不打开,指示灯不亮。
设计过程(包括:设计方案、电路分析、仿真结果、软硬件结合测试步骤和结果、设计收获和体会)设计方案与论证:电子锁的种类比较多,电路的结构形式也有多种,有触摸开关编码,也有光电编码,既可以用分立元件(晶体管、晶闸管)组成,也可以用集成电路组成,甚至可以用带有处理系统的微处理器(单片机)做。
方案一〈采用数字电路〉1、原理方框图图(1-1)其原理框图如上图所示,整个电子密码锁由三部分组成:编码电路、主体编码驱动锁数码开关指示灯数码开关寄存器电路、复位电路。
其中十个按键开关与电源组成编码电路,并提前设置好密码。
主体电路由四个D 触发器组成的移位寄存器和四个密码按键相连,以驱动继电器开锁和指示灯亮。
复位电路有两部分,一部分是由剩下的非密码按键进行复位功能,另一部分是由高电平信号经过门电路进行复位。
方案二〈采用单片机〉2、原理方框图图(1-2)使用单片机的原理框图如上所示,依据其画出其单片机的程序流程图并借此进行程序的设计分析:分配好所需的存储单元和其他相关内容,然后再进行整体的程序设计。
在程序仿真没有问题后,对单片机烧录程序后,然后进行电路的硬件电路设计。
设计论证初始化设置密码按键指令输入译码驱动锁指示灯锁存控制寄存器本设计所构想的两个方案中,方案二采用了单片机的硬件和软件相结合的方法,利用了汇编语言的强大功能,通过编写一个合适的正确的汇编程序,依靠所接的按键开关输入相应的指令就可以进行一系列的程序操作,从而实现所需要的功能。
32.电子密码锁设计1.实验任务根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。
2.电路原理图图4.32.13.系统板上硬件连线(1).把“单片机系统”区域中的P0.0/AD0用导线连接到“音频放大模块”区域中的SPK IN端子上;(2).把“音频放大模块”区域中的SPK OUT端子接喇叭和;(3).把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“四路静态数码显示”区域中的任一个ABCDEFGH端子上;(4).把“单片机系统“区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L1端子上;(5).把“单片机系统”区域中的P3.6/WR、P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2端子上;4.程序设计内容(1).密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。
(2).密码的输入问题:由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程。
(3).按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。
5.C语言源程序#include <AT89X52.H>unsigned char code ps[]={1,2,3,4,5};unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}; unsigned char pslen=9;unsigned char templen;unsigned char digit;unsigned char funcount;unsigned char digitcount;unsigned char psbuf[9];bit cmpflag;bit hibitflag;bit errorflag;bit rightflag;unsigned int second3;unsigned int aa;unsigned int bb;bit alarmflag;bit exchangeflag;unsigned int cc;unsigned int dd;bit okflag;unsigned char oka;unsigned char okb;void main(void){unsigned char i,j;P2=dispcode[digitcount];TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;TR0=1;ET0=1;EA=1;while(1){if(cmpflag==0){if(P3_6==0) //function key{for(i=10;i>0;i--)for(j=248;j>0;j--);if(P3_6==0){if(hibitflag==0){funcount++;if(funcount==pslen+2) {funcount=0;cmpflag=1;}P1=dispcode[funcount]; }else{second3=0;}while(P3_6==0);}}if(P3_7==0) //digit key{for(i=10;i>0;i--)for(j=248;j>0;j--);if(P3_7==0){if(hibitflag==0){digitcount++; if(digitcount==10){digitcount=0;}P2=dispcode[digitcount];if(funcount==1){pslen=digitcount;templen=pslen;}else if(funcount>1){psbuf[funcount-2]=digitcount; }}else{second3=0;}while(P3_7==0);}}}else{cmpflag=0;for(i=0;i<pslen;i++){if(ps[i]!=psbuf[i]) {hibitflag=1;i=pslen;errorflag=1;rightflag=0;cmpflag=0;second3=0;goto a;}}cc=0;errorflag=0;rightflag=1;hibitflag=0;a: cmpflag=0;}}}void t0(void) interrupt 1 using 0 {TH0=(65536-500)/256;TL0=(65536-500)%256;if((errorflag==1) && (rightflag==0)) {bb++;if(bb==800){bb=0;alarmflag=~alarmflag;}if(alarmflag==1){P0_0=~P0_0;}aa++;if(aa==800){aa=0;P0_1=~P0_1;}second3++;if(second3==6400){second3=0;hibitflag=0;errorflag=0;rightflag=0;P0_1=1;alarmflag=0;bb=0;aa=0;}}if((errorflag==0) && (rightflag==1)) {P0_1=0;cc++;if(cc<1000){okflag=1;}else if(cc<2000){okflag=0;}else{errorflag=0;rightflag=0;hibitflag=0;cmpflag=0;P0_1=1;cc=0;okb=0;okflag=0;P0_0=1;}if(okflag==1){oka++;if(oka==2){oka=0;P0_0=~P0_0; }}else{okb++;if(okb==3){okb=0;P0_0=~P0_0; }}}}。
电子锁课程设计报告一、课程目标知识目标:1. 学生理解电子锁的基本原理,掌握电子锁的组成部分及功能。
2. 学生掌握电子锁的安装、调试及故障排除方法。
3. 学生了解电子锁在生活中的应用及其安全性。
技能目标:1. 学生能够独立完成电子锁的组装与拆解。
2. 学生能够运用所学知识,分析并解决电子锁使用过程中遇到的问题。
3. 学生能够运用电子锁相关知识,设计简单的智能安防系统。
情感态度价值观目标:1. 学生培养对电子锁及智能安防设备的兴趣,激发探索科技的热情。
2. 学生树立安全意识,认识到电子锁在现代生活中的重要作用。
3. 学生培养团队协作精神,学会分享与交流,提高沟通能力。
课程性质:本课程为实践性较强的课程,结合理论知识与实践操作,旨在培养学生的动手能力、解决问题能力和创新思维。
学生特点:学生为八年级学生,具有一定的电子知识基础,好奇心强,喜欢动手操作,但注意力集中时间有限。
教学要求:注重理论与实践相结合,以学生为主体,充分调动学生的积极性,引导学生主动探究,提高学生的实践操作能力。
同时,关注学生的个体差异,因材施教,确保每个学生都能在课程中取得进步。
通过课程目标的分解,使学生在学习过程中达到预期的学习成果,为后续的教学设计和评估提供依据。
二、教学内容1. 电子锁原理及分类:介绍电子锁的工作原理,电子锁的分类及特点,使学生了解电子锁的基本概念。
教材章节:《电子技术》第四章第三节“电子锁的原理与分类”。
2. 电子锁的组成部分:讲解电子锁的主要组成部分,如电磁铁、传感器、控制器等,并分析各部分功能。
教材章节:《电子技术》第四章第四节“电子锁的组成与功能”。
3. 电子锁的安装与调试:教授电子锁的安装方法,介绍调试过程中需要注意的问题及解决方法。
教材章节:《电子技术》第四章第五节“电子锁的安装与调试”。
4. 电子锁的故障排除:分析电子锁常见故障现象,教授故障排除方法,提高学生解决问题的能力。
教材章节:《电子技术》第四章第六节“电子锁的故障分析与排除”。
数电课程设计-电子密码锁电子密码锁设计任务及要求:使用电子器件设计制作一个密码锁,只有输入正确的代码时才能开锁。
在锁的控制电路中设一个可以修改的4位代码,当输入的代码和控制电路的代码一致时,锁打开。
用红灯亮、绿灯灭表示关锁,绿灯亮、红灯灭表示开锁。
如果30秒内未将锁打开,则电路自动复位进入自锁状态,并发报警信号。
方案设计及论证:设计思路是设多组用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,输入的密码无效。
电路内部设置一个密码校验电路来验证密码正确与否,只有密码输入正确才能输出开锁所需的信号。
还应设置一组密码修改按键。
但用户按动输入开始键开始计时(只有按动了输入开始键之后输入的密码才有效),密码输入时间超过设定时间电路将报警,只有输入正确密码或断开电源报警铃才能停止,同时电路自锁,防止他人的非法操作。
具体方案如下:设17个用户输入键,其中只有4个是有效的密码按键,其它都是干扰键,还预设了4个密码修改键。
打开输入开关,电路开始计时,输入密码,开始校验,密码正确则开锁(绿灯亮表示开锁)同时停止计时;如果密码输入错误,则运行555单稳态电路密码锁定5分钟(红灯亮表示关锁),输入时间超过30秒密码也会锁定。
本文介绍了一个基于逻辑电路原理设计的电子密码锁电路。
该电路包括16个密码按键,其中4个为有效输入按键,采用4位密码输入。
只有在输入正确的密码后,才能实现对灯的电子控制。
该电路还包括各种附加电路,如报警和锁定功能,从而具有较高的安全系数。
该电路经过多次修改和整理,可以满足人们的基本要求。
但是,由于水平有限,该电路中存在一定的问题。
例如,电路的计时功能有误差,不能精确地对电路进行限时输入。
此外,用开关作为74LS112的CLK脉冲不是很稳定,可以考虑调换其他高速开关或计数脉冲。
最后,电路中未加显示电路,但可以通过其他数字模块实现这一功能。
为了进一步完善该电路,本文使用EWB软件对设计电路进行了逐步调试。
摘要现代社会,单片机技术越来越广泛的应用于生产生活的各个领域,它可以实现我们对军事、工业、航天、农业以及交通等社会生活各领域的实际事件的模型建立及设计。
而随着社会发展的进步,保密工作也已经成为越来越重要的任务,密码锁的设计成为十分显示以及必要的话题。
此次能力拓展训练,通过单片机的控制实现密码锁的设计。
设计的总体思想采取将完整任务模块化的方式,通过对各个功能的分别解决,最终实现任务的完成。
三个独立模块分别是矩阵键盘、数码管显示和显示状态的指示灯电路。
这三个模块分别作为信号的输入或输出部分,与单片机实现连接,单片机通过对信号的接收和处理,控制各个模块电路实现相应功能。
关键词:密码锁,模块电路,单片机控制目录1设计任务及要求分析 (1)2方案提出及论证说明 (1)3硬件设计及功能分析 (2)3.1矩阵键盘 (2)3.2数码显示 (3)3.3声光提示电路 (4)4软件设计分析 (5)4.1程序的流程图 (5)4.2模块程序设计及说明 (6)4.2.1键盘扫描及编码程序 (6)4.2.2数码管动态显示程序 (8)5仿真与调试 (9)心得体会 (12)参考文献 (13)附录一硬件原理图 (14)附录二源程序 (15)电子密码锁设计1设计任务及要求分析本次能力拓展训练设计要求是电子密码锁,在锁开的状态下输入密码,设置的密码共4位,用数据开关K1~K10分别代表数字1,2,…,9,0,输入的密码用数码管显示,最后输入的密码显示在最右边的数码管上,即每输入一位数,密码在数码管上的显示左移一位。
可删除输入的数字,删除的是最后输入的数字,每删除一位,密码在数码管的显示右移一位,并在左边空出的位上补充“0”。
用一位输出电平的状态代表锁的开闭状态。
2方案提出及论证说明本次设计,可以考虑使用Max+plusⅡ、EDA实验箱完成任务,但由于受到实验设备的限制以及对相关软件的掌握程度。
最终确定本次设计选用AT89C51单片机作为核心控制器。
AT89C51的元件图如下:图2-1 A T89C51元件图根据要求,不难想出,此次任务的完成需要完成键盘输入、数码显示、报警提示等模块的工作,组成以单片机为核心的总设计电路。
其中键盘输入属于输入部分,数码显示和报警提示属于显示部分。
输入功能可以根据需要配置的键位选择合适的矩阵键盘;而根据要求数字显示部分至少使用四位的数码管,密码锁状态的提示在这里我设计一个发光二极管和扩音器的配合电路实现声光提示从而提示锁的开闭状态。
另外,在本次拓展训练的提高部分提出万能密码的设计,以保证密码锁主人能在忘记密码的情况下仍然可以顺利打开密码锁。
可以考虑在程序设计时,初始化一组数据作为万能密码。
这些任务之后,设计密码锁的关键在于如何确定输入数字匹配设置密码,从而确认是否开锁。
考虑到模块电路设计的简洁性,此次设计仍然采用模块电路逐一完成各个功能的设计思路。
通过以上分析,可以初步确定一下的方案结构框图:图2-2 硬件结构框图3硬件设计及功能分析根据第二章的基本思路,分别设计各模块硬件电路如下。
3.1矩阵键盘数据的输入功能由键盘来完成。
整个设计中除了10个数字键之外还需要一些功能键作为辅助来完成设计任务的要求。
这里用到三个基本的功能键:设置密码的功能键Kset,删除输入的功能键Kdel。
另外,为了表示和控制锁的开关状态,还需要一个功能键来控制上锁Kclo。
因而总共涉及到13个按键。
键盘选用4x4矩阵键盘其电路图如下图所示:图3-1 矩阵键盘电路如图所示,矩阵键盘的工作原理分析如下:1)键盘工作方式键盘分布成四行四列。
工作时,先让行线全为零,检测列线。
若列线不是全为高电平,则表明有键按下,同时也可以确定按键在第几列。
接下来进行低电平逐行扫描即可获知按键在第几行。
这在程序编写时可以实现。
2)功能键介绍在该矩阵键盘中设有的三个功能键中Kdel键,可以实现输入数字的删除,删除最后一位输入的数,同时数码管上的显示会向右移一位。
Kset键作为密码设置键,在开锁的状态下,若输入了四位数字,再按一下Kset键,就可以设置其开锁密码。
另外,由于不涉及机械结构,这里用一个按键来表示上锁,即Kclo键。
在开锁状态下,按下Kclo键,数码管的显示将会清空,同时将锁锁上。
各键位的功能可分别在程序编码中实现。
3.2数码显示显示电路使用的是数码管。
由于电路图的设计采用的是protues软件,其中已有组合好的四位共阳极数码管,设计电路时可以直接调用所需型号,这里采用7SEG-MPX4-CA。
如图3-2所示,它有四个位选端口和八个段选端口。
每一位数字都是由八个发光二极管组成,它们的阳极接在一起,即位选端口。
因而在位选端口上加上正电压就可以选通该位。
四位数字的相同段都接在一起,即段选端口。
因而将段选端口接低电平时就可以点亮该段。
图3-2 显示输入数字的数码管3.3声光提示电路仿真时,电子锁不同于机械锁,我们无法通过观察知道锁的开关状态,要将密码锁上锁,可以用键盘来控制,而锁打开后必须通过辅助部件的提示确认锁的开关状态。
因此设计了该声光提示电路以提示密码锁的状态,如下图所示。
灯亮并发出响声时表示锁已经打开;灯灭时表示锁已上锁。
图3-3 指示灯电路图该部分也可以通过程序编码实现。
当确认密码输入正确时,打开密码锁,并由C51发出一个高电平信号触发声光显示。
4软件设计分析4.1程序的流程图由前章的介绍及分析,已大致了解各模块的程序结构,再结合整个电路图及需要完成的任务,设计流程图如下:图4-1 程序流程图开始开始有键按下?有键按下?显示显示校验密码?校验密码?readkey ()readkey ()开锁开锁小于10小于10121211111010存密码存密码上锁上锁删除删除赋值赋值显示显示是否松开?是否松开?YNYY NN4.2模块程序设计及说明这里,还可以从模块入手,将程序所要完成的任务编写成子程序,待需要时直接调用即可。
以下着重介绍实现密码锁功能的几个重要子程序,完整的源程序见附录二。
4.2.1键盘扫描及编码程序要能够成功输入密码,并使键盘输入数据对应数码管显示,需要正确识别按键;按键的识别包括键盘扫描和编码键值两个部分。
其中键盘扫描程序如下:unsigned char key(void){unsigned char ka,kb;P2=0xf0;if((P2&0xf0)!=0xf0){dlm(); //消抖延时if((P2&0xf0)!=0xf0){ka=0xfe;while((ka&0x10)!=0) //逐行扫描{P2=ka;if((P2&0xf0)!=0xf0){kb=(P2&0xf0)|0x0f;return((~ka)+(~kb)); //返回特征码}elseka=(ka<<1)|0x01;}}}return(0x00); //没有按键按下时特征值返回0 }键盘扫描过程中,便涉及到前面硬件设计中关于键盘工作方式的讨论分析,首先行信号全部赋值为零,并检测列信号,以确定按键所在列。
而后就是逐行赋值为零的扫描,从而确定行数。
于是也就唯一确定了按的是哪一个键。
最后将扫描的特征码做返回值,若无按键则返回0x00。
再将返回的特征值借助编码程序转换成为相应的键值。
键值编码程序如下:unsigned char readkey(void){switch(key()){case 0x11 : return(0x00); break;case 0x21 : return(0x01); break;case 0x41 : return(0x02); break;case 0x81 : return(0x03); break;case 0x12 : return(0x04); break;case 0x22 : return(0x05); break;case 0x42 : return(0x06); break;case 0x82 : return(0x07); break;case 0x14 : return(0x08); break;case 0x24 : return(0x09); break;case 0x44 : return(0x0a); break;case 0x84 : return(0x0b); break;case 0x18 : return(0x0c); break;case 0x28 : return(0x0d); break;case 0x48 : return(0x0e); break;case 0x88 : return(0x0f); break;default : return(0xff);}}如上述程序所示,十六个按键依次编码为十六进制的各位数,对于乱码或是没有按键则返回0xff。
在程序中用数组a[]来存储由键盘输入的数字,该部分程序如下:void shuru(void){a[0]=a[1];a[1]=a[2];a[2]=a[3];a[3]=readkey();}4.2.2数码管动态显示程序通过查阅相关知识,我了解到数码管显示数据有静态显示和动态(扫描)显示之分。
静态显示就是显示驱动电路具有输出所存功能,数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。
动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。
然而我们此次所需的显示方式显然是当输入密码时需要时刻更新的,故需采用动态显示方式。
虽然动态显示有闪烁感,但是人眼存在视觉暂留,在数码管刚熄灭的一小段时间内,人眼中的图像不会消失,利用这一点,只要在这段时间内再次点亮数码管,人眼就就不会发觉灯的闪烁。
这就是数码管动态显示的基本原理,这也是接受生活中某些例子的启发。
其程序如下:while(1){P3=0x01; P0=s[a[0]]; dlm();P3=0x02; P0=s[a[1]]; dlm();P3=0x04; P0=s[a[2]]; dlm();P3=0x08; P0=s[a[3]]; dlm();}如程序所示,单片机的P3口控制位选端口,P0控制段选端口,利用数组查询的方式将数字转换成相应的显示码。
数码管亮起来也需要短暂的时间,再在其中插入延时环节,并注意延时过长就会出现闪烁现象。
最终实现数码管数据的最终显示。
5仿真与调试设计要求最后输入的密码显示在最右边的数码管上,即每输入一位数,密码在数码管上的显示左移一位。
调试效果如下图组所示(这里选择设置密码为0687):首先按下“K10”键时,最右边显示数字0。
再按下“K6”键时,0向左移一位,最右边显示6。
然后按下“K8”键时0和6向左移一位,最右边显示8。