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

上传人:p** 文档编号:641752 上传时间:2024-01-02 格式:DOCX 页数:11 大小:61.74KB
下载 相关 举报
基于VHDL-4位电子密码锁的设计.docx_第1页
第1页 / 共11页
基于VHDL-4位电子密码锁的设计.docx_第2页
第2页 / 共11页
基于VHDL-4位电子密码锁的设计.docx_第3页
第3页 / 共11页
基于VHDL-4位电子密码锁的设计.docx_第4页
第4页 / 共11页
基于VHDL-4位电子密码锁的设计.docx_第5页
第5页 / 共11页
基于VHDL-4位电子密码锁的设计.docx_第6页
第6页 / 共11页
基于VHDL-4位电子密码锁的设计.docx_第7页
第7页 / 共11页
基于VHDL-4位电子密码锁的设计.docx_第8页
第8页 / 共11页
基于VHDL-4位电子密码锁的设计.docx_第9页
第9页 / 共11页
基于VHDL-4位电子密码锁的设计.docx_第10页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于VHDL-4位电子密码锁的设计.docx》由会员分享,可在线阅读,更多相关《基于VHDL-4位电子密码锁的设计.docx(11页珍藏版)》请在第壹文秘上搜索。

1、大连理工大学本科实验报告题目:基于VHDL4位电子密码锁的设计课程名称:数字电路课程设计学院(系):电子信息与电气工程专业:电子英强班级:学生姓名:学号:完成口期:成绩:2023年7月08日题目:基于VHDL4位电子密码锁的设计1设计要求电子密码锁为4位842IBCD码,多于4位,密码只取前4位。在输入密码错误,给出一个错误信号,有三次输入时机,假设三次密码都输入错误,那么给出一个报警信号,此后只能由密码管理员取消报警信号。在输入密码正确的情况下,可以再次设定密码。每次输入一个密码,将显示在7段数码管上,并依次左移。每次输入密码的时候,按取消(cancel)键可以取消这次密码的输入,课重新输入

2、4位密码。2设计分析及系统方案设计在实验室DE2开发板的条件下,考虑到key键只有4个,可以用SWitCh开关来实现密码输入模块,用SWitCh9switch0来实现数字90的输入,并通过译码模块将其转化为842IBCD码,由8421BCD码来驱动7段数码管作为密码锁的显示模块。每按一个键,产生一个上升沿,给4个数码管做时钟,实现没输入一个数左移一位的效果。为了实现密码输入多于4位,可以构造一个模为4的计数器来控制只取前4位密码。共有三次输入密码的时机,可以构造一个模为3的计数器来控制。密码比拟模块:当按下确定键(yes)键,那么将输入的密码和内置密码进行比拟。密码输入模块:当输入密码正确时,

3、再输入密码,利用重置密码键(set_psw)直接将其赋值给内置的密码PSW即可实现。1.ED显示模块,用来显示密码输入的正确与否。假设输入密码与内置密码一致,那么锁翻开,输出一个高电平给LEDG,绿灯亮,密码错误那么输出一个高电平给LEDR,红灯亮。综合上述分析,本系统的硬件局部主要由密码锁输入译码模块、密码锁显示模块、密码锁控制模块、密码比拟和重置模块和LED显示模块五个局部组成。3系:说明用的(硬件电路昔卜示模块:Ki体、共F2.密码输入和译码模块:start reset用SWitCh9110实现数字9到O的输!入。CIkOut_(Psw(DE2开发板分频mK至NumCq(15dowI5d

4、ownt上使用的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数码管

5、outO1Pin一ab12out02pin_ac12outO3pinad11outO4pin_ae11outO5pin_v14outO6pin_v13out10pin_v20u1数码管out11pin_v21out12pin_w21out13Pin_v22out14pin_aa24out15Pin_aa23out16pin_ab24out20pin_ab23u2数码管out21pin_v22out22pin_ac25out23pin_ac26out24pin_ab26out25pin_ab25out26pin_y24out30pin23u3数码管out31pin_aa25out32pin_aa

6、26out33pin_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时钟上升沿,

7、由于人操作的时间必定大于0.00001s(即100oOHZ的时钟周期),所以在下次按键是,clock已经回到低电平,此后再按键clock又产生一个上升沿。由此构造的clock时钟可以为左移存放器当时钟。3 .密码显示模块:SWitCh改变一次,即每输入一个数,译码产生一个四位的BCD码,来驱动数码管。并随着CIOCk上升沿,依次左移显示。4 .密码比拟和重置模块:在输入了4位密码后,16位BCD码已经保存在out_q里,通过与内置密码比拟即可。数码管的真值表(0代表亮,1代表不亮)Q3fl2QQo012345600000000001000110011I10010Q0100100011Q000I

8、10010010011Q001010100100OllO0100()仆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_I

9、ogic_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

10、);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_l

11、ogic;-5000分频之后的时钟beginprocess(Clk_in,start,reset,enable)beginifreset=0,thenclockq=1001;clockq=1000;cIockq=0111,;cIockq=0110;cIockq=010,clockq=0100;cIockq=0011;cIockq=,0010;cIockq=0001:cIockq=,0000;CIockq=,1111,jGock=,0,:endcase;eIsenull;endif;endif:endprocess;一左移进程,按下一个按键那么cl。Ck输出一个高电平,显示译码器左移proces

12、s(clock,yes,start,reset,cancel)beginifreset=,0,thencorrect=,0,;out-error=,0;counter=0;enable=,1,;alarm=,0;eIsifcancel=1thencorrect0,;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=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机应用/办公自动化

copyright@ 2008-2023 1wenmi网站版权所有

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

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