1、设置按键还原初始密码。 第3章 总体框图1)设计方案:电子密码锁,主要由四部分组成:时序控制电路、密码输入电路、密码锁控制电路和密码锁显示电路。时序控制电路来控制整个系统的运行时序,使其不会发生混乱。作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。拨码与按键和触摸式4*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码来作为该设计的输入设备。密码锁的输入电路由拨码输入、计数器、译码器组成。密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小
2、的功能电路。数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED数码管。根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。整个密码锁系统的总体框图如图所示。第4章 功能模块4.1 输入模块1)功能介绍输入时有四个拨码键控制输入,每四个拨码来控制一位密码,再设一个拨码键a,每拨一次此按码键a,表示输入一位密码,在用计数器来计数,每输入一位密码时计数一次,并输出一位密码。由于
3、是拨码输入,加上消抖电路,使输入更加稳定。2)输入模块与仿真图形拨码与按键输入如下图上图为拨码输入,当a给一个上升沿信号,在qout输出一个密码。计数器如下图上图为计数器,没输入一个密码计数一次。消抖电路如下图3)程序的输入 在文本区内输入程序,程序如下:拨码与按键输入LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mimasuo IS PORT(key0,key1,key2,key3,ret,a:IN STD_LOGIC; qout:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY mimasuo;ARCH
4、ITECTURE one OF mimasuo IS BEGINPROCESS(a)VARIABLE q:STD_LOGIC_VECTOR(0 TO 3);BEGINIF ret=1 THEN q:=(others=0);ELSEif aevent and a= thenq(3):=key3;q(2):=key2;q(1):=key1;q(0):=key0;END IF;qout=q;END PROCESS;end ARCHITECTURE one;计数器USE IEEE.STD_LOGIC_unsigned.all;ENTITY cnt4 IS PORT (a: Q:OUT STD_LOGI
5、C_vector(0 to 2); END cnt4;ARCHITECTURE BEHAVE OF cnt4 IS SIGNAL q1:STD_LOGIC_vector(0 to 2); PROCESS(a) if a then q1 = q1 + 1; if q1=110 then q1=001; end if; END PROCESS;Qq0=d;010q1011q2100q3 when 101q4q5 null ; end case; end process; end one;寄存器B 如下图:上图为寄存器B,存储设置的用户密码,当key6为高电平时,可以来修改密码。寄存器Bentity
6、 dff02 is end entity dff02; ARCHITECTURE one OF dff02 IS when others =end process;end one;比较器 如下图:上图为密码输入正确、错误时的比较器,当ok键为高电平时,进行比较。比较器entity bijiao is port(ok: n0,n1,n2,n3,n4,n5,b0,b1,b2,b3,b4,b5: in STD_LOGIC_vector(0 to 3); led1:out std_logic; led2:out std_logic);end;ARCHITECTURE one OF bijiao ISS
7、IGNAL Q1,Q2 : STD_LOGIC ; process(n0,n1,n2,n3,n4,n5,b0,b1,b2,b3,b4,b5,ok) if ok= then if n0=b0 and n1=b1 and n2=b2 and n3=b3 and n4=b4 and n5=b5 then Q1 = ; Q2 ELSE Q1 END IF ; led1=Q1;led2=Q2;END one;六选一选择器如下图上图为六选一选择器六选一选择器ENTITY mux61a IS PORT (q0,q1,q2,q3,q4,q5:in STD_LOGIC_vector(0 to 2); led:
8、out std_logic_vector(5 downto 0); y:ARCHITECTURE one OF mux61a ISbegin process (j) begin 000led = 011111y=q0;101111110111=q2;111011=q3;111101=q4;111110=q5; end case ;end process ;end one ;4.3 显示模块将密码用BCD七段数码管显示2)显示模块与仿真波形图,如下图上图将BCD码转化到七段译码电路上七段译码器ENTITY decl7s IS PORT(a:in std_logic_vector(0 to 3 )
9、; led7s:out std_logic_vector(0 to 6);ARCHITECTURE one OF decl7s IScase a iswhen 0000 led7s null;end case;第5章 总体设计电路图将各个模块连接在一起实现。2)顶层文件如下:3)波形仿真如下:当key6为高电平时输入密码进如寄存器A,存储密码,当key6为低电平时,输入密码进入寄存器B,当寄存器B中的输入密码与寄存器A相同时为“104205”led1为高电平、led2为低电平,密码锁开锁。设计正确。第6章 设计心得体会通过这次设计,使我对EDA产生了浓厚的兴趣。特别是当每一个子模块编写调试成功
10、时,心里特别的开心。在当所有子模块都编写好了,连在一起时,运行时,我遇到了很大的麻烦,一直被时序问题所困扰,不能仿真出结果,在试验箱里也不能显示密码。当解决了这个问题时,我特别的高兴。当连接到试验箱上显示时,由于没有加消抖电路,所以在试验箱上显示很不稳定,所以在设计时应加上消抖电路,让输入、输出更稳定。其次,在进行引脚连接时一定要细心,有些引脚不能使用,并且在拨码输入时要注意四个拨码的高地位,我因为没注意使得开始时一直不能得到正确的结果。这次EDA课程设计历时三个星期,在整整三个星期的日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的学以致用,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到的问题,反映出来我的许多不足之处,我以后要努力克服缺点。 总的来说,这次设计的密码锁还是比较成功的,在设计中遇到了很多问题,最后在同学和老师的辛勤的指导下外加上自己的努力,终于都得到了解决,因此很有成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1