logo资料库

EDA 密码锁.doc

第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
资料共26页,剩余部分请下载后查看
前言
1 设计内容与目的:
1.1 设计内容:
1.2 设计目的:
2 方案设计:
2.1 设计总体框图:
2.2 电路原理图:
2.3 键盘接口电路:
2.4 电锁控制电路:
2.5 输出显示电路 :
3 功能电路的设计:
3.1 键盘接口电路:
3.2 时序产生电路:
3.3 键盘扫描电路:
3.4 键盘消抖电路
3.5 键盘译码电路
3.6 按键存储电路:
3.7 电锁控制电路设计
4 系统仿真:
5 程序清单:
目录 前言..............................................................................................................1 1 设计内容与目的..................................................................................... 1 1.1 设计内容........................................................................................ 1 1.2 设计目的........................................................................................ 1 2 方案设计................................................................................................. 2 2.1 设计总体框图................................................................................ 2 2.2 电路原理图.................................................................................... 2 2.3 键盘接口电路................................................................................ 2 2.4 电锁控制电路................................................................................ 2 2.5 输出显示电路................................................................................ 3 3 功能电路的设计..................................................................................... 3 3.1 键盘接口电路................................................................................ 3 3.2 时序产生电路................................................................................ 4 3.3 键盘扫描电路................................................................................ 5 3.4 键盘消抖电路................................................................................ 8 3.5 键盘译码电路................................................................................ 9 3.6 按键存储电路.............................................................................. 11 3.7 电锁控制电路设计......................................................................15 4 系统仿真............................................................................................... 16 5 程序清单............................................................................................... 16 6 参考文献…………………………………………………………….25
湖南商学院课程设计 电子密码锁 前言 电子密码锁的使用体现了人们消费水平、保安意识和科技水平的提高,而且 避免了携带甚至丢失钥匙的麻烦。目前设计密码锁的方法很多,例如用传统的PCB 板设计、用PLC设计或者用单片机设计等等。而用VHDL可以更加快速、灵活地设 计出符合各种要求的密码锁,优于其他设计方法。VHDL是一种符合IEEE标准的硬 件描述语言,其最大的特点是借鉴高级程序设计语言的功能特性,对电路的行为 与结构进行高度抽象化、规范化的形式描述,并对设计的不同层次、不同领域的 模拟验证与综合优化等处理,使设计过程廷到高度自动化。 1 设计内容与目的: 1.1 设计内容: 设计一个简单的数字电子密码锁,密码为 4 位。要求具备如下功能: (1)如果输入数字键,第一个数字会从显示器的最右端开始显示,此后每按 下一个数字键,显示器上的数字必须往左移动一格,以便将新的数字显示出来。 (2)本密码锁为四位密码锁,当输入的数字超过4个时,不会显示第四个以后 的数字。 (3)按下清零键,清除所有输入的数字,即做归零动作。 (4)按下密码确认键,检查输入的密码是否正确,密码正确即开锁。 (5)按下密码变更键,将当前输入的数字设置成新密码。 (6)设计一个万能密码,只要输入万能密码即开锁。 1.2 设计目的: 随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出, 传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高, 使用灵活性好,安全系数高,受到了广大用户的亲昵,电子密码锁的使用也体现 了人们消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的 麻烦。 第 1 页 共 26 页
湖南商学院课程设计 2 方案设计: 2.1 设计总体框图: 图 1 电子密码锁总体框图 2.2 电路原理图: 图 2 电子密码原理图 2.3 键盘接口电路: 键盘矩阵、键盘扫描、键盘消抖、键盘译码及按键存储。 2.4 电锁控制电路: 数字按键输入、存储及清除;功能按键的设计;密码清除、修改与存储;电 第 2 页 共 26 页
湖南商学院课程设计 锁的激活与解除。 2.5 输出显示电路 : BCD 译码、动态扫描电路。 3 功能电路的设计: 3.1 键盘接口电路: 图 3 键盘接口电路 矩阵式键盘工作原理: 矩阵式键盘是一种常见的输入装置,在计算机、电话、手机、微波炉等各工 电子产品中被广泛应用。如图所示为一 3×4 矩阵式键盘。矩阵式键盘以行、列 形式排列,图中为 4 行 3 列,键盘上的每一个按键盘其实是一个开关电路,当 某键被按下时,该按键所对应的位置就呈现逻辑 0 的状态,键盘的扫描可以以 行扫或列扫方式进行,图中为行扫方式,KEYR3—KEYR0 为扫描信号,其中的 某一位为 0 即扫描其中的一行。 第 3 页 共 26 页
湖南商学院课程设计 图 4 键盘框架图 键盘扫描信号 KEYR3 与第一行相连,KEYR2 与第二行相连,依此类推。 很显然,扫描信号的变化顺序为:0111、1011、1101、1110,周而复始。在扫描 的过程中,当有键按下时,对应的键位就为逻辑 0 状态,从而从 KEYC2..0 读 出的键值相应列为 0。具体情况如表 1-1 所示:若从 KEYC2..0 读出的值全为 1 时,表示没有键被按下,则不进行按键的处理。如果有键被按下,则将 KEYC2..0 读出的送至键盘译码电路进行译码。 表 1-1 键盘扫描与其对应的键值的关系 3.2 时序产生电路: 在一个系统的设计中,往往需要多种时钟信号,最为方便的方法是利用一个 自由计数器来产生各种需要的频率。本电路需要:系统主时钟、消抖取样时钟和 动态扫描时钟。时序产生电路举例: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY FREE_COUNTER IS PORT ( 第 4 页 共 26 页
湖南商学院课程设计 : IN CLK 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、00 等等; 3.3 键盘扫描电路: 目标:提供键盘扫描信号,即表 1-1 中的 KEYR3..0,变化顺序依次为 0111、 1011、1101、1110 依次重复出现。 程序清单: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL ; 第 5 页 共 26 页
湖南商学院课程设计 USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY SCAN IS PORT ( CLK : IN STD_LOGIC ; CLK_SCAN : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ); END SCAN ; ARCHITECTURE A OF SCAN IS SIGNAL S : STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL Q: STD_LOGIC_VECTOE(3 DOWNTO 0); BEGIN PROCESS (CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN Q <= Q+1; S :=Q(3 DOWNTO 2); END IF; END PROCESS; SCAN_OUT<= "1110" WHEN S=0 ELSE "1101" WHEN S=1 ELSE "1011" WHEN S=2 ELSE "0111" WHEN S=3 ELSE "1111"; END A ; 说明:程序中,S 信号是用来产生扫描信号的四个状态,Q 是为了对输入主 时钟进行降频处理。键盘消抖电路:因为按键大多是机械式开关,在开关切换的 瞬间会在接解点出现来回弹跳的现象,由图可见,虽然只是按了一次键,实际产 生的按键信号却不只跳动一次,经过取样信号的检查后,将会造成误码判,认为 是按了两次键。如果调整取样频率,可以发现抖现象得到了改善。 第 6 页 共 26 页
湖南商学院课程设计 按键信号: 取样信号: 取样结果: 调整取样频率后的情况如下: 程序清单: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; ENTITY DEBOUNCING IS PORT ( D_IN, CLK : IN STD_LOGIC; DD1, DD0, QQ1, QQ0 : OUT STD_LOGIC ; D_OUT,D_OUT1 : OUT STD_LOGIC ); END DEBOUNCING ; ARCHITECTURE A OF DEBOUNCING IS SIGNAL VCC, INV_D : STD_LOGIC ; SIGNAL Q0, Q1 SIGNAL D1, D0 BEGIN : STD_LOGIC ; : STD_LOGIC ; VCC <= '1' ; 第 7 页 共 26 页
分享到:
收藏