课程设计电子密码锁.doc

上传人:文库蛋蛋多 文档编号:3993316 上传时间:2023-03-30 格式:DOC 页数:16 大小:161KB
返回 下载 相关 举报
课程设计电子密码锁.doc_第1页
第1页 / 共16页
课程设计电子密码锁.doc_第2页
第2页 / 共16页
课程设计电子密码锁.doc_第3页
第3页 / 共16页
课程设计电子密码锁.doc_第4页
第4页 / 共16页
课程设计电子密码锁.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《课程设计电子密码锁.doc》由会员分享,可在线阅读,更多相关《课程设计电子密码锁.doc(16页珍藏版)》请在三一办公上搜索。

1、目录第1章 系统设计要求1第2章 系统设计方案22.1 电子密码锁输入电路的设计22.1.1矩阵式键盘的工作原理32.1.2 密码锁输入电路各主要功能模块的设计32.2密码锁控制电路的设计42.2.1数字按键输入的响应控制42.2.2 功能按键输入的响应控制42.3 密码锁显示电路的设计42.4 电子密码锁的三种模式关系4第3章 模块分析63.1 密码锁输入模块63.1.1 密码锁输入模块的VHDL源程序63.1.2 密码锁输入模块的原理图83.1.3 密码锁输入模块的仿真83.2 密码锁控制模块83.2.1 密码锁控制模块的VHDL源程序83.2.2 密码锁控制模块的原理图103.2.3 密

2、码锁控制模块的仿真103.3 密码锁译码模块113.3.1 密码锁译码模块的VHDL源程序113.3.2 密码锁译码模块的原理图113.4 密码锁系统123.4.1 系统整体组装设计原理图12第4章 设计总结14参考文献15第1章 系统设计要求设计一个具有较高安全性和较低成本的通用电子密码锁,其具体功能要求如下:1. 数码输入:每按下一个数字键,就输入一个数值,并在显示器上的最右方显示出该数值,同时将先前输入的数据依序左移一个数字位置。2. 数码清除:按下此键可清除前面所有的输入值,清除成为“0000”。3. 密码更改:按下此键时会将目前的数字设定成新的密码。4. 激活电锁:按下此键可将密码锁

3、上锁。5. 解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。第2章 系统设计方案作为电子密码锁的输入电路,可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。 根据以上选定的输入设备和显示器件,并考虑到实现各项数字密码锁功能的具体要求,整个电子密码锁系统的总体组成框图如图2-1所示。图2-1 电子密码锁系统总体框图2.1 电子密码锁输入电路的设计图2-2是电子密码锁的输入电路框图,由键盘扫描电路、弹跳消除电路、键盘译码电路、按键数据缓存器,加上外接的一个34矩阵式键盘组成。图2-2 密码锁的输入电路框图2.1.1矩阵式键盘的工作原理 矩阵式键盘是一种常见的输入装置,在日常的生活中

4、,矩阵式键盘在计算机、电话、手机、微波炉等各式电子产品上已经被广泛应用。图2-3是一个34矩阵式键盘的面板配置图,其中数字09作为密码数字输入按键,*作为“上锁”功能按键,#作为“解锁/清除”功能按键。图2-3 34矩阵式键盘的面板配置2.1.2 密码锁输入电路各主要功能模块的设计 1. 时序产生电路 本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。 2. 键盘扫描电路扫描电路的作用是用来提供键盘扫描信号(表4.1中的KY3KY0)的,扫描信号变化的顺序依次为11101101101101111110

5、.依序地周而复始。 3. 键盘译码电路上述键盘中的按键分为数字按键和文字按键,每一个按键可能负责不同的功能,例如清除键、上锁键和解除键等。数字按键主要用来输入数字的,但是键盘所产生的输出是无法直接拿来用作密码锁控制电路的输入的;另外,不同的按键具有不同的功能,所以必须有按键译码电路来规划每个按键的输出形式,以便执行相应的动作。4. 按键存储电路因为每次扫描会产生新的按键数据,可能会覆盖前面的数据,所以需要一个按键存储电路,将整个键盘扫描完毕后的结果记录下来。各按键的位置与数码关系如表2.1所示。 表2.1 按键位置与数码关系按键位置000000010101输出信号001101010110001

