EDA电子密码锁_第1页
EDA电子密码锁_第2页
EDA电子密码锁_第3页
EDA电子密码锁_第4页
EDA电子密码锁_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、东 北 石 油 大 学课 程 设 计课 程 EDA技术课程设计 题 目 电子密码锁 院 系 电子科学学院 专业班级 学生姓名 学生学号 指导教师 2013年 3 月8日东北石油大学课程设计任务书课程 EDA技术课程设计题目 电子密码锁专业 电子信息工程 姓名 学号主要内容、基本要求、主要参考资料等主要内容:设计一个密码锁的控制电路,第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,当输入正确代码时,输出开锁信号以推动执行机构工作。基本要求:1、设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;2

2、、在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(设置成8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁;3、从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号,并输出一个信号推动LED不断闪烁。主要参考资料:1 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.2 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006.3 阎石主编.数字电子技术基础. 北京:高教出版社,2003.完成期限 2013.3.8 指导教师 专业负责人 2013年 3月4日一、设计思想1

3、.基本原理根据设计要求,该电子密码锁主要有设置密码,5秒时间输入密码(即第一个按键按下后的5秒内输入密码),报警(即超出5秒后若未将锁开启则扬声器发出20秒的报警信号,同时一个LED不断闪烁),开锁时输出声光信号(即扬声器发出5秒的信号,同时对应的指示灯发生变换)的功能。因此,我的设计思路是输入datain(3 downto 0)为四位密码按键,其对应的二进制序列为密码(当然也可以设置6位或8位,其中实际有效为4位,其余为虚设),enter1为设置密码确认键(上升沿有效),enter2为输入密码确认键(上升沿有效),set为模式选择键(0为设置密码,1为输入密码),系统时钟clk_1k设置为1

4、024Hz;输出有led_r(红灯)、led_g(绿灯)、led_alert(报警指示灯)、speaker(扬声器)。首先在set为0的情况下,将4位按键设置成想要的密码(例如1001),然后按一下enter1将密码锁存起来,这时对应的指示灯由红灯灭、绿灯灭变成红灯亮、绿灯灭(表示关锁),接着将set设为1,此时将4位按键设置成输入的密码(初始值都还原为0),按enter2进行确认,第一个按键按下后会产生一个5秒计时信号,若5秒内将锁开启,则对应的指示灯由红灯亮、绿灯灭变成红灯灭、绿灯亮(表示开锁),同时扬声器发出短暂的提示信号,若5秒后没有将锁开启,则报警,扬声器发出20秒的信号,报警指示灯

5、闪烁20秒。2. 设计框图图1 设计框图2、 设计步骤和调试过程1、模块设计和相应模块程序(1)分频由于要产生5秒、20秒的计时信号,故对系统时钟clk_1k进行分频来得到1Hz的时钟clk。其模块及部分程序如下:process(clk_1k) variable count:std_logic_vector(9 downto 0);beginif(clk_1k'event and clk_1k='1') then 图3 分频模块图count:=count+1;end if;clk<=count(9);end process;仿真波形如下:图4 仿真图(2)设置密码

6、本模块主要是将设置的密码锁存到中间变量ram中去,同时控制灯的变化,由于这里的灯并不能作为最终的输出,所以这里先用led_r_temp1、led_r_temp2代替。其模块及部分程序如下:process(enter1,set)beginif(enter1'event and enter1='1') thenif(set='0') then ram<=datain;led_r_temp1<='1'led_g_temp1<='0' 图5 模块图else led_r_temp1<='0'l

7、ed_g_temp1<='0'end if;end if;end process;仿真波形如下:图6 仿真图(3)输入密码时第一个按键判断信号本模块主要在密码输入下,当第一个按键按下时产生一个judge信号(高电平有效),其模块及部分程序如下:process(set,clk_1k,datain)Begin if(clk_1k'event and clk_1k='1') then if(set='0') then judge<='0' 图7 模块图elsif(set='1') thenif(dat

8、ain(0) or datain(1) or datain(2) or datain(3)='0') then judge<='0'elsif(datain(0) or datain(1) or datain(2) or datain(3)='1') thenjudge<='1'else judge<='0'end if;end if;end if;end process;仿真波形如下:图8 仿真图从仿真波形上看,当按键按下后judge信号由0变为1,但是当按键重新弹回0时,judge信号又回到0

9、,所以需对judge高电平信号进行锁存:signal temp:std_logic:='0'beginprocess(judge)begin 图9 模块图if(judge'event and judge='1') thentemp<='1'end if;end process;judge_load<=temp;图10 仿真图(4)5秒计时信号该模块是产生一个5秒计时的信号state,5秒期间为1,当5秒时间过去后state变为0,并作为报警信号。其模块及部分程序如下:signal count_5:std_logic_vecto

10、r(2 downto 0);signal state1:std_logic;beginprocess(clk) 图11 模块图beginif(clk'event and clk='1') then if(judge_load='1') then 第一个按键按下if(count_5="101") thencount_5<="101"else count_5<=count_5+1;end if;end if;end if;end process;process(count_5)begincase count

11、_5 iswhen "000"=>state1<='1'when "001"=>state1<='1'when "010"=>state1<='1'when "011"=>state1<='1'when "100"=>state1<='1'when others=>state1<='0'end case;end process;s

12、tate<=state1 and set;确保在set置为1而第一个按键没有按下时,state为高电平,即刚进入输入密码状态而第一个按键没有按下时state为高电平。仿真波形如下:图12 仿真图根据仿真波形可以看出,set为0时设置密码,当set为1时,在judge_load(按键识别信号)为0的情况下,state为1,保证下面将要提及的报警模块不会工作,而只有当judge_load为1,且5秒过后state变为0时才有可能发出报警信号(密码输错的情况下)。(5)开锁信号的产生本模块主要是对输入的密码进行判断,一旦密码输入正确,产生一个开锁信号unlock(高电平有效)。其模块与部分程序

13、如下:process(enter2)begin if(enter2'event and enter2='1') then输入密码确认if(set='1') then if(state='1') then5秒期间if(datain=ram) thenunlock<='1'开锁信号else unlock<='0'end if;end if;end if;end if; 图13 模块图end process; 输入正确密码仿真波形:图14 仿真图输入错误密码仿真波形:图15 仿真图(6)报警模块本模块

14、主要是在5秒限制时间结束时,如果还没有开锁,就产生报警信号。即长达20秒的声光信号。这里的报警信号指示灯用led_r_temp3表示,扬声器用speaker_temp2表示。其模块及部分程序如下:signal count_20:std_logic_vector(4 downto 0);signal temp:std_logic; beginprocess(clk) Begin 图16 模块图if(clk'event and clk='1') thenif(set='0')thentemp<='0'elsif(set='1&#

15、39;) thenif(state='0') thenif(count_20="10100") then count_20<="10100"temp<='0'else count_20<=count_20+1;temp<='1'speaker_temp2<=clk_1k;end if;end if;end if;end if;end process;led_r_temp3<=temp and clk and (not unlock);speaker_temp2<=t

16、emp and clk_1k and (not unlock);仿真波形如下:图17 仿真图可见当state由1变为0且没有unlock信号时,输出20秒的声光信号以示报警。(7)开锁信号控制指示灯变化模块本模块是实现当开锁信号产生时,相应的指示灯由红亮绿灭变成红灭绿亮。这里同样先用led_r_temp2、led_g_temp2代表红灯和绿灯。其模块及部分程序如下:process(clk_1k,state)beginif(clk_1k'event and clk_1k='1') then if(state='1') then 图18 模块图if(unlo

17、ck='1') thenled_r_temp2<='0'led_g_temp2<='1'else led_r_temp2<='1'led_g_temp2<='0'end if;end if;end if;end process;仿真波形如下:图19 仿真图(8)开锁信号产生2秒提示音模块当开锁信号产生时,扬声器发出两秒的提示音。这里用speaker_temp2代替。其模块及部分程序如下:signal count_2:std_logic_vector(1 downto 0);signal te

18、mp:std_logic;beginprocess(clk) 图20 模块图beginif(clk'event and clk='1') then1秒Hzif(unlock='1') then if(count_2="10") thencount_2<="10"temp<='0'else count_2<=count_2+1;temp<='1'end if;end if;end if;end process;speaker_temp1<=clk_1k a

19、nd temp;仿真波形如下:图21 仿真图(9)指示灯综合输出模块本模块主要是将led_r_temp1、led_g_temp1、led_r_temp2、led_g_temp2经过条件判断选择输出,设置密码(set=0)时输出led_r_temp1、led_g_temp1,输入密码(set=1)时输出led_r_temp2、led_g_temp2。其模块及部分程序如下:if(set='0') then led_r<=led_r_temp1; led_g<=led_g_temp1;Else 图22 模块图led_r<=led_r_temp2; led_g<

20、=led_g_temp2;仿真波形如下:图23 仿真图(10)扬声器综合输出模块本模块主要是将报警音speaker_temp1和开锁提示音speaker_temp2经过条件选择判断输出,set=0时,输出为0;当set=1且unlock=0时输出speaker_temp1,当unlock=1时,输出speaker_temp2。其模块及部分程序如下:if(set='0') thenspeaker<='0'elsif(unlock='1') then speaker<=speaker_temp1; 图24 模块图elsespeaker<=speaker_temp2;end if;仿真波形如下:图25 仿真图3、仿真及仿真结果分析顶层模块详见报告后面所附的顶层模块图,仿真波形如下:输入错误密码:图26 仿真图输入正确密码:图27 仿真图4、实验调试结果本次的设计基本完成了LED数码显示,蜂鸣器设置。基本完成了预期的目标,配合软件仿真的实现。但是由于时间仓促、条件有限,设计成果并不是很完美,但对于这一整个电子密码锁系统,设计的程序已经基本实现。3、 结论及心得体会通过这次设计,使我对EDA产生了浓厚的兴趣

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论