编辑: 会说话的鱼 | 2019-07-02 |
实验原理:电子密码锁的结构如图1 所示,由时钟脉冲发生器、按键、指示灯和控制部分等组成.开关的消抖动电路放在控制部分考虑,时钟输入端CL K 由外部时钟脉冲发生器的输出提供.设计中的指示灯就是发光二极管,共计10 个,用来指示系统的工作状态.其中8 个为一组,用来显示已经输入密码的个数,剩余两个,一个为开锁绿色指示灯L T ;
另一个为报警红色指示灯L F.控制部分是V HDL 语言设计的核心部分,主要由方波生成模块、消抖同步模、反向器模块和密码锁逻辑控制模块,这4 个模块构成,可以完成密码的修改、设定及非法入侵报警、驱动外围电路等功能. 电子密码锁基本结构 各输入输出信号定义表 电子密码锁的核心部分是控制器,该部分的输入输出信号已有明确的定义如表1 所示: 该电子密码锁设置8 位二进制密码,其功能特点为: 1.采用串行数据输入,可实现启闭开关、指示灯提示和报警等功能;
2.采用消抖模块,以避免开关的震颤影响;
3.开锁者只有在正确输入密码后才能重新设置新的密码,以防止非管理员对密码进行任意的修改;
4.可初始化密码. 数字系统的层次化设计, 一般都要经过4 个阶段: 设计输入、编译、仿真验证、下载器件.本设计采用的是自下而上的设计方法, 逐层完成相应的描述、编译、仿真与验证, 即先建立一些低层次的设计, 再将它们组合在一起, 最后形成一个单一的顶层设计文件.Max + plus Ⅱ软件有多种输入方式,主要有: 各种文本输入、原理图输入和波形输入.对于不同层次的模块, 应采用不同的输入方式进行描述.由于VHDL 擅长描述模块的逻辑功能, 而 原理图擅长描述硬件连接关系, 所以在底层设计中, 对底层所有模块使用VHDL 语言进行描述, 在顶层设计中, 使用原理图输入方法.本设计主要包括方波生成模块、消抖同步模块 和密码锁逻辑控制模块 图系统的组成方框图如下图所示. 电子密码锁顶层文件程序 library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity e_latch is port ( clk : in std_logic;
时钟信号 k0 : in std_logic;
代表0 k1 : in std_logic;
代表1 clr : in std_logic;
复位信号 load : in std_logic;
设置密码开关 It : out std_logic 密码正确 lamp : out std_logic_vector(7 downto 0);
--显示输入的密码位数 lf : out std_logic;
密码错误 alm : out std_logic)报警 end;
architecture Behavioral of e_latch is signal shift,lock: std_logic_vector(7 downto 0):="00000000";
--分别用于存储输入密码和设置好的密码 signal lam: std_logic_vector(7 downto 0);
signal la,li: std_logic;
begin process(clk,clr) begin if clr='0' then --复位 la