6、101010110按键号123456按键位置010101111111输出信号001101010110001101010110按键号789*0#2. 2密码锁控制电路的设计密码锁的控制电路是整个电路的控制中心,主要完成对数字按键输入和功能按键输入的响应控制。2. 2.数字按键输入的响应控制1. 如果按下数字键,第一个数字会从显示器的最右端开始显示,此后每新按一个数字时,显示器上的数字必须左移一格,以便将新的数字显示出来。2. 假如要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有输入的数字,再重新输入四位数。3.由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超

7、过四个时,电路不予理会,而且不再显示第四个以后的数字。.功能按键输入的响应控制1. 清除键:清除所有的输入数字,即做归零动作。2. 激活电锁键:按下此键时可将密码锁的门上锁。(上锁前必须预先设定一个四位的数字密码。)3. 解除电锁键:按下此键会检查输入的密码是否正确,若密码正确无误则解锁。 2.3 密码锁显示电路的设计密码锁显示电路的设计比较简单,这里直接采用四个4-7译码器来实现。2.4 电子密码锁的三种模式关系 电子密码锁存在三种模式:输入文字模式、上锁工作模式和开锁工作模式。这三种模式有一定的关系相对应,对应关系如下图。图2-4 电子密码锁的三种模式及关系第3章 模块分析3.1 密码锁输

