1 / 18
文档名称:

EDA电子密码锁.doc

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

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

分享

预览

EDA电子密码锁.doc

上传人:fangjinyan2017001 2018/2/9 文件大小:749 KB

下载得到文件列表

EDA电子密码锁.doc

文档介绍

文档介绍:东北石油大学
课程设计
课程 EDA技术课程设计
题目电子密码锁
院系电子科学学院
专业班级
学生姓名
学生学号
指导教师



2013年 3 月8日
东北石油大学课程设计任务书
课程 EDA技术课程设计
题目电子密码锁
专业电子信息工程姓名学号
主要内容、基本要求、主要参考资料等
主要内容:
设计一个密码锁的控制电路,第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,当输入正确代码时,输出***信号以推动执行机构工作。
基本要求:
1、设计一个密码锁的控制电路,当输入正确代码时,输出***信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示***;
2、在锁的控制电路中储存一个可以修改的4位代码,当***按钮开关(设置成8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,***;
3、从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号,并输出一个信号推动LED不断闪烁。
主要参考资料:
[1] (第二版). 北京:科学出版社,2005.
[2] . 北京:高教出版社,2006.
[3] . 北京:高教出版社,2003.
完成期限
指导教师
专业负责人
2013年 3月4日
一、设计思想

根据设计要求,该电子密码锁主要有设置密码,5秒时间输入密码(即第一个按键按下后的5秒内输入密码),报警(即超出5秒后若未将锁开启则扬声器发出20秒的报警信号,同时一个LED不断闪烁),***时输出声光信号(即扬声器发出5秒的信号,同时对应的指示灯发生变换)的功能。
因此,我的设计思路是输入datain(3 downto 0)为四位密码按键,其对应的二进制序列为密码(当然也可以设置6位或8位,其中实际有效为4位,其余为虚设),enter1为设置密码确认键(上升沿有效),enter2为输入密码确认键(上升沿有效),set为模式选择键(0为设置密码,1为输入密码),系统时钟clk_1k设置为1024Hz;输出有led_r(红灯)、led_g(绿灯)、led_alert(报警指示灯)、speaker(扬声器)。
首先在set为0的情况下,将4位按键设置成想要的密码(例如1001),然后按一下enter1将密码锁存起来,这时对应的指示灯由红灯灭、绿灯灭变成红灯亮、绿灯灭(表示关锁),接着将set设为1,此时将4位按键设置成输入的密码(初始值都还原为0),按enter2进行确认,第一个按键按下后会产生一个5秒计时信号,若5秒内将锁开启,则对应的指示灯由红灯亮、绿灯灭变成红灯灭、绿灯亮(表示***),同时扬声器发出短暂的提示信号,若5秒后没有将锁开启,则报警,扬声器发出20秒的信号,报警指示灯闪烁20秒。
设计框图
图1 设计框图
设计步骤和调试过程
1、模块设计和相应模块程序
(1)分频
由于要产生5秒、20秒的计时信号,故对系统时钟clk_1k进行分频来得到1Hz的时钟clk。其模块及部分程序如下:
process(clk_1k)
variable count:std_logic_vector(9 downto 0);
begin
if(clk_1k'event and clk_1k='1') then 图3 分频模块图
count:=count+1;
end if;
clk<=count(9);
end process;
仿真波形如下:
图4 仿真图
(2)设置密码
本模块主要是将设置的密码锁存到中间变量ram中去,同时控制灯的变化,由于这里的灯并不能作为最终的输出,所以这里先用led_r_temp1、led_r_temp2代替。其模块及部分程序如下:
process(enter1,set)
begin
if(enter1'event and enter1='1') then
if(set='0') then ram<=datain;
led_r_temp1<='1';led_g_temp1<='0'; 图5 模块图
else led_r_temp1<='0';led_g_temp1<='0';
end if;
end if;
end process;
仿真波形如下:
图6 仿真图
(3)输入密码时第一个按键判断信号
本模块主要在密码输入下,当第一个按键按下时产生一个judge信号(高电平有效),其模块及部分程序如下:
process(set,clk_1k,datain)
Begin