1 / 17
文档名称:

密码锁 FPGA..pdf

格式:pdf   页数:17页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

密码锁 FPGA..pdf

上传人:q2299971 2016/6/15 文件大小:0 KB

下载得到文件列表

密码锁 FPGA..pdf

相关文档

文档介绍

文档介绍:1 VHDL 专题--------电子密码锁 一、设计要求: 设计一个简单的数字电子密码锁,密码为4 位。 功能: 1、密码输入:每按下一个键,要求在数码管上显示,并依次左移; 2、密码清除:清除密码输入,并将输入置为”0000 ”; 3、密码修改:将当前输入设为新的密码; 4、上锁和***。 二、电路组成: 为达到以上功能,可将电子密码锁分为以下几个模块: 1、键盘接口电路: 键盘矩阵、键盘扫描、键盘消抖、键盘译码及按键存储。 2、电锁控制电路: 数字按键输入、存储及清除。功能按键的设计。密码清除、修改与存储。电锁的激活与解除。 3、输出显示电路 BCD 译码、动态扫描电路。 三、功能电路的设计: 1、键盘接口电路: 矩阵式键盘工作原理: 矩阵式键盘是一种常见的输入装置,在计算机、电话、手机、微波炉等各工电子产品中被广泛应用。如图所示为一3×4 矩阵式键盘。矩阵式键盘以行、列形式排列,图中为4 行3 列,键盘上的每一个按键盘其实是一个开关电路,当某键被按下时,该按键所对应的位置就呈现逻辑0 的状态, 键盘的扫描可以以行扫或列扫方式进行,图中为行扫方式,KEYR3 —KEYR0 为扫描信号,其中的某一位为0 即扫描其中的一行,具体见表1-1. 1 2 3 4 5 6 7 8 9 0 * # 清抖电路键盘译码按键存储键盘扫描 2 1 2 3 4 5 6 7 8 9 0 * # KEYR3..0 KEYC2..0 键盘扫描信号 KEYR3 与第一行相连,KEYR2 与第二行相连,依此类推。很显然,扫描信号的变化顺序为:0111、1011、1101、1110,周而复始。在扫描的过程中,当有键按下时,对应的键位就为逻辑 0 状态,从而从KEYC2..0 -2 所示: 若从KEYC2..0 读出的值全为1 时,表示没有键被按下,则不进行按键的处理。如果的键被按下,则将KEYC2..0 读出的送至键盘译码电路进行译码。 表1-2 键盘扫描与其对应的键值的关系时序产生电路: 在一个系统的设计中,往往需要多种时钟信号,最为方便的方法是利用一个自由计数器来产生各种需要的频率。本电路需要:系统主时钟、消抖取样时钟和动态扫描时钟。 ?时序产生电路举例: 有如下VHDL 程序,请分析其输出结果: LIBRARY IEEE; KEYR3..0 KE YC2..0 对应的按键 011 1 101 2 0111 110 3 011 4 101 5 1011 110 6 011 7 101 8 1101 110 9 011 0 101 * 1110 110 # 3 USE ; USE ; USE ; ENTITY free_counter IS PORT ( CLK : IN STD_LOGIC ; CLK_A : OUT STD_LOGIC ; CLK_B : OUT STD_LOGIC_VECTOR(1 DOWNTO 0) ) ; END free_counter ; ARCHITECTURE a OF free_counter IS SIGNAL Q : STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN PROCESS (CLK) BEGIN IF CLK'EVENT AND CLK = '1' THEN Q <= Q + 1; END IF; END PROCESS; CLK_A <= Q(1) ; CLK_B <= Q(4 DOWNTO 3) ; END a ; 分析: 首选信号Q 建立一个9 位自由计数器,对输入主时钟进行降频处理; 使用CLK_A<=Q(1)语句,取得一个脉冲波形,对主时钟进行2 分频,其值为0、1、0、1。。。; 使用CLK_B<=Q(4 DOWNTO 3)语句,取得一脉冲序列,依次为00、01、10、11、0