ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:123KB ,
资源ID:1156329      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-1156329.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子密码锁设计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

电子密码锁设计.doc

1、电子密码锁设计引言随着电子技术的发展,具有防盗报警、语音提示等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。目前大部分密码锁采用单片机进行设计,电路较复杂,性能不够灵活。本题目采用先进的EDA(电子设计自动化)技术,利用Quartus工作平台和VHDL(超高速集成电路硬件描述语言),设计了一种新型的电子密码锁。该密码锁具有密码预置、修改、语音提示和输入错误则系统进入定时锁定并报警等功能。一设计要求1、 设计一个密码锁的控制电路,当输入正确密码时,输入开锁信号以推动执行机构的作用,用红灯亮,绿灯熄灭,表示关锁;用红灯灭,绿灯亮,开锁。2、 在锁的控制电路中储存一个可以修改的6

2、位密码,其中6位全为实际有效密码,当开锁按钮开关的输入代码等于存储器代码时,实现开锁。否则一直关锁并持续产生报警信号。3、 从第一个按钮触动后的5秒内若未就锁打开,则电路自动处于自锁状态。使之无法再打开。并由扬声器发出持续20秒的报警信号。二设计说明与提示 1.该题目的主要任务是产生一个开锁信号OPEN,而开锁信号的形成条件是,输入代码和已设密码相同。实现这种功能的电路构思有多种,本题目运用两片8位锁存器,一片存入密码,另一片输入开锁代码,通过比较的方式,若两者相等,则形成开锁信号。 2在开锁信号产生时,要求输出声,光信号,声音的产生由开锁信号触动扬声器工作,光信号由开锁信号点亮LED指示灯。

3、 3用按钮开关的第一个动作信号触发一个5秒定时器,若5秒内无开锁信号产生,让扬声器发出特殊音响,以示警告,并输出一个信号推动LED不断闪烁。三设计思想电子密码锁的系统结构框图由图2所示,它分成两大部分:控制器和处理器。整个系统的输入信号有一个时钟脉冲CLK ,输出信号有表示开锁,关锁信号的红灯,绿灯以及报警信号SPEAKER。控制器中的所有按键按下时均为高电平,即高电平有效。RW 为“密码设定”信号, OK 为“确定”信号, RED=0GREED=1为开锁信号CNT 表示上一位密码正确时,控制器给出的可进行下一位二进制密码比较的信号,OPEN=1 为控制器给出的锁开信号, OPEN=0 为控制

4、器给出的密码错误信号。处理器中有一个计数器,计数器C1用是用来记录从第一个按钮触动后的5秒内若未将锁打开(即输入正确密码时间超过5秒),则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。密码锁可通过键盘设置6位十位进制数密码,按“确定”按键OK= 1 后,通过BCD 编码器变成24位二进制数存入寄存器1 ;开锁时也通过键盘输入6位十进制数密码,按“确定”按键后,通过BCD 编码器变成24位二进制数存入寄存器2 。经过两个24选1 数据选择器,将寄存器2中的输入密码与寄存器1中设置的密码逐位进行比较,当密码正确且位数相同时,产生开锁信号并且开始显示。如果密码不正确

5、,则不产生开锁信号。并且在5秒计时时间内,仍没有开锁信号产生,则电路自动处于自锁状态。使之无法再打开。并由扬声器发出持续20秒的报警信号。空闲状态设置密码输入密码系统死锁状态比较 N Y产生开锁信号 输出显示 图一,软件流程图 clk red key0-5 greedkey10-5 rwledrw okled ok clk1 LOCK_M speaker en 图二,系统框图四重要程序模块分析1,密码设置模块process(clk) -定义个存储器将密码存放在keyin中 begin if clkevent and clk=1 then keyin=key; end if;end proces

6、s; start: process(keyin,pro ,ok1) -第一次修改密码 begin if ok1=1 then start=0; elsif (keyin=000000 and pro=0) then start=1; else start=0; end if; end process; put in: process(key,start,clk) 。 begin -输入密码时间进入记时状态 if clkevent and clk=1 then ok1=0;cnt=cnt+1; if start=1 then rom1=keyin; -将密码放入rom1暂存器中。 if cnt=

7、100 then -5秒到将cnt值零将ok1值高 cnt=000 ;ok1=1; end if ; else cnt=000;sbuf1=sbuf1; -当start=1时cnt永远保持0; end if; end if; end process;2,开锁信号产生模块:compare : process(ok,ok1,clk,start,rom1,keyin) -输入密码用于判断密码是否正确。 begin if (start=1 and ok=1) or ok1=1 then if rom1=keyin open=1; -开锁信号 elsif clkevent and clk=1 then

8、if cnt1=10011 then -20秒后判断结束。进入等待外部输入状态。 pdan=0; else cnt1=cnt1+1; end if; else cnt1=00000; -等待状态时cnt1一直为0 end if; end if; end process;3显示模块Display: process(open,rw ,rin,clk1) -显示程序 begin if open=1 then -开锁信号密码正确 red=0;green=1;rwled=0;speaker=0;okled=0; -红灯灭,绿灯亮 else -密码错误 red=1;green=0;rwled=0;spea

9、ker=clk1;okled=0;-红灯亮,绿灯灭, end if; elsif rw=1 then -第一次修改密码显示状态 red=1;green=0;rwled=1;speaker=0;okled=0; elsif rin=1 then red=0;green=0;rwled=1;speaker=0; okled=1; else red=1;green=0;rwled=0;speaker=0;okled=0; end if; end process;五仿真波形波形图一(密码正确):从上面的仿真波形中可以看见,密码锁默认的密码为“00000”,我们必须得设置密码。因为这是第一次设置密码,所

