电子密码锁设计.doc

上传人:小小飞 文档编号:5052315 上传时间:2020-01-30 格式:DOC 页数:17 大小:328.02KB
返回 下载 相关 举报
电子密码锁设计.doc_第1页
第1页 / 共17页
电子密码锁设计.doc_第2页
第2页 / 共17页
电子密码锁设计.doc_第3页
第3页 / 共17页
电子密码锁设计.doc_第4页
第4页 / 共17页
电子密码锁设计.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《电子密码锁设计.doc》由会员分享,可在线阅读,更多相关《电子密码锁设计.doc(17页珍藏版)》请在三一文库上搜索。

1、电子密码锁设计1 设计任务及要求 初始条件:计算机、Max+plus、EDA实验箱。主要任务与要求:设计一个电子密码锁,在锁开的状态下输入密码,设置的密码共4位,用数据开关K1K10分别代表数字1,2,9,0,输入的密码用数码管显示,最后输入的密码显示在最右边的数码管上,即每输入一位数,密码在数码管上的显示左移一位。可删除输入的数字,删除的是最后输入的数字,每删除一位,密码在数码管的显示右移一位,并在左边空出的位上补充“0”。用一位输出电平的状态代表锁的开闭状态。提高部分:为保证密码锁主人能打开密码锁,设置一个万能密码,在主人忘记密码时使用。2 EDA简介EDA技术是在电子CAD技术基础上发展

2、起来的通用软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。EDA 设计可分为系统级、电路级和物理实现级。物理级设计主要指IC版图设计,一般由半导体厂家完成;系统级设计主要面对大型复杂的电子产品;而一般民用及教学所涉及基本是电路级设计。我们常用的EDA软件多属于电路级设计。 电路初级设计工作,是在电子工程师接受系统设计任务后,首先确定设计方案,并选择合适的元器件,然后根据具体的元器件设计电路原理图,接着进行第一次仿真。其中包括数字电路的逻辑模拟、故障分析、模拟电路的交直流分析、瞬态分析等。这一次仿真主要是检验设计方案在功能

3、方面的正确性。仿真通过后,根据原理图产生的电气连接网络表进行PCB板的自动布局布线,有条件的还可以进行PCB后分析。其中包括热分析、噪声及窜扰分析、电磁兼容分析、可靠性分析等,并可将分析后的结果参数反馈回电路图,进行第二次仿真,也称作后仿真。后仿真主要是检验PCB板在实际工作环境中的可行性。EDA工具层出不穷,目前进入我国并具有广泛影响的EDA软件有:multiSIM7(原EWB的最新版本)、PSPICE、OrCAD、PCAD、Protel、Viewlogic、Mentor、Graphics、Synopsys、LSIIogic、Cadence、MicroSim等等。这些工具都有较强的功能,一般

4、可用于几个方面,例如很多软件都可以进行电路设计与仿真,同进还可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。3实验原理及电路图在本实验中采用的是VHDL编程,通过文本编辑方式建立模块,通过原理图方式将生成的图形符号连接,然后再下载,进行硬件的仿真。密码锁要达到的功能为:1、密码输入:每按下一个键,要求在数码管上显示,并依次左移;2、密码删除:每删除一位,数码管上的显示右移一位,在左边空出的位补充零;3、密码设置:当四位密码输入完毕,按下设置功能键进行设置;4、密码检验:输入密码,按下检验键。 为达到密码锁的以上功能,可将电子密码锁分为以下几个模块:密码锁输入电路、密码锁控制电路

5、、LED输出显示电路。总原理图如下图1 密码锁设计总原理图4 各模块电路设计及功能实现4.1 密码锁输入模块密码锁输入模块由时序产生电路、键盘扫描电路、键盘译码电路和按键存储电路组成。1.时序产生电路产生电路中使用的三种不同频率的工作脉冲波形,即系统时钟脉冲、弹跳消除取样信号和键盘扫描信号。2.键盘扫描电路扫描电路的作用是提供键盘扫描信号,扫描信号变化的顺序依次为1110-1101-1011-0111-1110依序地周而复始。3.键盘译码电路上述键盘中的按键分为数字按键和文字按键,每一个按键可能负责不同的功能,例如清除键、上锁键和解锁键等。数字按键主要是用来输入数字的,但是键盘所产生的输出是无

