目录
前言..............................................................................................................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 页