下载此文档

VHDL密码锁设计.pdf


文档分类:通信/电子 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
该【VHDL密码锁设计 】是由【青山代下】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【VHDL密码锁设计 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..语言及应用课程设计论文平台下密码锁的设计专业:学号:姓名:指导老师:团队成员:完成日期:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------***控制系统源程序及其仿真分析--------------------------------------------------------------------------9:..LED显示源程序及其仿真分析----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------16:...引言随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一;因此人们对锁要求甚高,既要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题;传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦;数字密码锁是二十一世纪制锁业的一次革命,锁的特点是不用钥匙、无锁孔、机械传动、不易损坏、不磨损、不易被破译、可多次更换密码、换号不换锁、一把锁多个密码,具有防拨、防砸、防撬、防堵等功能;安装门锁时不破坏原门的结构,避免用钥匙开启旋芯式锁具的一切烦恼如丢、落、拆、堵门被反锁等;数字密码锁是利用数字密码来开启的锁具,其重复概率极低,有着很高的安全性;而旋芯式锁具使用不够安全;通过对社会各阶层千余人的调查,百分之百的人对目前身上挂着的串串钥匙无可奈何,都愿意一身轻松没有任何顾虑的出入家门,都愿意用上一种既安全方便又不用钥匙的锁具;因此,数字密码锁产品的市场发展前景极为广阔;而EDA技术设计电子系统具有用软件的方式设计硬件,设计过程中可用有关软件进行各种仿真,系统可现场编程、在线升级,整个系统可集成在一个芯片上等特点;不但设计周期短、设计成本低,而且将提高产品或设备的性能,缩小产品体积、提高产品的技术含量,提高产品的附加值;可见,用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法,使设计过程达到高度自动化;本设计的各个模块由相应的VHDL程序具体实现,并在QuartusⅡ,最终实现“密码锁设计”的要求;,学会用VHDL语言来编程解决实际问题;,掌握仿真的技巧;,检验电路的功能;,实现所要求的功能;、安锁状态;按下开关键SETUP,密码设置灯亮时,方可进行密码设置操作;设置初始密码0~9或二进制8位数,必要时可以更换;再按SETUP键,密码有效;2、***过程;:..1)、按启动键START启动***程序,此时系统内部应处于初始状态;(2)、依次键入0~9或二进制8位数;(3)、按开门键OPEN准备开门;若按上述程序执行且拨号正确,则开门指示灯A亮,若按错密码或未按上述程序执行,则按动开门键OPEN后,报警装置鸣叫、灯B亮;4、***处理事务完毕后,应将门关上,按SETUP键使系统重新进入安锁状态;若在报警状态,按SETUP键或START键应不起作用,应另用一按键RESET才能使系统进入安锁状态;3、使用者如按错号码可在按OPEN键之前,按START键重新启动***程序;4、设计符合上述功能的密码锁,并用层次化方法设计该电路;5、用功能仿真方法验证,通过观察有关波形确认电路设计是否正确;6、完成电路设计后,通过在实验系统中下载,验证设计的正确性;,密码锁系统主要由***控制,设置密码的锁存器,输入密码的锁存器,比较器,LED显示和报警系统几个部分组成;每一个模块功能的实现都是通过VHDL语言实现的,并通过顶层电路与例化语句将功能模块整合起来,之后对整个系统进行模拟仿真和硬件实现;:用于实现设定密码和输入密码的锁存;2比较器:用于将设定密码与输入密码相比较;其中,CLK为外部输入的时钟信号;若输入密码正确,则A灯亮;否则B灯亮,同时比较器输出与CLK一样的信号,驱动蜂鸣器发出报警声;3***控制:当反馈信号下降沿来到时,***控制输出低电平,用于在输入错误密码后禁止再次安锁;当RESET脚为高电平时,***控制输出高电平,打开与门,这时锁存器1使能端的变化受控于SETUP键,重新进入安锁状态;4LED显示:用于设定密码或输入密码的显示;此项设计的目的是为了在下载演示时,能清楚地看到设置和输入的密码值;:LIBRARYIEEE;:..ENTITYtopfileISPORTSETUP,RESET,START,OPN,CLK:INSTD_LOGIC;setpassword:INSTD_LOGIC_VECTOR7DOWNTO0;inputpassword:INSTD_LOGIC_VECTOR7DOWNTO0;led_A,led_B,warner:OUTSTD_LOGIC;DOUT11,DOUT12,DOUT21,DOUT22:OUTSTD_LOGIC_VECTOR6DOWNTO0;ENDENTITYtopfile;ARCHITECTUREbrfOFtopfileISCOMPONENTlockcontrolPORTRESET,FEEDBACK:INSTD_LOGIC;Y:OUTSTD_LOGIC;PONENT;COMPONENTcodesetPORTENABLE:INSTD_LOGIC;PASEWORD:INSTD_LOGIC_VECTOR7DOWNTO0;Q:OUTSTD_LOGIC_VECTOR7DOWNTO0;PONENT;COMPONENTcodeinputPORTENABLE:INSTD_LOGIC;PASEWORD:INSTD_LOGIC_VECTOR7DOWNTO0;Q:OUTSTD_LOGIC_VECTOR7DOWNTO0;PONENT;paratorPORTOPN,CLK,RESET:INSTD_LOGIC;rightpassword,password:INSTD_LOGIC_VECTOR7DOWNTO0;A,B,warner:OUTSTD_LOGIC;D11,D12,D21,D22:OUTSTD_LOGIC_VECTOR3DOWNTO0;PONENT;COMPONENTAND2PORTa,b:INSTD_LOGIC;c:OUTSTD_LOGIC;PONENT;COMPONENTNOR2:..f:OUTSTD_LOGIC;PONENT;COMPONENTLEDPORTDATA:INSTD_LOGIC_VECTOR3DOWNTO0;DOUT7:OUTSTD_LOGIC_VECTOR6DOWNTO0;PONENT;2:STD_LOGIC_VECTOR7DOWNTO0;11:STD_LOGIC_VECTOR3DOWNTO0;7:STD_LOGIC;BEGINU0:lockcontrolPORTMAPRESET=>RESET,feedback=>net3,y=>net4;U1:AND2PORTMAPa=>net3,b=>START,c=>net5;U2:AND2PORTMAPa=>SETUP,b=>net4,c=>net6;U3:CODEINPUTPORTMAPPASEWORD=>inputpassword,ENABLE=>net5,Q=>net1;U4:codesetPORTMAPPASEWORD=>setpassword,ENABLE=>net6,Q=>net2;paratorPORTMAPrightpassword=>net2,password=>net1,OPN=>OPN,CLK=>CLK,A=>led_A,B=>net7,warner=>warner,RESET=>RESET,D12=>net9,D11=>net8,D21=>net10,D22=>net11;U6:NOR2PORTMAPe=>net7,d=>net7,f=>net3;U7:LEDPORTMAPDATA=>net8,DOUT7=>DOUT11;U8:LEDPORTMAPDATA=>net9,DOUT7=>DOUT12;U9:LEDPORTMAPDATA=>net10,DOUT7=>DOUT21;U10:LEDPORTMAPDATA=>net11,DOUT7=>DOUT22;led_B<=net7;ENDARCHITECTUREbrf;:LIBRARYIEEE;;;:..PORTENABLE:INSTD_LOGIC;PASSWORD:INSTD_LOGIC_VECTOR7DOWNTO0;Q:OUTSTD_LOGIC_VECTOR7DOWNTO0;ENDcodeset;ARCHITECTUREbhvOFcodesetISBEGINPROCESSENABLE,PASSWORDBEGINIFENABLE='1'THENQ7<=PASSWORD7;Q6<=PASSWORD6;Q5<=PASSWORD5;Q4<=PASSWORD4;Q3<='0';Q2<='0';Q1<='0';Q0<='0';ENDIF;ENDPROCESS;ENDbhv;仿真波形图为:使能控制端高电平时:使能控制端变回低电平时:由于硬件设备限制,不能检验全部端口,因此将低位的四位设置为低电平,通过改变使能控制端与高位的电平观察正确性;:LIBRARYIEEE;;;ENTITYcodeinputISPORTENABLE:INSTD_LOGIC;:..PASSWORD:INSTD_LOGIC_VECTOR7DOWNTO0;Q:OUTSTD_LOGIC_VECTOR7DOWNTO0;ENDcodeinput;ARCHITECTUREbhvOFcodeinputISBEGINPROCESSENABLE,PASSWORDBEGINIFENABLE='1'THENQ7<=PASSWORD7;Q6<=PASSWORD6;Q5<=PASSWORD5;Q4<=PASSWORD4;Q3<='0';Q2<='0';Q1<='0';Q0<='0';ENDIF;IFENABLE='0'THENENDIF;ENDPROCESS;ENDbhv;仿真波形为:当使能信号为低电平,锁存器输出状态保持不变,输入信号没有读入;当使能信号有低电平变为高电平,锁存器开始读入输入的信号;***控制系统源程序及其仿真波形源程序为:LIBRARYIEEE;;;ENTITYlockcontrolISPORTFEEDBACK,RESET:INSTD_LOGIC;Y:OUTSTD_LOGIC;ENDlockcontrol;:..BEGINPROCESSFEEDBACK,RESETBEGINY<='1';IFFEEDBACK='0'THENY<='0';ENDIF;IFRESET='1'THENY<='1';ENDIF;ENDPROCESS;ENDbhv;仿真波形为:FEEDBACK为反馈信号,RESET为重置密码信号;当反馈信号下降沿来到时,***控制输出Y低电平,用于在输入错误密码后禁止再次安锁;当RESET脚为高电平时,***控制输出高电平;:LIBRARYIEEE;;paratorISPORTrightpassword,password:INSTD_LOGIC_VECTOR7DOWNTO0;OPN,CLK,RESET:INSTD_LOGIC;A,B,warner:OUTSTD_LOGIC;D11,D12,D21,D22:OUTSTD_LOGIC_VECTOR3DOWNTO0;parator;paratorISBEGINPROCESSOPN,CLK,RESET,rightpassword,passwordBEGIND113<=rightpassword7;D112<=rightpassword6;:..D111<=rightpassword5;D110<=rightpassword4;D123<=rightpassword3;D122<=rightpassword2;D121<=rightpassword1;D120<=rightpassword0;D213<=password7;D212<=password6;D211<=password5;D210<=password4;D223<=password3;D222<=password2;D221<=password1;D220<=password0;IFOPN='1'THENIFrightpassword=passwordTHENA<='1';B<='0';warner<='0';ENDIF;IFrightpassword/=passwordTHENA<='0';B<='1';warner<=CLK;IFRESET='1'THENA<='0';B<='0';warner<='0';ENDIF;ENDIF;ELSEA<='0';B<='0';warner<='0';:..ENDIF;ENDPROCESS;ENDbhv;仿真波形为:1密码正确时:密码匹配时,如果OPEN不打开,电路不工作,如果OPEN打开,则A灯变为高电平,B灯和蜂鸣器不工作;而D11D12始终显示正确密码,D21D22始终显示当前输入密码;2密码错误时:密码不匹配时,如果OPEN不打开,电路不工作,如果OPEN打开,则A灯不工作,B灯亮,蜂鸣器随CLK周期而周期性鸣响;此时,关闭OPEN并启动RESET,才可以使比较器停止工作并可以再次输入密码;:LIBRARYIEEE;;;ENTITYLEDISPORTDATA:INSTD_LOGIC_VECTOR3DOWNTO0;DOUT7:OUTSTD_LOGIC_VECTOR6DOWNTO0;ENDENTITYLED;ARCHITECTUREaOFLEDISBEGINPROCESSDATABEGINCASEDATAIS:..ENDPROCESS;ENDARCHITECTUREa;仿真波形为:可以由二进制代码的值判断出仿真结果真确,从图中还可以观察到,当输入的四位数中有两位及以上同时跳变时,出现了竞争冒险现象;:按下SETUP设置密码;按启动键START启动***程序,当输入的密码与设定的密码相同,按下OPEN键,A灯亮起,锁打开,B灯和蜂鸣器不工作;2密码输入不正确时:按下SETUP设置密码;按启动键START启动***程序,当输入密码与设定的密码不同,按下OPEN键,B灯亮,蜂鸣器随CLK周期性鸣响,此时,开关SETUP和START没有作用,只能关闭OPEN并按下RESET,才可以使B灯和蜂鸣器停止工作并可以重新输入密码,如图,在输入正确密码后再次打开OPEN键,A灯亮起,锁可以打开;:由于硬件设备限制,部分端口没有绑定引脚,如密码输入、设定和七段显示数码管,,结果如下:1密码输入正确时:分析:设定和输入的前四位转换成十进制均为1,密码匹配,此时A灯亮起;2密码输入错误时::..1和0,密码不匹配,B灯亮起,蜂鸣器随CLK信号周期鸣响,此时改变输入的密码,不能终止B灯和蜂鸣器的工作,:1虽然开发系统按要求实现了八位二进制密码设定和输入,但由于硬件设备限制,硬件验证时只允许更改后四位,且将后四位的引脚绑定在四位十六进制高低电平按键上,又由于开发系统设计时使用十进制的七段显示译码器,所以数码管实际显示为十进制数;但是开发系统依然保留了实验要求的功能;2考虑到实验要求中的第四项:“***处理事务完毕后,应将门关上,按SETUP键使系统重新进入安锁状态;若在报警状态,按SETUP键或START键应不起作用,应另用一按键RESET才能使系统进入安锁状态;”如要令RESET键具有此功能,需要使它可以直接控制系统后部的比较器,因此对给出的系统原理图稍作修改,从RESET输入端引出连线至比较器作为类似于OPEN的使能控制端;、黄旭、胡丹峰、黄秋萍硬件描述语言实验教程苏州大学出版社2潘松、黄继业EDA技术应用教程科学出版社3鲍可进数字逻辑电路设计清华大学出版社

VHDL密码锁设计 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人青山代下
  • 文件大小986 KB
  • 时间2024-04-18