6、法直接拿来用作密码锁控制电路的输入的;另外,不同的按键具有不同的功能,所以必须由键盘译码电路来规划每个按键的输出形式,以便执行相应的动作。4.按键存储电路因为每次扫描会产生新的按键数据,可能会覆盖前面的数据,所以需要一个按键存储电路,将整个扫描完毕后的结果记录下来。图2 按键位置与数码关系4.2 密码锁控制电路 密码锁的控制电路是整个电路的控制中心,包括密码删除、修改与检验,其控制作用主要体现在以下方面:1.数字按键输入的响应控制a.如果按下数字键,第一个数字会从显示器的最右端开始显示,此后每新按下一个数字时,显示器上的数字必须左移一位,以便将新的数字显示出来。b.假如要更改输入的数字,可以按

7、倒退按键来清除前一个输入的数字,或者按清除键清除所有输入的数字,再重新输入四位数。c.由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超过四个时,电路不予理会,而且不再显示第四个以后的数字。2.功能按键输入的响应控制a.清除键:清除所有的输入数字,即作归零动作。b.上锁键:按下此键时可将密码锁的门上锁(上锁前必须预先设定一个四位的数字密码)。c.解除键:按下此键会检查输入的密码是否正确,若密码正确无误则解锁。本设计的密码锁控制电路如下图所示: 图3 密码锁控制电路其中set为密码设置端口, check为密码检验端口, close为关锁端口, back为删除密码端口, clk时钟输入端口

8、, bcd3.0为数字输入端口,bcd1615.0为16位输出端口,lock密码锁状态显示端口。在此电路中每输一位数,密码在数码管上左移一位。设置删除密码back,每按下一次back,删除最后输入的数字,左边空处补0。设置密码确认信号set,当四位密码输入完毕,按下set,设置的密码被存储。设置密码锁状态信号lock, lock=0表示锁未开,lock=1表示锁开,同时设置关锁信号close,按下close,则锁关闭。设置密码检验信号check,在lock=0下从数据开关书去四位开锁数字,按下check,若数据等于设置的密码或万能密码,则lock=1。4.3 输出显示电路BCD 译码、动态扫描

9、电路如图4所示。 图4 输入显示电路 输出显示电路通过一个二进制计数器对数码管进行片选,片选为0,输入的第03位在第一个数码关上显示;片选为1输入的第47位在第二个数码关上显示,片选为2输入的第811位在第三个数码关上显示,片选为3输入的第1215位在第四个数码关上显示,进而实现数码管的动态显示。通过开关编码电路将开关电平转换成数据1,29,0, 将转换成的数输入到密码锁控制电路,之后输出到数码管动态显示电路。 5 系统仿真5.1波形仿真图形在进行编程的过程中,对每一模块都要进行波形仿真。键盘模块、控制模块、动态显示模块的波形仿真图分别如图5、图6、图7所示。图5 编码器仿真波形图6 控制电路

10、仿真波形图7 动态现实仿真波形5.2 结果分析在图5中可知,输入“001”、“002”、“004”、“008”、“010”、“020”、“040”、“080”、“080”、“100”、“200”分别表示选择开关k1、k2、.k9、k10,输出数据1,2,39,0,从波形中我们可以看出这是符合。图6所示,输入密码“6520”后按Close,Lock=“1”表示关锁,再次输入“6520”按Check,密码锁打开Lock=“0”。图7中,C-display计数到“0”、“1”、“2”、“3”时,SELOUT分别为“1110”、“1101”、“1011”、“0111”,表示片选第0、1、2、3个数码显

