可编程器件及数字系统设计实习报告_第1页
可编程器件及数字系统设计实习报告_第2页
可编程器件及数字系统设计实习报告_第3页
可编程器件及数字系统设计实习报告_第4页
可编程器件及数字系统设计实习报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、仪电学院2013年夏季短学期可编程器件及数字系统设计实习报告可编程器件及数字系统设计基于VHDL的数字密码锁设计学号:65120437 姓名:孙喆 日期:2013-9-5目 录一、设计目的与任务31、设计目的32、设计任务:设计一个6位串行数字锁。3二、设计方案3三、设计实现51、密码锁的显示模块52、密码锁控制模块52.1输入密码52.2修改密码6四、实验结果及分析6五、实习总结6六、附录(程序或电路图)7一、设计目的与任务1、设计目的 .学习层次化设计方法。 .初步学会分析设计较为复杂的的数字逻辑。2、设计任务:设计一个6位串行数字锁。(1)开锁代码为6位二进制,当输入代码的位数与锁内给定

2、的密码一致,且按规定程序开锁时,方可开锁,并点亮绿色的指示灯。否则进入“错误”状态,并点亮红色指示灯。(2)锁内的密码可调,当开锁后方可修改密码。修改功能为:输入旧密码,在输入新密码确认。二、设计方案电子密码锁,主要由三部分组成:密码输入电路、密码锁控制电路和密码锁显示电路。作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。拨码与按键和触摸式2*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码与按键来作为该设计的输入设备。数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是

3、普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任意使用LED数码管。根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。整个密码锁系统的总体总体框图如图1.1所示。输入模块寄存器与清零信号发生电路数值比较器拨码与按键单脉冲控制输入译码LED灯扫描电路六选一选择器开/关锁电路控制模块显示模块BCD七段译码显示电路图1.1电子密码锁系统总体框图三、设计实现1、密码锁的显示模块七段数码管是电子开发过程中常用的输出显示设备。在本设计中使用的是8个四位一体、共阳极型七段数码管。由于七段数码管公共端连接到GND(共阴

4、极型),当数码管的中的一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相反。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。2、密码锁控制模块该模块的作用是将输入的密码(暂时寄存于ACC中)跟已经存储的密码(REG中的密码信息)进行对比,如果一样,则密码锁开锁。而在通过密码验证后可以按按键设定密码。在这里值得注意的是有一个密码“000000”为开始密码,如果改名密码了但是又忘记了密码,重新下载之后的

5、初始密码只要输入的密码为“000000”则都可通过密码锁。“当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯(緑灯)亮。否则,系统进入“错误”状态,并发出报警信号。串行数字锁的报警方式是点亮指示灯(红灯)。该6位串行电子密码锁设置6位二进制密码,要求锁内给定的密码是可调的,且设置方便,保密性好。其具体操作分为输入密码和修改密码两部分。2.1输入密码密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足都不能打开锁。若锁内密码为“000000”,key2和key1置低电平,分别表示输入“1”和“0”。输入密码时按着从密码最低位到最高位的顺序依次

6、正确输入000000,会在数码管逐一显示。经检验,输入的密码等于锁内预先设置的密码密码锁开启信号,锁开启。同时,密码修改控制信号ctrl置低电平。若在输入密码的过程中,6位二进制密码出现输入错误,那么锁不能开启,同时,指示灯红灯亮。2.2修改密码为防止任意进行密码修改,必须在正确输入密码后,才能重新设置密码。输入正确密码后,锁打开,同时,密码修改控制信号按键ctrl置低电平,就可直接进行修改密码的操作。修改密码实质就是用输入的新密码去取代原来的旧密码,按确定按键ok存储新密码。四、实验结果及分析这次密码锁的设计过程表明,用VHDL可以快速、灵活地设计出符合要求的密码锁控制器,而且操作简单。可以

7、实现密码输入、密码校验、密码设置和更改等功能。设计过程能够在设计完成后在Quartus环境下进行电路的模拟仿真,反馈结果可以验证程序设计的可行性与可靠性。本密码锁控制器设置的是6位密码,在系统复位后,输入一个完整的密码串,输入完后,系统会进行比对,如果发现密码吻合,则开门,否则要求用户继续输入,如果输入的密码串都是错误的,则系统报警,直到输入正确的密码,报警停止。这样的设计可以很好的满足人们的日常需求。同时,密码锁还具有密码修改功能,方便操作,使得密码锁的使用更加安全、便捷。 五、实习总结 历时四周的可编程逻辑器件及数字系统设计终于结束。实习过程中,无论在电路板焊接、软硬件设计还是仿真过程中我

