文档介绍:羀电子密码锁聿设计要求袄1)设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;芅2)在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁;芃3)从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。薈1、。共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。设计方框图如图1所示。。设计方框图如图2所示。,而且调试较为繁琐,并且是用C语言或者汇编语言实现功能,构成的是软件,容易受到外界影响;而有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的报警信号。,将按键、延时、判断正误、出错红灯亮并报警、正确绿灯亮这几个模块连接在一起实现6位二进制密码锁功能。具体顶层原理图如图3-1所示:、本按键输入模块包括设置密码并读取、密码清零、输入密码、系统复位功能。该模块中我们设置了8个按键,各个按键的功能分别为:按键1、2、3、4、5、6分别对应6位二进制密码输入、键7为密码清零按键、键8为系统复位和密码读取按键。肄2、以上各子模块的设计均采用VHDL语言实现,其具体实现程序如下:罿LibraryIEEE;;;膂entitykeyis蚂 port(key_in1,key_in2,key_in3,key_in4,key_in5,key_in6:instd_logic;蚈 clk:instd_logic;膆 str:instd_logic;芁肂 resert:instd_logic;葿 clk20:instd_logic; 羄 ds:instd_logic;蚃 key_out:outstd_logic_vector(5downto0);蒁 key_read:outstd_logic;腿 key_resert:outstd_logic;肅 key_r:outstd_logic);螂endkey;袀architecturekey_mimaofkeyis衿肆图5密码输入模块signalm:std_logic_vector(5downto0);膄signalsa:std_logic_vector(5downto0);莀signaldd:std_logic:='0';蚀signaldd1:st