欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于VHDL-4位电子密码锁的设计.docx

    • 资源ID:718452       资源大小:61.74KB        全文页数:11页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于VHDL-4位电子密码锁的设计.docx

    大连理工大学本科实验报告题目:基于VHDL4位电子密码锁的设计课程名称:数字电路课程设计学院(系):电子信息与电气工程专业:电子英强班级:学生姓名:学号:完成口期:成绩:2023年7月08日题目:基于VHDL4位电子密码锁的设计1设计要求电子密码锁为4位842IBCD码,多于4位,密码只取前4位。在输入密码错误,给出一个错误信号,有三次输入时机,假设三次密码都输入错误,那么给出一个报警信号,此后只能由密码管理员取消报警信号。在输入密码正确的情况下,可以再次设定密码。每次输入一个密码,将显示在7段数码管上,并依次左移。每次输入密码的时候,按取消(cancel)键可以取消这次密码的输入,课重新输入4位密码。2设计分析及系统方案设计在实验室DE2开发板的条件下,考虑到key键只有4个,可以用SWitCh开关来实现密码输入模块,用SWitCh9switch0来实现数字90的输入,并通过译码模块将其转化为842IBCD码,由8421BCD码来驱动7段数码管作为密码锁的显示模块。每按一个键,产生一个上升沿,给4个数码管做时钟,实现没输入一个数左移一位的效果。为了实现密码输入多于4位,可以构造一个模为4的计数器来控制只取前4位密码。共有三次输入密码的时机,可以构造一个模为3的计数器来控制。密码比拟模块:当按下确定键(yes)键,那么将输入的密码和内置密码进行比拟。密码输入模块:当输入密码正确时,再输入密码,利用重置密码键(set_psw)直接将其赋值给内置的密码PSW即可实现。1.ED显示模块,用来显示密码输入的正确与否。假设输入密码与内置密码一致,那么锁翻开,输出一个高电平给LEDG,绿灯亮,密码错误那么输出一个高电平给LEDR,红灯亮。综合上述分析,本系统的硬件局部主要由密码锁输入译码模块、密码锁显示模块、密码锁控制模块、密码比拟和重置模块和LED显示模块五个局部组成。3系:说明用的(硬件电路昔卜示模块:Ki体、共F2.密码输入和译码模块:start reset用SWitCh9110实现数字9到O的输!入。CIkOut_(Psw(DE2开发板分频mK至NumCq(15dowI5downt<上使用的ClkJnelS输入和E让匕拟健q(4downto0)J!TtOO)30)-元件的郭Canc严密码锁密被sCorrectOut_erroralarmOut3端口名FP说明aIarmPi报警信号,红灯亮cancelP取消密码输入elkpin_n250MHz时钟correctPin_ae22密码正确,绿灯亮num0pin_n25输入数字0到9num1pin-1126num2pin_p25num3pin_ae14num4pin_af14num5Pin一ad13num6pin_ac13num7pin_c13num8pin_b13num9pjn_a13outO0pin_af10uo数码管outO1Pin一ab12out02pin_ac12outO3pinad11outO4pin_ae11outO5pin_v14outO6pin_v13out10pin_v20u1数码管out11pin_v21out12pin_w21out13Pin_v22out14pin_aa24out15Pin_aa23out16pin_ab24out20pin_ab23u2数码管out21pin_v22out22pin_ac25out23pin_ac26out24pin_ab26out25pin_ab25out26pin_y24out30pin23u3数码管out31pin_aa25out32pin_aa26out33pin_y26out34pin_y25out35pin_u22out36pin_w24out_errorpin_ae23密码错,红灯亮resetPin_v2管理员权限,为0时取消报警信号set_pswpin_n23设置密码startpin_u4开始输入密码信号yespin_g26确定信号4系统的VHDL设计说明1 .分频模块,即做一个模5000的计数器,从而将50MHZ的时钟转化为100OOHZ的时钟。2 .密码锁输入和译码,显示模块。SWitCh9switch0模拟数字90的输入,例如SWitCh为高电平,而其他为低电平,那么通过程序译码为9,同时产生一个ClOCk时钟上升沿,由于人操作的时间必定大于0.00001s(即100oOHZ的时钟周期),所以在下次按键是,clock已经回到低电平,此后再按键clock又产生一个上升沿。由此构造的clock时钟可以为左移存放器当时钟。3 .密码显示模块:SWitCh改变一次,即每输入一个数,译码产生一个四位的BCD码,来驱动数码管。并随着CIOCk上升沿,依次左移显示。4 .密码比拟和重置模块:在输入了4位密码后,16位BCD码已经保存在out_q里,通过与内置密码比拟即可。数码管的真值表(0代表亮,1代表不亮)Q3fl2QQo012345600000000001000110011I10010Q0100100011Q000I10010010011Q001010100100OllO0100()仆0011100011111000Q0()000010010000E00VHDL源代码©.主程序coded_lock代码:Iibraryieee;useieee.Std_IOgic_1164.a11;useieee.std_logic_unsigned.all;entitycoded_IockiSport(elk:instd_logic;start:instd_logic;reset:instd_logic;num:instd_Iogic_vector(9downto0);out3,out2,out1.outO:outstd_Iogic_vector(6downto0);correct:bufferstd_logic;yes:instd_logic:admin:instd_logic;set_psw:std_logic;alarm:outstd_logic;canceI:instd_logic;out_error:bufferstd_logic);end;architecturebehaveofcoded_lockisCOmPOnentdecoderis-显示译码器的元件例化port(qq:instd_Iogic-vector(3downtoO);result:outstd_Iogic_vector(6downtoO);endcomponent;out._q为4位密码锁的8421BCD码signaIq:std_Iogic_vector(3downtoO);一输入一个90的数字,q为其842IBCD码SignaIcIock:std_logic:='0*;-每按一次键,ClOCk输出一yTw上升沿signaIcounter:integerrangeOto2:=0;一模为3的计数器signaIcnt4:integerrange0to4:-0;一模为5的计数器signaIenable:std_logic:=,1,;一当输错3次密码,那么此使能端为0,使无法译码一默认密码为9876SignalClk_in:std_logic;-5000分频之后的时钟beginprocess(Clk_in,start,reset,enable)beginifreset='0,thenclock<,0,;eIsifrising_edge(cIk_in)thenifstart=11,andenable='1,thencasenumis一按个键,CloCk来一个上升沿when"1000000000,=>q<="1001"clock<=*1,;when"0100000000,=>q<="1000"cIock<='1'when"0010000000"=>q<="0111,;cIock<=,;when"0001000000,=>q<="0110"cIock<='1'when"0000100000"=>q<="010,clock<=,:when"0000010000"=>q<="0100"cIock<='when"0000001000"=>q<="0011"cIock<=,;when"0000000100"=>q<=,0010"cIock<=,1'when"0000000010"=>q<="0001":cIock<=,;when"0000000001"=>q<=,0000"CIock<='whenothers=>q<=',1111,jGock<=,0,:endcase;eIsenull;endif;endif:endprocess;一左移进程,按下一个按键那么cl。Ck输出一个高电平,显示译码器左移process(clock,yes,start,reset,cancel)beginifreset=,0,thencorrect<=,0,;out-error<=,0'counter<=0;enable<=,1,;alarm<=,0'eIsifcancel='1'thencorrect<'0,;out-error<=,0,;out_q<="0000000000000000"cnt4<=0:一使计数器清零,重新开始译码eIsifstart=,0,thencnt4<=0;out_q<="0000000000000000"elseifrising_edge(cIock)thenifcnt4=4thennull;eIseout_q<=out_q(11downto0)&q;cnt4<-cnt4+1;endif;endif;iffaIIing_edge(yes)thenifOUt_q二PSWthencorrect<='1'out-error<=,0,;alarm<=,O,;eIsifcounter=2thencorrect<=,0,;out_error<=,1,;alarm<=

    注意事项

    本文(基于VHDL-4位电子密码锁的设计.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开