8、入模块密码锁输入电路主要是产生时钟脉冲信号和按键输入信号。3.1.1 密码锁输入模块的VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SR ISPORT ( CLK_1K: IN STD_LOGIC; KEY_IN: IN STD_LOGIC_VECTOR ( 2 DOWNTO 0); DATA_N: OUT STD_LOGIC_VECTOR ( 3 DOWNTO 0); DATA_F: OUT STD_LOGI

9、C_VECTOR ( 3 DOWNTO 0); FLAG_N: OUT STD_LOGIC; FLAG_F: OUT STD_LOGIC; CQD: OUT STD_LOGIC; KSEL: OUT STD_LOGIC_VECTOR ( 3 DOWNTO 0); CSR: OUT STD_LOGIC_VECTOR ( 1 DOWNTO 0);END SR;ARCHITECTURE ART OF SR IS SIGNAL C_QD: STD_LOGIC; SIGNAL C_SR: STD_LOGIC_VECTOR ( 1 DOWNTO 0); SIGNAL N,F: STD_LOGIC_VECT

10、OR ( 3 DOWNTO 0); SIGNAL FN,FF: STD_LOGIC; SIGNAL SEL: STD_LOGIC_VECTOR ( 3 DOWNTO 0); SIGNAL Q: STD_LOGIC_VECTOR ( 5 DOWNTO 0); SIGNAL C: STD_LOGIC_VECTOR ( 2 DOWNTO 0); BEGIN DATA_N = N; DATA_F = F; FLAG_N = FN; FLAG_F = FF; CQD = C_QD; CSR = C_SR; KSEL= SEL; C(0)= KEY_IN(0); C(1)= KEY_IN(1); C(2)

11、= KEY_IN(2); COUNTER : BLOCK IS BEGIN PROCESS (CLK_1K) IS BEGIN IF(CLK_1KEVENT AND CLK_1K=1)THEN Q = Q+1; END IF; C_QD = Q(3); C_SR = Q(5 DOWNTO 4); END PROCESS; SEL = 1110WHEN C_SR = 0 ELSE 1101WHEN C_SR = 1 ELSE 1011WHEN C_SR = 2 ELSE 0111WHEN C_SR = 3 ELSE 1111;END BLOCK COUNTER;KEY_DECODER : BLO

12、CK SIGNAL Z : STD_LOGIC_VECTOR ( 4 DOWNTO 0); BEGIN PROCESS(C_QD) BEGIN Z N N N N N N N N N N N F F F =1000; END CASE; END IF; END PROCESS; FN = NOT ( N(3) AND N(2) AND N(1) AND N(0); FF = F(2) OR F(0); END BLOCK KEY_DECODER;END ARCHITECTURE ART;3.1.2 密码锁输入模块的原理图 图3-1 密码锁输入模块的原理图3.1.3 密码锁输入模块的仿真图3-2

13、 密码锁输入模块的仿真图图3-2为密码锁输入电路的仿真结果图,图中的输出信号CSR,CQD是为便于仿真时观察中间结果而增加的观测点的输出,调试好后程序中的相应语句应注释掉。3.2 密码锁控制模块密码锁控制模块是整个系统的控制中心,主要控制数字按键输入和功能按键输入,如清除、上锁和解锁等。3.2.1 密码锁控制模块的VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRL ISPORT ( DATA_N: IN S

14、TD_LOGIC_VECTOR ( 3 DOWNTO 0); DATA_F: IN STD_LOGIC_VECTOR ( 3 DOWNTO 0); FLAG_N: IN STD_LOGIC; FLAG_F: IN STD_LOGIC; MIMAIN: BUFFER STD_LOGIC; SETIN: BUFFER STD_LOGIC; OLD: BUFFER STD_LOGIC; CQD: IN STD_LOGIC; ENLOCK: OUT STD_LOGIC; DATA_BCD: OUT STD_LOGIC_VECTOR ( 15 DOWNTO 0);END CTRL;ARCHITECTUR

15、E ART OF CTRL IS SIGNAL ACC, REG: STD_LOGIC_VECTOR (15 DOWNTO 0); BEGIN PROCESS(CQD,FLAG_F) IS BEGIN IF CQDEVENT AND CQD= 0 THEN IF FLAG_F =1 THEN IF(DATA_F = 0100)THEN ACC= 1111111111111111; MIMAIN= 0;SETIN=0;OLD ENLOCK MIMAIN= 1; ACC SETIN= 1; ACC= 1111111111111111; OLDNULL; END CASE; ELSIF(MIMAIN

16、= 1)THEN IF ACC = REG THEN ENLOCK= 0; MIMAIN= 0; ELSE MIMAIN= 0; END IF; ELSIF(SETIN =1)THEN IF(OLD = 1)THEN IF(ACC = REG)THEN OLD= 0; ELSE SETIN= 0; OLD= 0; END IF; ELSE IF (ACC1001100110011001)THEN REG= ACC; SETIN= 0; END IF; END IF; END IF; END IF; ELSIF FLAG_N = 1THEN ACC= ACC(11 DOWNTO 0) & DAT

17、A_N; END IF; END IF; END PROCESS; DATA_BCDDOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7= 0000000; END CASE; END PROCESS;END ARCHITECTURE ART;3.3.2 密码锁译码模块的原理图图3-5 密码锁译码模块的原理图3.3.3 密码锁译码模块的仿真图3-6 密码锁译码模块的仿真图上述仿真图输入为键盘按键数,通过七段数码管相应的显示出来。从上图可以看出,当BCD数码输入(DATA_BCD)为“09”时,则在七段译码输出(DOUT7)相应为“09”

18、,如此循环往复。3.4 密码锁系统由输入、控制和译码三个模块组成的密码锁系统,可以实现密码输入、密码清除、密码更改、密码上锁和密码解除等多种功能。3.4.1 系统整体组装设计原理图将前面各个设计好的功能模块进行整合,可得到一个完整的电子密码锁系统的整体组装设计原理图,如图3-7所示。图3-7 系统整体组装设计原理图通过上图的系统整体组装设计原理图进行编译可以生成图3-8的系统原理图。图3-8 系统原理图3.4.2 电子密码锁整个系统的仿真图3-9 密码锁整个系统的仿真电子密码锁整个系统的仿真可以实现以下功能:设置新密码(初始密码为0000)、上锁(ENLOCK有效)、解锁但密码输入错误(ENL

19、OCK有效)和解锁且密码输入正确(ENLOCK无效)。四个七段数码管SEG_SM1、SEG_SM2、SEG_SM3和SEG_SM4分别显示“0-9”十个数字中的不同数。第4章 设计总结通过这次的课程设计,理论加上实践,使我对EDA有了更深刻的认识,尤其是对FPGA/CPLD硬件原理的理解,各种程序认识,也纠正了自己以前很多不对的看法,当然在设计的过程中,我们也遇到了很多困难,在查阅了大量的书籍资料之后,对这次设计有了一个整体的认识,做出了初步的原理图,然后经过反复的调试后,逐步修改,尽量使其性能达到完美。这个过程是最困难的过程,也是我收获最大的过程,使自己的实验动手能力有了进一步的提高。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划。总之,这次设计使我受益匪浅,让我对以后的工作学习有了更大的信心。参考文献1潘松,黄继业. EDA技术实用教程. 北京:科学出版社,20022曹昕燕,周凤臣,聂春燕.EDA技术实验与课程设计.北京:清华大学出版社,200634

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号