ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:250.82KB ,
资源ID:7327468      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7327468.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(可编程逻辑器件原理与应用综合设计格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

可编程逻辑器件原理与应用综合设计格式.docx

1、可编程逻辑器件原理与应用综合设计格式信息技术学院可编程逻辑器件原理及应用课程综合设计报告书姓 名: 李伟梅 班 级: B1210 学 号: 0915121023 时 间:2014年12月21日 指导教师: 李海成 设计题目电子密码锁设计要求和任务设计要求:数据输入:每按一个数字键,就输入一个数值,并在显示器上的最右方显示出该数值,并将先前已经输入的数据依序左移一个数字位置。数码清除:按下此键可清除前面所有的输入值,清除成为“0000”。密码更改:按下此键时将目前的数字设定成新的密码。激活电锁:按下此键可将密码锁上锁。解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。设计任务:设计一密

2、码锁,用VHDL语言描述,用QuartusII工具编译和综合,并仿真,撰写实验报告。电子密码锁内有预置密码,如果输入的十进制数与锁内密码一致,锁被打开;否则,应封闭开锁电路。十进制数采用矩阵键盘输入,并实现左移功能。同时要实现密码更改和数码清除。设计过程(包括:设计方案、原理、 程序与仿真结果、实验结果、收获和体会等)一、设计原理及方案电子密码锁,主要由三部分组成:密码输入电路、密码锁控制电路和密码锁显示电路。 作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。触摸式4*4键盘相比简单方便而且成本低,构成的电路简单,本设计采用触摸式4*4键盘来作为该设计的输入

3、设备。 数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED数码管。 根据以上选定的输入设备与显示器件,并考虑到现实各项密码锁功能的体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。整个密码锁系统的总总体框图如图所示。设计过程二、设计程序1、电子密码锁输入模块1.1 矩阵键盘显示1.2密码锁输入程序process(clk) -键盘列扫描 begin if rising_edge(clk) then -if(Kr=1111) then k

4、flag1=0; kcount=kcount+1; - if(kcount=0) then keyc=1110; - elsif(kcount=1) then keyc=1101; - elsif(kcount=2) then keyc=1011; - else keyc=0111; - end if; -else if(Kr=1111) then kflag1=0; else kflag1=1; end if; keyr=Kr; keyc=Kc; -end if; kflag2buff1buff1buff1buff1buff1buff1buff1buff1buff1buff1buff1buf

5、f1buff1flag3buff1flag4flag2buff1=buff1; end case; end if; end if; end if; -if sxhnb=1and flag3=1 -then flag3=0; sxhnb=0; -elsif flag3=1 then sxhnb=1; -end if; if sxhnb=1 then flag3=0; end if; if lwmhnb=1and flag2=1 then flag2=0; lwmhnb=0; elsif flag2=1 then lwmhnb=1; end if; -if wmhnb=1and flag4=1 -

6、then flag4=0; wmhnb=0; -elsif flag4=1 then wmhnb=1; -end if; if wmhnb=1 then flag4=0; end if; if dhnb=1and flag5=1 then flag5=0; dhnb=0; elsif flag5=1 then dhnb=1; end if; end process; process(clk) begin if(kflag1=1 and kflag2=0 ) then if flag5=1 then buff3=0; buff2=0; end if; buff4=buff3; buff3=buf

7、f2; buff2=buff1; end if; end process;2、电子密码锁控制模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;entity mimasuo isport(Clk : in std_logic; Kr : in std_logic_vector(3 downto 0); Kc : in std_logic_vector(3 downto 0); a,b,c,d,e,f,g : out std_logic;

8、Sa,sb,sc : buffer std_logic;un : out std_logic );end mimasuo;architecture aa of mimasuo is signal keyr,keyc : std_logic_vector(3 downto 0); signal kcount : std_logic_vector(2 downto 0); signal dcount : std_logic_vector(1 downto 0); signal kflag1,kflag2 : std_logic; signal buff1,buff2,buff3,buff4: in

9、teger range 0 to 15; signal Disp_Temp : integer range 0 to 15; signal Disp_Decode : std_logic_vector(6 downto 0); signal mm1,mm2,mm3,mm4 : integer range 0 to 15; signal flag,flag2,flag3,flag4,flag5 : std_logic; signal sxhnb,lwmhnb,wmhnb,dhnb : std_logic; begin process(clk) -密码初始化及更改 begin if rising_

10、edge(clk) then if flag=0 then mm1=0; mm2=0; mm3=0; mm4=0;flag=1; elsif flag2=1 then mm1=buff4; mm2=buff3; mm3=buff2; mm4=buff1; end if; end if; end process;process(flag3,flag4) -开锁 begin if buff1=mm4 and buff2=mm3 and buff3=mm2 and buff4=mm1 and flag3=1 then un=1; sxhnb=1;wmhnb=0;-0 end if; if flag4

11、=1 then un=0; sxhnb=0;wmhnbDisp_TempDisp_TempDisp_TempDisp_TempDisp_Temp=Disp_Temp; end case; end process;process(Clk) begin if rising_edge(clk) then -扫描累加 dcount=dcount+1; a=Disp_Decode(0); b=Disp_Decode(1); c=Disp_Decode(2); d=Disp_Decode(3); e=Disp_Decode(4); f=Disp_Decode(5); g=Disp_Decode(6); s

12、a=0; sb=dcount(0); scDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_Decode=0000000;-全灭 end case; end process;三、实验结果四、程序仿真设计过程五、收获和体会通过这次EDA课程设计,让我对VHDL语言和QUARTUS有了更深一步的了解,我学习了VHDL的自顶而下的设计思想和软件更灵活的使用。让我明白了学以致用的重要性。在设计过程中也有碰到了许多困难,在刚开

13、始设计矩阵键盘的时候有casewhen语句时,没有设计others的情况,导致运行结果有问题。后来,当摁下开锁键的时候,没有任何变化。分析发现是由于运行周期过短,还没来得及开锁就锁上了。于是,在进程后面加了一个计数器,解决了问题。还有其他小问题,例如:少括号,少逗号等,但都迎刃而解了。事实证明做任何事情都要有仔细、认真的态度。总之,通过这次课程设计,我终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给过我帮助的所有同学和主任表示忠心的感谢!成绩评定(包括:指导教师评语和课程设计等级)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1