吴超电子密码锁改过后.doc

吴超电子密码锁改过后.doc

ID:51024186

大小:760.00 KB

页数:32页

时间:2020-03-08

吴超电子密码锁改过后.doc_第1页
吴超电子密码锁改过后.doc_第2页
吴超电子密码锁改过后.doc_第3页
吴超电子密码锁改过后.doc_第4页
吴超电子密码锁改过后.doc_第5页
资源描述:

《吴超电子密码锁改过后.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、一、设计思想本设计采用EDA技术和VHDL语言设计了一种按键输入密码并数码管回显,当输入正确密码时轰动绿灯亮、红灯熄灭表示开锁,而当输入错误密码时,红灯亮、绿灯熄灭表示关锁。根据系统设计要求,系统设计采用自顶向下的设计方法。1.基本原理在本实验中采用的是VHDL编程,通过文本编辑方式建立模块,通过原理图方式将生成的图形符号连接,然后再下载,进行硬件的仿真。密码锁要达到的功能为:为达到密码锁的以上功能,可将电子密码锁分为以下几个模块:密码锁输入电路、密码锁控制电路、LED输出显示电路。⑴、密码输入:每按下一个数字键,就输入一个数值,并在显示器上显示出该数值。同时将先前输入的数据依次左移一个数字

2、位置。程序下载后系统进入原始状态(原始密码000000),按下键8发光二极管8(绿灯)亮、法官二极管7(红灯)灭。当要重新设置密码时,直接输入自己想要设置的密码并按下键8,持续5S,数码管8由0变为1,此时7段数码管1、2、3、4、5、6对应显示新设置的密码。当要输入密码时,按下键7,先将密码清零,再随机输入一组6位密码,假如密码正确,发光二极管8(绿灯)立即亮;反之如不正确,等待5S,发光二极管7(红灯)亮并由蜂鸣器发出20S的报警信号。⑵、密码清除:按下清除键可清除前面所有的输入值,清除成为“0000”。⑶、密码更改:按下更改键可将目前数据设定为新的密码。⑷、密码上锁:按下上锁键可将密码

3、锁上锁。31/32⑸、密码解除:按下解除键首先检查输入的密码是否正确,密码正确即解锁。2.设计框图为达到密码锁的以上功能,可将电子密码锁分为以下几个模块:密码锁输入电路、密码锁控制电路、LED输出显示电路。和报警电路等四部分组成顶层设计采用原理图设计方式,系统的整体组装设计原理图如图1所示。密码模块校对模块5S延时脉冲模块红灯灭绿灯亮绿灯灭红灯亮20S报警20延时脉冲模块关锁开锁图1系统整体组装设计原理图二、设计步骤和调试过程1、模块设计和相应模块代码(1)分频由于要产生5秒、20秒的计时信号,故对系统时钟clk_1k进行分频来得到1Hz的时钟clk。其模块及部分程序如下:图2分频模块31/

4、32process(clk_1k)variablecount:std_logic_vector(9downto0);beginif(clk_1k'eventandclk_1k='1')thencount:=count+1;endif;clk<=count(9);endprocess;仿真波形如下:图3分频仿真图(2)设置密码本模块主要是将设置的密码锁存到中间变量ram中去,同时控制灯的变化,由于这里的灯并不能作为最终的输出,所以这里先用led_r_temp1、led_r_temp2代替。其模块及部分程序如下:图4设置密码模块process(enter1,set)31/32beginif(en

5、ter1'eventandenter1='1')thenif(set='0')thenram<=datain;led_r_temp1<='1';led_g_temp1<='0';elseled_r_temp1<='0';led_g_temp1<='0';endif;endif;endprocess;仿真波形如下:图5设置密码仿真图(2)输入密码时第一个按键判断信号本模块主要在密码输入下,当第一个按键按下时产生一个judge信号(高电平有效),其模块及部分程序如下:图6判断信号模块process(set,clk_1k,datain)31/32beginif(clk_1k'eventandclk

6、_1k='1')thenif(set='0')thenjudge<='0';elsif(set='1')thenif((datain(0)ordatain(1)ordatain(2)ordatain(3))='0')thenjudge<='0';elsif((datain(0)ordatain(1)ordatain(2)ordatain(3))='1')thenjudge<='1';elsejudge<='0';endif;endif;endif;endprocess;仿真波形如下:图7判断信号仿真图从仿真波形上看,当按键按下后judge信号由0变为1,但是当按键重新弹回0时,judge信号

7、又回到0,所以需对judge高电平信号进行锁存:31/32图8锁存模块signaltemp:std_logic:='0';beginprocess(judge)beginif(judge'eventandjudge='1')thentemp<='1';endif;endprocess;仿真波形如下:图9锁存模块仿真图(2)5秒计时信号该模块是产生一个5秒计时的信号state,5秒期间为‘1’,当5秒时间过去后

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。