EDA电子密码锁重点.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE  PAGE 19  PAGE 0 电子密码锁 设计要求 1) 设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁; 2) 在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁; 3) 从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。 1、方案论证与对比 1.1 方案一 方案一是用以AT89C2051为核心的单片机控制方案。共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。设计方框图如图1所示。 密码修改电路 键盘输入 密码校验电路 执行电路 限时报警 报警次数检测 锁定五分钟 开锁电路 1.2 方案二 方案二是用本学期所学的EDA技术中的VHDL语言来实现方案。设计方框图如图2所示。 1.3 比较 由于单片机方案原理复杂,而且调试较为繁琐,并且是用C语言或者汇编语言实现功能,构成的是软件,容易受到外界影响;而有EDA技术中VHDL(硬件描述语言),构成的是硬件本身,不容易受到外界的干扰,所以本文采用后一种方案。方案一是基于软件的编程语言,对硬件和软件的要求都很高,方案二则是基于硬件设计的语言,很容易对硬件电路实现编程下载; 2.总体模块设计 本设计采用EDA技术和VHDL语言设计了一种按键输入密码并数码管回显,当输入正确密码时轰动绿灯亮、红灯熄灭表示开锁,而当输入错误密码时,红灯亮、绿灯熄灭表示关锁。 密 码 模 块 校 对 模 块 5S延时脉冲模块 红灯灭绿灯亮 绿灯灭红灯亮 20S报警 20延时脉冲模块 关锁 开锁 图3 系统整体组装设计原理图 根据系统设计要求,系统设计采用自顶向下的设计方法。顶层设计采用原理图设计方式,系统的整体组装设计原理图如图2-1所示。它由时钟电路按键控制输入模块、密码锁控制模块、数码管与LED显示模块和报警电路等四部分组成。 程序下载后系统进入原始状态(原始密码000000),按下键8发光二极管8(绿灯)亮、法官二极管7(红灯)灭。当要重新设置密码时,直接输入自己想要设置的密码并按下键8,持续5S,数码管8由0变为1,此时7段数码管1、2、3、4、5、6对应显示新设置的密码。当要输入密码时,按下键7,先将密码清零,再随机输入一组6位密码,假如密码正确,发光二极管8(绿灯)立即亮;反之如不正确,等待5S,发光二极管7(红灯)亮并由蜂鸣器发出20S的报警信号。 3.单元模块设计 3.1 顶层模块设计 该电子密码锁顶层文件使用原理图输入法,将按键、延时、判断正误、出错红灯亮并报警、正确绿灯亮这几个模块连接在一起实现6位二进制密码锁功能。具体顶层原理图如图3-1所示: 图4 密码锁顶层文件原理图 3.2 密码输入模块 1、本按键输入模块包括设置密码并读取、密码清零、输入密码、系统复位功能。该模块中我们设置了8个按键,各个按键的功能分别为:按键1、2、3、4、5、6分别对应6位二进制密码输入、键7为密码清零按键、键8为系统复位和密码读取按键。 2、以上各子模块的设计均采用VHDL语言实现,其具体实现程序如下: Library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity key is port( key_in1,key_in2,key_in3,key_in4,key_in5,key_in6 : in 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 0); key_read: out std_logic; key_resert : out std_logic; key_r : out std_logic); end key; architecture key_mima of key is 图5 密码输入模块 signal m :std

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档