基于VHDL语言的8位数字密码锁设计_第1页
基于VHDL语言的8位数字密码锁设计_第2页
基于VHDL语言的8位数字密码锁设计_第3页
基于VHDL语言的8位数字密码锁设计_第4页
基于VHDL语言的8位数字密码锁设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图3.5如上图多路选择器可以从多组数据来源中选取一组送入目的地,在本设计中利用多路选择器做扫描电路来分别驱动输出装置,可以将低成本消耗,如上图当输入“819”时,在时钟地控制下qout将输出“819”,而与之对应的sel扫描对应的数码管。在文本区内输入程序,程序如下:输入译码器KEY.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYKEYISPORT(clk:INSTD_LOGIC;data:INSTD_LOGIC_VECTOR(3DOWNTO0);q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);q1:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDENTITYKEY;ARCHITECTUREARTOFKEYISBEGINPROCESS(clk,data)ISBEGINIFclk'EVENTANDclk='1'THENCASEdataISWHEN"0000"=>q<="0000";q1<="0000";WHEN"0001"=>q<="0001";q1<="0001";WHEN"0010"=>q<="0010";q1<="0010";WHEN"0011"=>q<="0011";q1<="0011";WHEN"0100"=>q<="0100";q1<="0100";WHEN"0101"=>q<="0101";q1<="0101";WHEN"0110"=>q<="0110";q1<="0110";WHEN"0111"=>q<="0111";q1<="0111";WHEN"1000"=>q<="1000";q1<="1000";WHEN"1001"=>q<="1001";q1<="1001";WHENOTHERS=>q<="0000";q1<="0000";ENDCASE;ENDIF;ENDPROCESS;ENDARCHITECTUREART;总功能控制模块Eleclock.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYEleclockISPORT(NB:INSTD_LOGIC_VECTOR(3DOWNTO0);NS:INSTD_LOGIC_VECTOR(3DOWNTO0);NG:INSTD_LOGIC_VECTOR(3DOWNTO0);CLK:INSTD_LOGIC;CHANGE,RT:INSTD_LOGIC;DB:OUTSTD_LOGIC_VECTOR(3DOWNTO0);DS:OUTSTD_LOGIC_VECTOR(3DOWNTO0);DG:OUTSTD_LOGIC_VECTOR(3DOWNTO0);LOCKOPEN,LOCKCLOSE:OUTSTD_LOGIC);ENDENTITYEleclock;ARCHITECTUREARTOFEleclockISCOMPONENTKeyISPORT(CLK:INSTD_LOGIC;DATA:INSTD_LOGIC_VECTOR(3DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);Q1:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCOMPONENTKey;SIGNALENABLE,C0,C1,S,ENABLE1:STD_LOGIC;SIGNALTB,TS,TG,D_B,D_S,D_G:STD_LOGIC_VECTOR(3DOWNTO0);BEGINENABLE<=CHANGEAND(NOTRT);ENABLE1<=RTAND(NOTCHANGE);U0:KEYPORTMAP(CLK=>CLK,DATA=>NB,Q=>DB,Q1=>D_B);U1:KEYPORTMAP(CLK=>CLK,DATA=>NS,Q=>DS,Q1=>D_S);U2:KEYPORTMAP(CLK=>CLK,DATA=>NG,Q=>DG,Q1=>D_G);PROCESS(CLK,D_B,D_S,D_G)ISBEGINIFCLK'EVENTANDCLK='1'THENIFENABLE='1'THENTB<=D_B;TS<=D_S;TG<=D_G;ENDIF;IFENABLE1='1'THENIF(TB<=D_BANDTS<=D_SANDTG<=D_G)THENLOCKOPEN<='1';LOCKCLOSE<='0';ELSELOCKOPEN<='0';LOCKCLOSE<='1';ENDIF;ENDIF;ENDIF;ENDPROCESS;ENDARCHITECTUREART;4选1选择器与扫描器sel.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYselISPORT(QIN1,QIN2,QIN3:INSTD_LOGIC_VECTOR(3DOWNTO0);CLK,RST:INSTD_LOGIC;QOUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0);sel:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDsel;ARCHITECTUREARTOFselISBEGINPROCESS(CLK,RST)VARIABLECNT:INTEGERRANGE0TO2;BEGINIF(RST='0')THENCNT:=0;sel<="00000000";QOUT<="0000";ELSIFCLK'EVENTANDCLK='1'THENIFCNT=2THENCNT:=0;ELSECNT:=CNT+1;ENDIF;CASECNTISWHEN0=>QOUT<=QIN1;sel<="11111110";WHEN1=>QOUT<=QIN2;sel<="11111101";WHEN2=>QOUT<=QIN3;sel<="11111011";WHENOTHERS=>QOUT<="0000";sel<="11111111";ENDCASE;ENDIF;ENDPROCESS;ENDARCHITECTUREART;3.3显示模块3.3.1功能介绍将密码用BCD七段数码管显示显示模块与仿真波形图3.6,如下图图3.6上图将BCD码转化到七段译码电路上表3-2BCD-七段数码管的真值表输入输出DCBAY1Y2Y3Y4Y5Y6Y7字形000011111100000101100001001011011012001101110013010001100114010110110115011010111116011111100007100011111118100111100119表3-2在文本区内输入程序,程序如下:Seg7.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSeg7ISPORT(num:INSTD_LOGIC_VECTOR(3DOWNTO0);led:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDSeg7;ARCHITECTUREACTOFSeg7ISBEGINLED<="1111110"WHENnum="0000"ELSE"0110000"WHENnum="0001"ELSE"1101101"WHENnum="0010"ELSE"1111001"WHENnum="0011"ELSE"0110011"WHENnum="0100"ELSE"1011011"WHENnum="0101"ELSE"1011111"WHENnum="0110"ELSE"1110000"WHENnum="0111"ELSE"1111111"WHENnum="1000"ELSE"1111011"WHENnum="1001"ELSE"1110111"WHENnum="1010"ELSE"0011111"WHENnum="1011"ELSE"1001110"WHENnum="1100"ELSE"0111101"WHENnum="1101"ELSE"1001111"WHENnum="1110"ELSE"1000111"WHENnum="1111";ENDACT;4总体设计电路图4.1功能介绍将各个模块连接在一起实现。顶层文件如下:波形仿真如下:图4﹒1当change为高电平,rt为低电平时,输入“952”验证,当再次输入“952”时锁打开,设计正确。5设计体会与建议5.1设计体会通过这次设计,使我对EDA产生了浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。在编写蜂鸣器模块时,我遇到了很大的困难,一直被定时问题所困扰,解决了这个问题时,我特别的高兴。写控制文件的程序时,也遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了。再对控制模块仿真时,虽然语法正确,但连最基本的输入输出都进不去,我们弄了很多遍都不行,后来在老师的指导下我们才解决了这个问题。另一个问题就是三个时钟信号的配合,其中显示模块和控制模块的信号频率要高。其次,在进行引脚连接时一定要细心,有些引脚不能使用,我因为没注意使得开始时一直不能得到正确的结果。这次EDA课程设计历时两个星期,在整整两个星期的日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论