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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

电子密码锁.docx

1、电子密码锁基本要求:1、设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;2、在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(设置成8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁;3、从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号,并输出一个信号推动LED不断闪烁。一、总体设计思想1.基本原理本次设计的主要内容是设计一个密码锁的控制电路,第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,当

2、输入正确代码时,输出开锁信号以推动执行机构工作。此密码锁的基本要求是:设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关的输入代码等于储存代码时,开锁; 从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号,并输出一个信号推动LED不断闪烁。随着电子产品向智能化和微型化的不断发展,EDA技术作为现代电子设计最新技术的结晶,给电子系统的设计带来了革命性的变化。本设计一种电子密码锁系统,该系统

3、具有软硬件设计简单、易于开发、成本低、安全可靠、操作方便等特点,可作为产品进行开发,应用于住宅,办公室的保险箱及档案等需要防盗的场所,有较强的实用性。本系统由Quartus II软件、矩阵键盘、LED显示和报警系统组成。4*4键盘组成09数字键,每按下一个键,相关键的值在数码管上显示,并依次左移;能够清除密码输入,并设置预置密码为“1234”;修改密码时,将当前输入设为新的密码;能完成上锁和开锁功能;当输入密码和预置密码一样时即可开锁。具有确认、取消、修改、开锁、闭锁功能,用7段数码管组成显示电路提示信息。2.设计框图本次设计是采用一种是用Quartus II软件编程,利用VHDL描述数字系统

4、的结构,行为,功能和接口,及其控制的准确性,来实现密码锁的设计。VHDL编程有较大的活动空间,不但能实现锁要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,客服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都有大大提高一步。随着大规模集成电路技术的发展,特别是VHDL的问世,出现了带微处理的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。具体设计框图如下图所示:二、设计步骤和调试过程1、

5、总体设计电路2、模块设计和相应模块程序主程序作为整个系统中最重要的部分, 设计相当繁琐,而且还承担着其它子程序的连接任务,所以显得尤为重要,如果这个部分出了问题,那整个系统将会瘫痪。首先是键盘输入电路,键盘的输入电路部分又分为键盘去抖电路和密码锁输入电路,下面先介绍键盘去抖电路部分。键盘消抖部分是由两个小的模块集成为一个去抖电路的,所以在此分开介绍此两个模块。第一个是DCFQ 模块,如左图所示,模块外部信号端口为, CLK:时钟脉冲输入端口,为电路提供原始始终信号,CLRM:清零信号输入端口,PRN:置位信号输入端口, Q:信号输出端口。DCFQ 模块的主要程序为如下,此段程序作用是判断输入信

6、号是否有效, 如有效则输出,无效清零。IF CLRN0AND PRN1THEN Q0;ELSIF CLRN1AND PRN0THEN Q1;ELSIF CLKEVENT AND CLK1THEN QD; END IF;第二个是,DEBOUNCING 模块模块外部信号端口如左图所示,其中DIN:信号输入端口,CLK:时钟脉冲输入端口。模块的内部信号有: VCC:模块内部信号,控制清零, Q0:寄存D 触发器处理过的信号, Q1:与Q0 信号做差分处, D1:模块内部信号,D0:模块内部信号,QQ0,QQ1,DOUT1,DD0,DD1 是为便于仿真时观察中间,结果而增加的观测点的输出端口(删除无影

7、响)。DEBOUNCING 模块主要程序如下:U1:DCFQ PORT MAP(CLKCLK,CLRNINVD,PRNVCC,DVCC,QQ0);U2:DCFQ PORT MAP (CLK CLK,CLRN Q0,PRN VCC,DVCC,QQ1); PROCESS(CLK)BEGIN IF CLKEVENT AND CLK1THEN D0NOT Q1; D1D0; END IF; END PROCESS; DD0D0;DD1D1;QQ1Q1;QQ0Q0; DOUTNOT(D1 AND NOT D0);DOUT1NOTQ1 END ARCHITECTURE ART;这段程序的作用就是通过对信号

8、的分频处理,从而将按键产生的不规则信号转换为便于识别的按键信号,达到消除抖动的目的。其次是密码锁输入电路,密码锁输入电路元件如右图所示:其中模块外部信号端口有: CLK1K:时钟脉冲输入端口,KEYIN:按键输入端口,CLKSCAN:键盘扫描序列(仿真时用),DATAN:数字输出端口,DATAF:功能输出端口,FLAGN:数字输出标志,FLAGF:功能输出标志,CLKCTR:控制电路工作时钟信号,CLKDEBOUNCE:去抖电路工作时钟信号(仿真时用)其中模块内部信号: CLK:电路工作时钟脉冲,CKEYBOARD:键扫信号“00011011”寄存器,CDEBOUNCE:去抖时钟信号,C:键盘

9、输入去抖后的寄存器,N,F:数字、功能按键译码值的寄存器,FN,FF:数字、功能按键标志值数字、功能按键,SEL:模块内部信号,Z:按键位置信号,密码锁输入电路主要程序为:KEYDECODER:BLOCK SIGNALZ:STDLOGICVECTOR (4 DOWNTO 0);BEGIN PROCESS(CLK) BEGIN ZCKEYBOARD C;IF CLKEVENT AND CLK1THEN CASE Z IS WHEN11101N0000; WHEN00011N0001; WHEN00101N0010;WHEN00110N0011; WHEN01011N0100;WHEN01101N

10、0101; WHEN01110N0110;WHEN10011N0111; WHEN10101N1000;WHEN10110N1001; WHEN OTHERSN1111;END CASE; END IF; IF CLKEVENT AND CLK1THEN CASE Z ISWHEN11011F0100; WHEN11110F0001;WHEN OTHERSF1000; END CASE; END IF; END PROCESS;这段程序的作用是通过按键产生的信号进行译码,判断按键是数字还是上锁、解锁控制信号。其中还包括密码锁控制电路,密码锁控制电路组成有:模块外部信号端口: CLK:时钟脉冲输

11、入端口,DATAN:数字输入端口,DATAF:功能输入端口,FLAGN:数字输入标志,FLAGF:功能输入标, EMLOCK:密码锁控制信号输出端口,DATABCD:按键显示输出端口模块内部信号有: ACC:暂存键盘输入信息, REG:密码存储位置,RR2:寄存器清零信号,R1,R0:模块内部信号,二者差分生成清零信号,NC:移位寄存,QA,QB:上锁、解锁控制信号。密码锁控制电路主要程序为: KEYINPROCESS:BLOCK IS SIGNAL RST,D0,D1:STDLOGIC; BEGIN RSTRR2; PROCESS(FLAGN,RST)IS BEGINIF RST1THEN

12、ACC0000000000000000;NC000;ELSEIF FLAGNEVENT AND FLAGN1THEN IF NC4 THEN ACCACC(11 DOWNTO 0) DATAN; NCNC1; END IF; END IF; END IF; END PROCESS;END BLOCK KEYINPROCESS;以上程序的作用是清除、暂存按键输入数据,每输入一个数字,在数码管显示时都左移一位,直到输入位数达到4 位,4位以后不再显示。LOCKPROCESS:BLOCK IS BEGINPROCESS(CLK,DATAF)ISBEGINIF(CLKEVENT AND CLK1)TH

13、ENIF NC4 THENIF DATAF(2)1THEN 上锁控制信号有效REGACC; 密码存储QA1;QB0;ELSIF DATAF(0)1THEN开锁控制信号有效IF REGACC THEN 密码核对QA0;QB1;END IF;ELSIF ACC1000100010001000THENQA0;QB1;END IF;这段程序的作用是在按下键时将输入的密码跟已经存储的密码进行对比,如果一样,则密码锁开锁。而在通过密码验证后可以按 键重新设定密码。在这里值得注意的是有一个密码“8888”作为万用密码,也就是不论当前密码是什么,只要输入的密码为8888,则都可通过密码锁。此次设计中还有必不可

14、少的密码锁显示电路如下图所示:其中模块外部信号端口为: DATABCD:密码信号输入端口, BLOCK:密码锁状态信号显示灯。根据设计要求,总程序为:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity lock is port(clk_1k:in std_logic; -频率输入管脚enter_2,enter_1: in std_logic; -设密码确认及输入密码确认datain:in std_logic_vector(3 downto 0); -密码数据输入speaker:out

15、std_logic; -喇叭led_g,led_r:out std_logic); -绿灯及红灯end entity lock;architecture behave of lock issignal ram:std_logic_vector(3 downto 0);signal judge:std_logic;signal clk:std_logic;signal turn_on,turn_off:std_logic;beginprocess(Clk_1k)variable clk_count:std_logic_vector(8 downto 0):=000000000;beginif c

16、lk_1kevent and clk_1k=1 then -分频if clk_count511 then clk_count:=clk_count+1;else clk_count:=000000000;clk=not clk; end if; end if; end process; process(datain,enter_1) -设置密码beginif enter_1event and enter_1=1 thenram=datain;end if; end process; process(clk_1k) -判断第一位密码按下时开始计时beginif clk_1kevent and c

17、lk_1k=1 then if enter_1=0 then judge=0; end if;if judge=0 and enter_1=1 then if datain/=ram then judge=1;end if; end if; end if; end process;process(judge,clk,enter_2)variable count:std_logic_vector(4 downto 0):=00000; variable judge_sh:std_logic_vector(1 downto 0):=00; variable switch:std_logic:=0;

18、 -判断是否锁定键盘beginif clkevent and clk=1 then if enter_1=0 then -数据复位 count:=00000;judge_sh:=00;switch:=0;end if;if switch=0 thenif judge=1 then if count0101 then count:=count+1;if enter_2=1 then if datain = ram thenturn_on=1;turn_off=0;switch:=1; -开锁else if judge_sh10 then judge_sh:=judge_sh+1;turn_on=

19、1;turn_off=1;switch:=0; else turn_on=0;turn_off=1;switch:=1; end if; end if; else turn_on=0;turn_off=0;switch:=0; -等待下次输入end if; else turn_on=0;turn_off=1;switch:=1;end if; end if; end if; end if; end process;process(clk,clk_1k,turn_on) begin if clkevent and clk=1 then if enter_1=0 then -数据复位count:=

20、0000;count_sh:=00;temp:=0;temp_sh:=0;end if; if turn_on=0 and turn_off=1 thenif count10100 then -响20秒count:=count+1; temp:=1; led_g=0;led_r=1; else temp:=0; end if; end if;speaker=(temp or temp_sh) and clk_1k; -驱动喇叭end process; end behave;3、仿真及仿真结果分析 弹跳消除仿真破型: 密码锁输入模块仿真波形图:控制电路仿真波形: 显示模块仿真波形:本次的设计基本

21、完成了设计的要求,设计出的密码锁有4*4键盘输入,LED数码显示,蜂鸣器设置。具有数字键和确认删除功能,同时用户可根据需要修改密码,密码超次报警功能。基本完成了预期的目标,系统硬件调试花费时间较长,最终基本达到了预期的目标,配合软件仿真的实现。本次设计较为完善。本次设计在键盘操作,及数码管显示电路的研究较为详细。实时显示方面做的比较好。但是由于时间仓促、条件有限,设计成果并不是很完美,但对于这一整个电子密码锁系统,设计的程序已经基本实现三、结论及心得体会通过这次设计,使我对EDA产生了浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。这次EDA课程设计历时一个星期,在这些日子里,

22、可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。这次设计的密码锁还是比较成功的,虽然在设计中遇到了很多问题,最后在同学的帮助下外加上自己的努力,终于都得到了解决,因此很有成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的。参考资料1 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.参考文献:2 刘常澍,赵雅兴数字电路与FPGAM北京:人民邮电出版社,20043 任晓东,文博CPLD FPGA 高级应用开发指南M北京:电子工业出版社,20034 汉泽西EDA 技术及其应用M北京:北京航空航天大学出版社,20045 王小军VHDL 简明教程M北京:清华大学出版社,1997

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1