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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于VHDL的电子密码锁设计1Word文件下载.docx

1、(3)串行数字锁的报警由点亮一个灯,直到按下复位开关,报警才停下。此时,数字锁又自动等待下一个开锁状态。要求:(1)通过查阅相关技术资料,详细描述电子密码锁的基本原理。(2)编写电子密码锁的Verilog HDL或VHDL程序,并仿真编译下载验证。(3)给出完整的系统顶层模块图与波形仿真图。3 设计分案 密码锁控制器是硬件与软件的结合。根据设计要求,决定以FBDA芯片和VHDL语言设计此电子密码锁。用一片FBDA芯片实现,从而大大简化了系统结构,降低了成本,提高了系统的保密性和可靠性。这种设计不仅简化了系统结构,降低了成本,更提高了系统的可靠性和保密性。另外,采用可编程逻辑器件开发的数字系统,

2、方便地升级和改进。3.1 系统总框图本系统的硬件部分主要由密码锁控制电路、密码锁显示电路、LED显示电路、报警电路、密码更改与设置电路组成。整体系统框图如下图2.1所示。密码锁总框图3.2 密码锁的内部结构及主要功能3.2.1密码锁的主要功能密码锁控制器的主要功能有:(1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。(2)密码校验:如果有按键按下,直到松开该按键;红绿灯指示门的状态,也就是密码校验结果,如果密码校验正确,绿亮起,否则如果密码校验错误红灯亮,并凤鸣器响,表明密码错误。(3)错误报警:密码输入错误开始报警。(4)密码修改:输入密码正确

3、后4秒内按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功4 系统硬件电路4.1 密码锁的显示模块段数码管是电子开发过程中常用的输出显示设备。在本设计中使用的是8个四位一体、共阴极型七段数码管。其单个静态数码管如下图所示。由于七段数码管公共端连接到GND(共阴极型),当数码管的中的一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相反。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭

4、。4.2 密码锁控制模块 该模块的作用是将输入的密码 (暂时寄存于 ACC中)跟已经存储的密码(REG中的密码信息)进行对比,如果一样,则密码锁开锁。而在通过密码验证后可以按按键设定密码。在这里值得注意的是有一个密码“0000”为开始密码,如果改名密码了但是又忘记了密码,重新下载之后的初始密码只要输入的密码为“0000”则都可通过密码锁。模块lock是整个设计的核心 ,它实现密码锁的逻辑功能。在任何时候按动密码初始化按键内密码设置为程序初始化密码值(在本模块程序中此值为 “0000”代码为 4 位二进制数 ,当输入代码的位数和位值与锁内给定的密码一致 ,且按规定程序开锁时 ,方可开锁 ,并点亮

5、开锁指示灯(緑灯)亮。否则 ,系统进入 “错误”状态 ,并发出报警信号。串行数字锁的报警方式是点亮指示灯(红灯) ,并使喇叭鸣叫 ,直到按下复位开关 ,报警才停止。此时 ,数字锁又自动进入等待下一次开锁的状态。该 4 位串行电子密码锁设置 4 位二进制密码 ,要求锁内给定的密码是可调的 ,且设置方便 ,保密性好。其具体操作分为输入密码和修改密码两部分4.2.1输入密码密码输入值的比较主要有两部分 ,密码位数和内容 ,任何一个条件不满足 ,都不能打开锁。若锁内密码为 “0000” , key2 和 key1 置低电平 ,分别表示输入 “1” 和 “0” 。输入密码前先进行复位操作 ,再按着从密码

6、最低位到最高位的顺序依次正确输入0000,会在数码管逐一显示。经检验 ,输入的密码 等于锁内预先设置的密码密码锁开启信号,锁开启。同时,密码修改控制信号rw置低电平。若在输入密码的过程中 ,4 位二进制密码出现输入错误 ,那么锁不能开启 ,同时 ,指示灯红灯 亮 ,发出报警信号 。直到按下复位开关 ,报警才停止。4.2.2修改密码为防止任意进行密码修改 ,必须在正确输入密码后 ,才能重新设置密码。输入正确密码后 ,锁打开 ,同时 ,密码修改控制信号按键rw 置低电平 ,就可直接进行修改密码的操作。修改密码实质就是用输入的新密码去取代原来的旧密码, 按确定按键ok, 存储新密码时.5 VHDL程

7、序设计密码锁控制器的各个功能模块都是通过VHDL语言来完成的。本设计由密码锁显示显示模块、分频模块、密码输入及校验模块、报警模块、密码更改与设置模块几部分组成,各模块分工合作,最后达到密码锁控制器设计的要求。表4-1 程序的管脚分配表端口名对应FBGA管脚说明clkP2时钟为50HzKey1AC23按下按键代表为“0”Key2AB21按下按键代表为“1”startY14开始输入密码okAA13确定输入密码resetAC15复位rwV23该密码clrU23清零redM19密码错误红灯亮greenT22密码正确緑灯亮beepA14蜂鸣器Seg7.0D16,D17,G13,D15,C15,C16,G

8、15,J13代表数码管的片内显示Dig7.0E15,K18,E22,C17,H15,K16,H12,D18代表数码管的片外显示VHDL程序总代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity lock isport(key1,key2:in std_logic;clk,start,ok,reset,rw,clr: in std_logic; red,green,beep:out std_logic:=1; dig:out st

9、d_logic_vector(7 downto 0); seg:out std_logic_vector(7 downto 0) );end lock;architecture rt1 of lock issignal keyin,password:std_logic_vector(3 downto 0):=0000signal open1:std_logic:0signal beep1:signal a,shuru:std_logic;signal count: std_logic_vector(2 downto 0):000signal temp: std_logic_vector(1 d

10、ownto 0):00beginprocess(clk)variable m:integer range 0 to 10; begin if clkevent and clk=then if m=9 then m:=0; a else=m+1; end if;end process;process(clk,start,ok,clr,rw,reset) begin then if reset= then redgreenbeep1open1keyinshurucount if start= shuru if rw= and open1= if clr= then keyin elsif a= a

11、nd shuru= if key1=keyin(2 downto 0)& elsif key2= if count=011 shuru count=count+1; if ok=and open1= if (keyin=password)then else password=keyin;process(clk,start,ok,clr,rw,reset)variable g:integer range 0 to ;then if g= then g:=g+1; if g= and beep1= beepvariable n:integer range 0 to 50000;if clk if

12、n=49999 then n: if temp=11 temp dig ; if keyin(0)=then seg else segseg if keyin(2)=10100 then if keyin(3)= if keyin(2)=null;end process ;end rt1;6 系统仿真当各个模块分别编译成功后 ,则创建一个个元件符号。再用图形编辑器将各元件模块组装起来 ,这就是本设计中最顶层的图形设计文件。顶层图形设计文件 lock. gdf 如图所示 ,这个结构框图说明了整个系统的外部输入和输出情况。为了获得与目标器件对应的、 精确的时序仿真文件译了。编译成功后进行仿真。首先

13、建立波形文件。波形文件 lock. scf 建好并存盘后 ,选择菜单 “new” “Vector Waveform File”,启动仿真操作 ,结束后观察仿真波形。本设计中 ,仿真波形如图所示。当给初始密码输入信号 LC 一个低电平时 ,就将程序预先设定的密码( “0000” )装入 lock 中 。按下 reset 后,系统复位 ,处于输入密码状态。输入的开锁密码串行顺序装入 ,。密码输入完毕后 ,比较输入的密码 是否等于预先设定的密码,若相等 ,锁开启。如图所示7 总结这次密码锁的设计过程表明,用VHDL可以快速、灵活地设计出符合要求的密码锁控制器,而且操作简单。可以实现密码输入、密码校验

14、、密码设置和更改等功能。设计过程能够在设计完成后在Quartus环境下进行电路的模拟仿真,反馈结果可以验证程序设计的可行性与可靠性。本密码锁控制器设置的是4位密码,在系统复位后,输入一个完整的密码串,输入完后,系统会进行比对,如果发现密码吻合,则开门,否则要求用户继续输入,如果输入的密码串都是错误的,则系统报警,直到输入正确的密码,报警声停止。这样的设计可以很好的满足人们的日常需求。同时,密码锁还具有密码修改功能,方便操作,使得密码锁的使用更加安全、便捷。在软件、硬件设计和仿真过程中间我们也遇到不少问题,但最终还是把它们解决了,使得设计符合要求。除了自己思考设计之外,这与和同学的同心协力的合作

15、与讨论是分不开的的。相互的探讨使得我们的思路更加开阔,解决问题的办法也更多。总之,此次课程设计让我收益良多,同时因为有了实践操作,对EDA技术及Verilong HDL课程所学内容也有了更深的记忆和理解,对EDA技术额能够更好的掌握和应用了致谢在这次实习能够顺利完成的过程中,我得到了许多人的帮助。首先我要感谢陈小琴老师等老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。同时也感谢学院为我提供良好的做课程设计的环境。参考文献【1】陈龙,黄继业,潘松,主编EDA技术与Verilog HDL清华大学出版社【2】阎石 主编数字电子技术基础,高等教育出版社,1998【3】夏宇闻 主编Verilog数字系统设计教程,北京航空航天大学出版

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2