1 / 24
文档名称:

EDA电子密码锁.doc

格式:doc   大小:24KB   页数:24页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

EDA电子密码锁.doc

上传人:wz_198614 2017/6/17 文件大小:24 KB

下载得到文件列表

EDA电子密码锁.doc

文档介绍

文档介绍:EDA 电子密码锁电子密码锁设计要求 1) 设计一个密码锁的控制电路, 当输入正确代码时, 输出***信号以推动执行机构工作, 用红灯亮、绿灯熄灭表示关锁, 用绿灯亮、红灯熄灭表示***; 2) 在锁的控制电路中储存一个可以修改的 4 位代码, 当***按钮开关(可设置成 6 位至 8位, 其中实际有效为 4位, 其余为虚设) 的输入代码等于储存代码时,***; 3) 从第一个按钮触动后的 5 秒内若未将锁打开, 则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续 20 秒的报警信号。 1 、方案论证与对比 方案一方案一是用以 AT89C2051 为核心的单片机控制方案。共设了 9 个用户输入键, 其中只有 4 个是有效的密码按键, 其它的都是干扰按键, 若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入; 如果用户输入密码的时间超过 40 秒(一般情况下,用户不会超过 40秒, 若用户觉得不便, 还可以修改) 电路将报警 80秒, 若电路连续报警三次, 电路将锁定键盘 5 分钟,防止他人的非法操作。设计方框图如图 1 所示。 方案二 1 方案二是用本学期所学的 EDA 技术中的 VHDL 语言来实现方案。设计方框图如图 2 所示。 比较由于单片机方案原理复杂, 而且调试较为繁琐, 并且是用 C 语言或者汇编语言实现功能, 构成的是软件, 容易受到外界影响; 而有 EDA 技术中 VHDL (硬件描述语言) ,构成的是硬件本身,不容易受到外界的干扰,所以本文采用后一种方案。方案一是基于软件的编程语言, 对硬件和软件的要求都很高, 方案二则是基于硬件设计的语言, 很容易对硬件电路实现编程下载; 2. 总体模块设计本设计采用 EDA 技术和 VHDL 语言设计了一种按键输入密码并数码管回显, 当输入正确密码时轰动绿灯亮、红灯熄灭表示***, 而当输入错误密码时,红灯亮、绿灯熄灭表示关锁。根据系统设计要求, 系统设计采用自顶向下的设计方法。顶层设计采用原理图设计方式,系统的整体组装设计原理图如图 2-1 所示。它由时钟电路按键控制输入模块、密码锁控制模块、数码图3 系统整体组装设计原理图管与 LED 显示模块和报警电路等四部分组成。程序下载后系统进入原始状态(原始密码 000000 ) ,按下键 8 发光二极管 8 2 (绿灯)亮、法官二极管 7 (红灯)灭。当要重新设置密码时,直接输入自己想要设置的密码并按下键 8 ,持续 5S ,数码管 8由0 变为 1 ,此时7 段数码管 1、2、3、4、5、6 对应显示新设置的密码。当要输入密码时, 按下键 7, 先将密码清零, 再随机输入一组 6 位密码, 假如密码正确, 发光二极管 8( 绿灯) 立即亮; 反之如不正确, 等待 5S, 发光二极管 7(红灯)亮并由蜂鸣器发出 20S 的报警信号。 3. 单元模块设计 顶层模块设计该电子密码锁顶层文件使用原理图输入法, 将按键、延时、判断正误、出错红灯亮并报警、正确绿灯亮这几个模块连接在一起实现 6 位二进制密码锁功能。具体顶层原理图如图 3-1 所示: 图4 密码锁顶层文件原理图 3 密码输入模块 1 、本按键输入模块包括设置密码并读取、密码清零、输入密码、系统复位功能。该模块中我们设置了 8 个按键,各个按键的功能分别为:按键1、2、3、4、5、6 分别对应 6 位二进制密码输入、键 7 为密码清零按键、键 8 为系统复位和密码读取按键。 2、以上各子模块的设计均采用 VHDL 语言实现, 其具体实现程序如下: Library IEEE; use ; use ; entity key is port( key_in1,key_in2,key_in3,key_in4,key_in5,key_in6 : in std_logic; 0); key_read: out std_logic; key_resert : out std_logic; key_r : out std_logic); clk: in std_logic; str: in std_logic; resert : in std_logic; clk20: in std_logic; ds: in std_logic; key_out : out std_logic_vector(5 downto end key; architecture key_mima of key is signal m :std_logic_vector(5 downto 0); signal sa :std_logic_vector(5