当前位置:文档之家› EDA电子密码锁设计报告

EDA电子密码锁设计报告

---目录摘要: .................................................................. 错误!未定义书签。

第一章:系统设计总述 ................................................................ - 1 -1.1设计要求....................................................................... - 1 -1.2 设计方案...................................................................... - 1 - 第二章:总体程序设计 ................................................................ - 2 -2.1整体组装设计原理图 ......................................................... - 2 -2.2 顶层模块程序调用 ........................................................... - 3 -2.2.1程序部分............................................................... - 3 -2.2.2 整体原理文件......................................................... - 4 - 第三章:单元模块程序设计........................................................... - 5 -3.1 输入模块...................................................................... - 5 -3.1.1 输入模块程序 ....................................................... - 5 -3.1.2输入模块元件 ......................................................... - 6 -3.1.3输入模块仿真 ......................................................... - 7 -3.2 电子密码锁系统控制模块.................................................. - 7 -3.2.1控制模块程序 ......................................................... - 8 -3.2.2控制模块元件 ........................................................ - 10 -3.2.3控制模块仿真 ........................................................ - 11 -3.3显示模块...................................................................... - 11 -3.3.1显示模块元件 ........................................................ - 14 -3.3.2显示模块仿真 ........................................................ - 15 - 第五章:收获与体验 .................................................. 错误!未定义书签。

参考文献................................................................ 错误!未定义书签。

- ..1统设计总述1.1设计要求1、密码输入:每按下一个键,要求在数码管上显示,并依次左移;2、密码删除:每删除一位,数码管上的显示右移一位,在左边空出的位补充零;3、密码设置:当四位密码输入完毕,按下设置功能键进行设置.4、密码检验:输入密码,按下检验键.1.2 设计方案在电子密码锁的设计中,我首先考虑的方法:是用密码输入删除控制模块、动态扫描模块、寄存器模块、比较模块、触发模块实现的。

在密码输入删除控制模块中,每输入一位数,数码管左移一位,设置删除信号back,每按一次,删除最后输入的数字,密码在数码管显示右移一位,左边空处0。

设置密码确认信号set,但四位密码输入完毕后,按下set,则密码被送到寄存器锁存,比较器模块得到数据A,同时密码显示电路清零。

设置密码锁状态显示信号lock。

Lock=0表示锁未开,lock=1表示锁开,设置关锁信号close,当密码送到寄存器模块锁存后,按下close,则lock=0.设置密码检验信号check ,在lock=0下从数据开关输入四位开锁数据,按下check ,则开锁数码送寄存器锁存,数据比较模块得到数据B ,若A=B ,则触发器被置”1”.设计成三个模块:开关编码模块、控制模块、动态显示模块 设计的总结构图如图1.1图1.1设计总结构图2总体程序设计2.1整体组装设计原理图系统的整体组装设计有密码按键输入模块、密码控制模块、密码显示模块三部分组成,系统整体组装原理图如图2.1所示。

图2.1系统整体组装原理图开关编码输入模块 输入、删除、设置、检验控制模块动态显示模块.2.2 顶层模块程序调用2.2.1程序部分library ieee;use ieee.std_logic_1164.all;library work;entity eleclock isport( clk2_1: in std_logic;clk1_1: in std_logic;key_1: in std_logic_vector(9 downto 0);set_1: in std_logic;check_1: in std_logic;close_1: in std_logic;back_1: in std_logic;led_1 : out std_logic_vector(6 downto 0);sn_1: out std_logic_vector(2 downto 0);lock_1: out std_logic);end eleclock;architecture bdf_type of eleclock iscomponent ledsport( din: in std_logic_vector(15 downto 0);clk: in std_logic;con: out std_logic_vector(1 downto 0);led7: out std_logic_vector(6 downto 0);sn : out std_logic_vector(2 downto 0));end component;component artport(clk: in std_logic;set: in std_logic;check: in std_logic;close: in std_logic;back: in std_logic;dn: in std_logic_vector(3 downto 0);sout: out std_logic_vector(15 downto 0);lock : out std_logic);end component;component traport(n: in std_logic_vector(9 downto 0);sout: out std_logic_vector(3 downto 0));end component;signal synthesized_wire_3 : std_logic_vector(15 downto 0); signal synthesized_wire_4 : std_logic_vector(3 downto 0); beginb2v_inst1 : ledsport map(din => synthesized_wire_3(15 downto 0),clk => clk2_1,led7 => led_1(6 downto 0),sn => sn_1(2 downto 0));b2v_inst2 : artport map(set => set_1,check => check_1,close => close_1,back => back_1,clk => clk1_1,dn => synthesized_wire_4,sout => synthesized_wire_3(15 downto 0),lock => lock_1);b2v_inst3 : traport map(n =>key_1(9 downto 0),sout => synthesized_wire_4);end bdf_type;2.2.2 顶层模块原理文件顶层模块原理文件如图2.2.图2.2顶层模块原理图3单元模块程序设计3.1 按键输入模块按键输入与对应的编码输出之间的关系如表3-1所示表3-1 按键编码按键输入编码输出对应的数字0000000001 0001 10000000010 0010 20000000100 0011 30000001000 0100 40000010000 0101 50000100000 0110 60001000000 0111 70010000000 1000 8010******* 1001 91000000000 0000 03.1.1 输入模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity tra isport( n:in std_logic_vector(9 downto 0); ---定义按键输入端口sout:out std_logic_vector(3 downto 0)); ----定义编码输出端口end tra;architecture at of tra is -----定义结构体signal temp:std_logic_vector(3 downto 0);beginprocess(n)begincase n is ----输入键编码when "0000000001"=>temp<="0001";when "0000000010"=>temp<="0010";when "0000000100"=>temp<="0011";when "0000001000"=>temp<="0100";when "0000010000"=>temp<="0101";when "0000100000"=>temp<="0110";when "0001000000"=>temp<="0111";when "0010000000"=>temp<="1000";when "010*******"=>temp<="1001";when "1000000000"=>temp<="0000";when others=>temp<="1111";end case;end process;sout<=temp;end at;3.1.2输入模块元件.图3.1电子密码锁键盘输入3.1.3输入模块仿真图3.2键盘输入仿真3.2电子密码锁系统控制模块密码锁的控制电路是整个电路的控制中心。

相关主题