可编程器件及数字系统设计实习报告

上传人:M****1 文档编号:504428946 上传时间:2023-09-21 格式:DOC 页数:13 大小:73.50KB
返回 下载 相关 举报
可编程器件及数字系统设计实习报告_第1页
第1页 / 共13页
可编程器件及数字系统设计实习报告_第2页
第2页 / 共13页
可编程器件及数字系统设计实习报告_第3页
第3页 / 共13页
可编程器件及数字系统设计实习报告_第4页
第4页 / 共13页
可编程器件及数字系统设计实习报告_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《可编程器件及数字系统设计实习报告》由会员分享,可在线阅读,更多相关《可编程器件及数字系统设计实习报告(13页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上可编程器件及数字系统设计基于VHDL的数字密码锁设计学号: 姓名:孙喆 日期:2013-9-5目 录一、设计目的与任务1、设计目的 .学习层次化设计方法。 .初步学会分析设计较为复杂的的数字逻辑。2、设计任务:设计一个6位串行数字锁。(1)开锁代码为6位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮绿色的指示灯。否则进入“错误”状态,并点亮红色指示灯。(2)锁内的密码可调,当开锁后方可修改密码。修改功能为:输入旧密码,在输入新密码确认。二、设计方案电子密码锁,主要由三部分组成:密码输入电路、密码锁控制电路和密码锁显示电路。作为电子密

2、码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。拨码与按键和触摸式2*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码与按键来作为该设计的输入设备。数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任意使用LED数码管。根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。整个密码锁系统的总体总体框图如图1.1所示。输入模块寄存器与清零信号发生电路

3、数值比较器拨码与按键单脉冲控制输入译码LED灯扫描电路六选一选择器开/关锁电路控制模块显示模块BCD七段译码显示电路图1.1电子密码锁系统总体框图三、设计实现1、密码锁的显示模块七段数码管是电子开发过程中常用的输出显示设备。在本设计中使用的是8个四位一体、共阳极型七段数码管。由于七段数码管公共端连接到GND(共阴极型),当数码管的中的一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相反。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制

4、,被选通的数码管显示数据,其余关闭。2、密码锁控制模块该模块的作用是将输入的密码(暂时寄存于ACC中)跟已经存储的密码(REG中的密码信息)进行对比,如果一样,则密码锁开锁。而在通过密码验证后可以按按键设定密码。在这里值得注意的是有一个密码“”为开始密码,如果改名密码了但是又忘记了密码,重新下载之后的初始密码只要输入的密码为“”则都可通过密码锁。“当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯(緑灯)亮。否则,系统进入“错误”状态,并发出报警信号。串行数字锁的报警方式是点亮指示灯(红灯)。该6位串行电子密码锁设置6位二进制密码,要求锁内给定的密码是可

5、调的,且设置方便,保密性好。其具体操作分为输入密码和修改密码两部分。2.1输入密码密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足都不能打开锁。若锁内密码为“”,key2和key1置低电平,分别表示输入“1”和“0”。输入密码时按着从密码最低位到最高位的顺序依次正确输入,会在数码管逐一显示。经检验,输入的密码等于锁内预先设置的密码密码锁开启信号,锁开启。同时,密码修改控制信号ctrl置低电平。若在输入密码的过程中,6位二进制密码出现输入错误,那么锁不能开启,同时,指示灯红灯亮。2.2修改密码为防止任意进行密码修改,必须在正确输入密码后,才能重新设置密码。输入正确密码后,锁打开,

6、同时,密码修改控制信号按键ctrl置低电平,就可直接进行修改密码的操作。修改密码实质就是用输入的新密码去取代原来的旧密码,按确定按键ok存储新密码。四、实验结果及分析这次密码锁的设计过程表明,用VHDL可以快速、灵活地设计出符合要求的密码锁控制器,而且操作简单。可以实现密码输入、密码校验、密码设置和更改等功能。设计过程能够在设计完成后在Quartus环境下进行电路的模拟仿真,反馈结果可以验证程序设计的可行性与可靠性。本密码锁控制器设置的是6位密码,在系统复位后,输入一个完整的密码串,输入完后,系统会进行比对,如果发现密码吻合,则开门,否则要求用户继续输入,如果输入的密码串都是错误的,则系统报警

7、,直到输入正确的密码,报警停止。这样的设计可以很好的满足人们的日常需求。同时,密码锁还具有密码修改功能,方便操作,使得密码锁的使用更加安全、便捷。 五、实习总结 历时四周的可编程逻辑器件及数字系统设计终于结束。实习过程中,无论在电路板焊接、软硬件设计还是仿真过程中我都遇到不少问题。其中经常遇到的问题就是VHDL编程问题,有时候经过几天呕心沥血编出来的程序依然会出现各种各样的阻碍,无论如何修改编译都无法通过,搞得自己连续几天都特别失落。当然如果修改成功还是会特别的高兴。可以说,四周的实习是苦远远大于甜。其实归根结底都是我对VHDL语言的掌握不够扎实,才导致每次编译都不能顺利通过。以后我会在这方面

8、多花一些时间。在这段时间里我所获得的成功除了自己思考设计取得之外,与同学的同心协力的合作与讨论是分不开的。相互的探讨使得我们的思路更加开阔,解决问题的办法也更多。总之,此次实习让我收益良多,同时因为有了实践操作,对数字电路与逻辑设计课程所学内容也有了更深的记忆和理解,对EDA技术能够更好的掌握和应用,也让我及时发现了自身的不足。从中懂得了理论知识与实践有机结合的重要性,谢谢学院为我们提供这样珍贵的实习机会!六、附录(程序或电路图)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.s

9、td_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_logic_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

10、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_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

11、(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 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)t

12、hen 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(m1111)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 t

13、hen 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 if (s=s10 and b=)or (s=s10 and b=)or(s=s10 and b=) or(s=s10 and b=)or(s=s10 and b=)or(s=s10 and b=) or(s=s10 and b=)or(s=s10 and b=) then if ctrl=1 then w0=b;w1=w0;w2=w1;w3=w2;w4=w3;w5=w4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号