8、都遇到不少问题。其中经常遇到的问题就是VHDL编程问题,有时候经过几天呕心沥血编出来的程序依然会出现各种各样的阻碍,无论如何修改编译都无法通过,搞得自己连续几天都特别失落。当然如果修改成功还是会特别的高兴。可以说,四周的实习是苦远远大于甜。其实归根结底都是我对VHDL语言的掌握不够扎实,才导致每次编译都不能顺利通过。以后我会在这方面多花一些时间。在这段时间里我所获得的成功除了自己思考设计取得之外,与同学的同心协力的合作与讨论是分不开的。相互的探讨使得我们的思路更加开阔,解决问题的办法也更多。总之,此次实习让我收益良多,同时因为有了实践操作,对数字电路与逻辑设计课程所学内容也有了更深的记忆和理解

9、,对EDA技术能够更好的掌握和应用,也让我及时发现了自身的不足。从中懂得了理论知识与实践有机结合的重要性,谢谢学院为我们提供这样珍贵的实习机会!六、附录(程序或电路图)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity mima is port (clk,clr,sure,ctrl:in std_logic; fmq:out std_logic; green,red:buffer std_logic; seg:out std_lo

10、gic_vector(6 downto 0); com: out std_logic_vector(5 downto 0); keyl:in std_logic_vector(3 downto 0); keyh:buffer std_logic_vector(1 downto 0);end mima;architecture as of mima is type state is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11);signal s:state;signal n:std_logic_vector(3 downto 0);signal clk1:std

11、_logic;signal q:integer range 0 to 1;signal q1:integer range 0 to 5;signal q2:integer range 0 to 20480 ;signal w0,w1,w2,w3,w4,w5,z0,z1,z2,z3,z4,z5,b,c:std_logic_vector(5 downto 0);beginb=keyh&keyl; process(clk)begin if (clkevent and clk=1) then q1=q1+1; if q220480 then q2=q2+1; else q2=0; end if;end

12、 if ;end process;clk1 if(m1111)then s=s1; else s if(m1111)then s=s2; else s if(m1111)then s=s3; else s if(m1111)then s=s4; else s if(m1111)then s=s5; else s if(m1111)then s=s6; else s if(m1111)then s=s7; else s if(m1111)then s=s8; else s if(m1111)then s=s9; else s if(m1111)then s=s10; else s if(m111

13、1)then s=s11; else s if(m1111)then s=s11; else ss=s0; end case; end if; end process;n=m when s=s11 else 1111;process(clk)begin if clkevent and clk=1 then if keyl1111 then q=q;else q=q+1; end if ;end if;end process;keyh=01 when q=0 else 10;process(clk1)beginif clk1event and clk1=1 then if clr =1 then

14、 if (s=s10 and b=010111)or (s=s10 and b=011011)or(s=s10 and b=011101) or(s=s10 and b=011110)or(s=s10 and b=100111)or(s=s10 and b=101011) or(s=s10 and b=101101)or(s=s10 and b=101110) then if ctrl=1 then w0=b;w1=w0;w2=w1;w3=w2;w4=w3;w5=w4; elsif ctrl=0 then z0=b;z1=z0;z2=z1;z3=z2;z4=z3;z5=z4;end if; e

15、nd if; elsez0=000000;z1=000000;z2=000000;z3=000000;z4=000000;z5=000000;end if ;end if;end process;with q1 select com=100000 when 0, 010000 when 1, 001000 when 2, 000100 when 3, 000010 when 4, 000001 when 5, 000000 when others;c=w0 when q1=5 and ctrl=1 else w1 when q1=4 and ctrl =1 else w2 when q1=3

16、and ctrl =1 else w3 when q1=2 and ctrl =1 else w4 when q1=1 and ctrl =1 else w5 when q1=0 and ctrl =1 else z0 when q1=5 and ctrl =0 else z1 when q1=4 and ctrl =0 else z2 when q1=3 and ctrl =0 else z3 when q1=2 and ctrl =0 else z4 when q1=1 and ctrl =0 else z5 when q1=0 and ctrl =0 else c;seg=1111001when c=010111 else 0100100when c=011011 else 0110000when c=011101 else 0011001when c=011110 else 0010010when c=100111 else 0000010when

温馨提示

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

最新文档

评论

0/150

提交评论