10、以我们可以从图中看见,因为只有当RW=1和OK=1同时产生时,才可以进行第一次的密码设置(以后则可以免掉这项操作)。当我们第一次设置的密码为key=”100000”,然后按OK键盘确认。这是密码已经设置完成。当我们输入密码key=”100000”时,我们可以清楚的看见greed=1而red=0,即实现红灯灭,绿灯亮的开锁功能。波形图二(此波形图为波形图一的后续部分)(密码错误): 当我们输入密码key=”000001”时,greed=0,而red=1,即实现了红灯亮,绿灯灭的关锁功能,并且于此同时speaker=1,即由于密码不正确而产生喇叭发出声音的信号。当key=000000时(即无开锁信

11、号产生),可以从波形图中看见,speaker=1,即一直发出报警声。整体仿真:六.硬件分析本实验采用GW48PK2实验箱,在程序编译和波形仿真确定正确无误后,便可下载到实验箱上,进行硬件测试。1.在测试时,实验箱的芯片选用“cyclone”系列的“EP1CC6Q240C6”,模式应用模式8。2.在确定完管脚之后,便可进行引脚锁定,按下图所示: 3. 编程下载设计文件,打开实验箱电源,“programmer”窗口中“mode”项选择“JTAG”,点击“start”开始下载,下载完成后,即可在实验箱上验证设计电路七设计总结 通过完成本次课程设计,使我对EDA技术有了更进一步的了解和掌握。从上世纪末

12、以来,数字电子技术在迅速的发展,有力的推动了社会生产力的发展和社会信息化的提高。在其推动下,数字电子技术的应用已经渗透到了人类生活的各个方面,对于我们来说,学好EDA这门课有着至关重要的意义。在我编写程序中,让我明白很多道理。虽然自己能够编写出实现基本要求的代码,可是在代码的很多地方都出现杂乱,冗长,完全背离了代码简练,易懂的原则,让我明白了要多参考别人优秀的程序,借鉴别人的优点,使自己的编写能力得到提到。在各个进程中,对各个进程间的信号量传递要用易懂的字符替代,这对于读懂代码有很大的帮助。虽然我在编程中犯了很多错误,但是通过不断的修改,不断的请教别人和借鉴别人的经验,最终实现了成功的编写了本

13、次课程设计的代码,并且在解决错误,明白错误中让我获益匪浅。对于本学期EDA这门课有了更进一步的了解,对于一个陌生的题目也知道了如何下手。总之,只有通过自己的动手,才能真正的理解上课时的内容,才能真正的掌握EDA这门技术。八参考文献(1)谭会生、瞿遂春,EDA技术综合应用实例与分析,西安电子科技大学出版社,2004(2)高有堂,EDA技术及应用实践,清华大学出版社,2006(3)亿特科技,CPLD/FPGA应用系统设计与产品开发,人民邮电出版社,2005(4)曹昕燕、周凤臣等,EDA技术实验与课程设计,清华大学出版社,2006九.附录(设计原代码)library ieee;use ieee.st

14、d_logic_1164.all;use ieee.std_logic_unsigned.all;entity lock_m is port( key:in std_logic_vector(5 downto 0); clk,clk1,ok,rw: in std_logic; red,green,speaker,rwled,okrw:out std_logic);end qin;architecture behav of qin issignal ok1,ok2,ok0,prr,start,pdan,rw1,rin:std_logic :=0;begin process(clk) begin

15、if clkevent and clk=1 then keyin=key ;end if;end process; prr=pdan or rw1 or rin or ok;st: process(keyin,prr,ok1) begin if ok1=1 then start=0; elsif (keyin/=000000 and prr=0) then start=1; else start=0; end if; end process; put in: process(key,start,clk) begin if clkevent and clk=1 then ok1=0;ok2=0;

16、 if start=1 then sbuf1=keyin; if ok=1 then ok2=1; elsif cnt=100 then cnt=000 ;ok1=1; else cnt=cnt+1; end if ; else cnt=000;sbuf1=sbuf1; end if; end if;end process;compare : process(ok,ok1,ok2,clk,start) begin if ok2=1 or ok1=1 then pdan=1; elsif clkevent and clk=1 then if pdan=1 then if cnt1=10011 t

17、hen pdan=0 else cnt1=cnt1+1; end if; else cnt1=00000; end if;end if; end process;comp: process(pdan,rw1,sbuf1,mmst,rin,clk1) begin if pdan=1 then if sbuf1=mmst then red=0;green=1;rwled=0;speaker=0;okrw=0; else red=1;green=0;rwled=0;speaker=clk1;okrw=0; end if; elsif rw1=1 then red=1;green=0;rwled=1;

18、speaker=0;okrw=0; elsif rin=1 then red=0;green=0;rwled=1;speaker=0; okrw=1; else red=1;green=0;rwled=0;speaker=0;okrw=0; end if; end process;rewrite:process(rw,keyin,ok0,clk,start,pdan,rin) begin if clkevent and clk=1 then if ok0=1 then rw1=0; elsif keyin=000000 and pdan=0 and rin=0 then if rw=1 the

19、n rw1=1;end if; end if; end if; end process; process(rw1,ok,keyin,clk) begin if clkevent and clk=1 then ok0=0; sbuf2=keyin; if rw1=1 then if ok=1 then ok0=1; if mmst=sbuf2 then rin=1; else rin=0; end if;end if; else if rin=1 then if ok=1 then mmst=sbuf2; rin=0; else mmst=mmst; end if; else null; end if; end if; end if; end process;end behav;

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922