EDA___课程设计__数字密码锁电路.doc_第1页
EDA___课程设计__数字密码锁电路.doc_第2页
EDA___课程设计__数字密码锁电路.doc_第3页
EDA___课程设计__数字密码锁电路.doc_第4页
EDA___课程设计__数字密码锁电路.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

.电子设计自动化课程设计电子设计自动化课程设计题目: 数字密码锁电路 院(系) 信息科学与工程学院 专 业 通 信 工 程 级 别 班 级 学 号 姓 名 任课老师 摘要本次设计是设计一个数字密码锁电路,即串行输入6位十进制数,同时输出在LED数码管上显示,并且有密码正确与错误的提示,如果连续3次输入错误,则在15分钟内不能开锁。为了方便、有效的实现该功能,此次设计定制了LPM宏功能模块,通过各个模块之间的有机组合,最终完成数字密码锁电路的设计。一、 系统设计1. 设计要求:6位十进制数字密码,串行输入;有开锁和错误指示(LED);如果连续输错三次,则一刻钟内不能再开锁。2. 系统设计方案: 第一部分:首先设计一个十进制计数器和6进制计数器cnt6,其中十进制部分的作用是选择09中的一个输入到密码锁中,cnt6(初始值是000,也可以通过复位键将其置零)的功能控制6位密码依次输入,其作用相当于确认键,即当cnt6的值为000时,输入第一个密码,并在LED数码管上显示,当cnt6的值是001时,输入第二个密码,以此类推当cnt6的值是101是输入第六个密码,然后当cnt6的值是110是输入的6位密码与内置密码比较,如果密码相同,led_suc亮表示密码输入正确,否则led_nsuc亮,表示密码输入错误,此时通过复位键可重新输入,如果连续3次输入错误,则会激活第二部分的电路模块。第二部分:此部分包括一个3进制计数器cnt3和一个十五分钟的倒数计时器cnt(开始时处于待机状态)。其中cnt3的功能是记录第一部分密码输入错误的次数,如果密码联系3次错误,其输出一个信号反馈到第一部分,使第一部分不能继续输入密码,同时倒数计时器cnt开始工作,知道倒数计时回到零时,解除cnt3的反馈信号,第一部分可以输入密码,同时,倒数计时器回到待机状态。二、 软件设计1. 软件设计平台:Quartus,开发工具:EDA试验箱,芯为EP2C5T144C82. 各部分的程序及对应的LPM模块Cnt6模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt6 is port(clk,rst:in std_logic; led:buffer std_logic_vector(2 downto 0); end cnt6;architecture one of cnt6 is begin process(clk) begin if rst=1 then led=000 ; elsif clkevent and clk =1 then led=led+1;if led=111 then led=000;end if; end if; end process; end;LPM模块:Cnt10模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 is port(clk:in std_logic; led:buffer std_logic_vector(3 downto 0); end cnt10;architecture one of cnt10 is begin process(clk) begin if clkevent and clk =1 then led=led+1;if led=1001 then led=0000;end if; end if; end process; end;LPM模块:密码输入模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity main is port ( rst, en :in std_logic; d_in :in std_logic_vector(2 downto 0); din: in std_logic_vector(3 downto 0) ; led0,led1,led2,led3,led4,led5 : buffer std_logic_vector(3 downto 0); suc :out std_logic; nsuc :out std_logic); end main;architecture behav of main isbegin process(d_in) begin if rst=1 then led0=0000 ; led1=0000 ;led2=0000 ;led3=0000 ;led4=0000 ;led5=0000 ;suc=0;nsuc=0;elsif en=1 thenif d_in=000 then led0=din; end if;if d_in=001 then led1=din; end if;if d_in=010 then led2=din; end if;if d_in=011 then led3=din; end if;if d_in=100 then led4=din; end if;if d_in=101 then led5=din; end if;if d_in=110then if (led0 & led1 & led2 & led3 & led4 & led5 = 001000010100010001100110) then suc=1;nsuc=0;t=00;else suc=0;nsuc=1; end if;end if;end process;end behav;LPM 模块:Cnt3模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt3 is port(clk,rst,en:in std_logic; c:out std_logic); end cnt3;architecture one of cnt3 is signal led: std_logic_vector(1 downto 0); begin process(clk ,en,rst) begin if en=0 then if clkevent and clk =1 then led=led+1;end if; else led=00;end if; if rst=1 then led=00;end if; if led=11 then c=1;else c=0;end if; end process; end;LPM模块:倒数计时器cnt(15秒): library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt is port ( clk,en :in std_logic; led0 : out std_logic_vector(3 downto 0); cout: out std_logic); end cnt;architecture behav of cnt isbegin process(clk,en) variable led:std_logic_vector(3 downto 0); begin if en=0 then led:=1111;led0=1111; elsif clkevent and clk=1 then led:=led-1; end if;if led=0000 then cout=1;else cout=0;end if; led0=led;end process;end behav;LPM模块:整体电路图:密码输入及输出仿真图形:倒计时仿真图形:实测结果 定时 六位密码密码正确指示灯定时 六位密码密码错误指示灯定时 六位密码说明:密码联系错三次,定时电路开始工作,此时不能输入密码,15分钟(秒钟)后才能输入密码。三、 小结与体会:对这次设计及结果还算满意,严格按照要求完成了设计并成功测试,但还有不完善的地方,比如说不能通过外部实现修改密码功能,只有从源程序中才能修改。不过我从这次EDA课程

温馨提示

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

评论

0/150

提交评论