11、示管,符合设计要求。6实验程序及流程图 根据设计原理分析,本设计为三个模块:开关编码模块、控制模块、动态显示模块。设计的总结构图为图8所示。开关编码显示模块控制模块动态显示模块图8设计结构图6.1 输入开关编码程序library ieee; -定义实体use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity tra isport( n:in std_logic_vector(9 downto 0); -定义按键输入端口sout:out std_logic_vector(3 downto 0); -定义编码输入端口en

12、d tra; architecture at of tra is -定义结构体signal temp:std_logic_vector(3 downto 0); beginprocess(n)begin case n is -输入键编码when 0000000001=temptemptemptemptemptemptemptemptemptemptemp=1111;end case;end process;sout=temp; end at;6.2 密码锁控制模块流程图及程序 开始是否有判断按键输入结束删除右移校验是否正确Back=1输入数据数码管向左移Check=1Set=1Close=1“

13、”“”“”设置密码关锁,显示为0 继续输入 无有图9控制模块流程图程序代码为:library ieee; -定义实体 use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity art is port( set,check,close,back,clk:in std_logic; - set密码设置信号, check 密码检验信号, -close 关锁信号back密码删除信号, clk时钟信号dn:in std_logic_vector(3 downto 0);sout:out std_logic_vector(15

14、downto 0); -16位输入信号lock:out std_logic); -设置密码锁状态信号end art; architecture at of art is -定义结构体signal ch:std_logic;beginprocess(clk,dn) -定义进程变量variable lock_1:std_logic;variable acc:std_logic_vector(15 downto 0);variable temp1,temp2,temp3,temp4:std_logic_vector(3 downto 0);begin ch=not(dn(0) and dn(1) a

15、nd dn(2) and dn(3); -设置按键输入上升沿lock_1:=0;if clkevent and clk=1 then if ch=1 then -密码左移显示 temp4:=temp3; temp3:=temp2; temp2:=temp1; temp1:=dn; end if;end if;if back=1 then -密码删除右移显示 temp1:=temp2; temp2:=temp3;temp3:=temp4;temp4:=0000; lock_1:=0; end if;end if;if set=1 then -密码设置 acc:=temp4&temp3&temp2

16、&temp1; lock_1:=0;end if;if check=1 then -密码校验if acc=temp4&temp3&temp2&temp1 then lock_1:=1; elsif temp4=1000 and temp3=1000 and temp2=1000 and temp1=1000 then lock_1:=1; end if; end if; if close =1 thenlock_1:=0; -密码锁的关闭temp1:=0000;temp2:=0000;temp3:=0000;temp4:=0000; end if; end if;sout=temp4&temp

17、3&temp2&temp1;lock=lock_1;end process;end at;6.3 数码管的动态显示流程图及程序开始结束片选为0,03位显示片选为1,47位显示片选为3,1215位显示片选为2,811位显示计数图10 数码管动态显示流程图程序代码为:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity leds is -定义实体port(din:in std_logic_vector(15 downto 0); -16输入信号clk:in std_logic; -时钟信号co

18、n: buffer std_logic_vector(1 downto 0); led7:out std_logic_vector(6 downto 0); -七段数码管输入信号sn:out std_logic_vector(2 downto 0); -数码管七段译码信号end leds;architecture he of leds is -定义结构体signal db:std_logic_vector(3 downto 0);begin process(clk,din)beginif clkevent and clk=1 thencon=con+1; -数码管的片选计数 end if;if

19、(con=00) then -片选为0,03位显示db=din(3 downto 0);sn=000;elsif(con=01) then -片选为1,47位显示db=din(7 downto 4);sn=001;elsif(con=10) then -片选为2,811位显示db=din(11 downto 8);sn=010;elsif(con=11) then -片选为3,1215位显示db=din(15 downto 12);snled7led7led7led7led7led7led7led7led7led7led7=0000000;end case;end process;end he

20、;7心得体会通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。 作为学习自动化专业的学生,应该熟练掌握各种电路编辑软件,作为专业必需的技能,即将踏入社会的时候,更加要求我们有这方面的基础。随着电子技术的飞速发展,各种新型电子器件和集成电路应用越来越广泛,电子系统的功能越来越强大,电路图也越来越复杂,印刷电路板的走线越来越复杂和精密。计算机的应用使得我们对各种复杂的电路设计工作变得简单一些,使得更好更复杂的电路得以实现。电子设计自动化(Electronics Design

21、 Automates,即EDA)工具的集成设计环境,电子设计软件Max + PLUS II 软件等的运用使得设计电路更加方便。 通过这次课程设计,我感觉到不会的知识还有很多,还有很多软件、硬件知识需要去学习,在今后的学习生活中,一定充分利用时间,不断充实自己。8 参考文献1高有堂 EDA技术及应用实践 清华大学出版社。20062林敏,方颖立 VHDL数字系统设计与高层次综合 电子工业出版社。2002 3王锁平 电子设计自动化(EDA)教程 电子科技大学出版社。 20004潘送等编著 EAD技术使用教程 科学出版社。20025谭会生,瞿遂春 EAD技术综合应用实例与分析 西安电子科技大学出版社。2004

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物业管理


经营许可证编号:宁ICP备18001539号-1