EDA电子密码锁设计报告.docx
- 文档编号:324771
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:17
- 大小:150.13KB
EDA电子密码锁设计报告.docx
《EDA电子密码锁设计报告.docx》由会员分享,可在线阅读,更多相关《EDA电子密码锁设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
EDA电子密码锁设计报告
摘要:
-2-
第一章:
系统设计总述-3-
1.1设计要求-3-
1.2设计方案-3-
第二章:
总体程序设计-3-
2.1整体组装设计原理图-4-
2.2顶层模块程序调用-4-
2.2.1程序部分-4-
2.2.2整体原理文件-6-
第三章:
单元模块程序设计-6-
3.1输入模块-7-
3.1.1输入模块程序-7-
3.1.2输入模块元件-8-
3.1.3输入模块仿真-9-
3.2电子密码锁系统控制模块-9-
3.2.1控制模块程序-10-
3.2.2控制模块元件-12-
3.2.3控制模块仿真-13-
3.3显示模块-13-
3.3.1显示模块元件-16-
3.3.2显示模块仿真-16-
第五章:
收获与体验-17-
参考文献-18-
1统设计总述
1.1设计要求
1、密码输入:
每按下一个键,要求在数码管上显示,并依次左移;
2、密码删除:
每删除一位,数码管上的显示右移一位,在左边空出的位补充零;
3、密码设置:
当四位密码输入完毕,按下设置功能键进行设置.
4、密码检验:
输入密码,按下检验键.
1.2设计方案
在电子密码锁的设计中,我首先考虑的方法:
是用密码输入删除控制模块、动态扫描模块、寄存器模块、比较模块、触发模块实现的。
在密码输入删除控制模块中,每输入一位数,数码管左移一位,设置删除信号back,每按一次,删除最后输入的数字,密码在数码管显示右移一位,左边空处0。
设置密码确认信号set,但四位密码输入完毕后,按下set,则密码被送到寄存器锁存,比较器模块得到数据A,同时密码显示电路清零。
设置密码锁状态显示信号lock。
Lock=0表示锁未开,lock=1表示锁开,设置关锁信号close,当密码送到寄存器模块锁存后,按下close,则lock=0.
设置密码检验信号check,在lock=0下从数据开关输入四位开锁数据,按下check,则开锁数码送寄存器锁存,数据比较模块得到数据B,若A=B,则触发器被置”1”.
设计成三个模块:
开关编码模块、控制模块、动态显示模块
设计的总结构图如图1.1
图1.1设计总结构图
2总体程序设计
2.1整体组装设计原理图
系统的整体组装设计有密码按键输入模块、密码控制模块、密码显示模块三部分组成,系统整体组装原理图如图2.1所示。
图2.1系统整体组装原理图
2.2顶层模块程序调用
2.2.1程序部分
libraryieee;
useieee.std_logic_1164.all;
librarywork;
entityeleclockis
port
(clk2_1:
instd_logic;
clk1_1:
instd_logic;
key_1:
instd_logic_vector(9downto0);
set_1:
instd_logic;
check_1:
instd_logic;
close_1:
instd_logic;
back_1:
instd_logic;
led_1:
outstd_logic_vector(6downto0);
sn_1:
outstd_logic_vector(2downto0);
lock_1:
outstd_logic
);
endeleclock;
architecturebdf_typeofeleclockis
componentleds
port(din:
instd_logic_vector(15downto0);
clk:
instd_logic;
con:
outstd_logic_vector(1downto0);
led7:
outstd_logic_vector(6downto0);
sn:
outstd_logic_vector(2downto0)
);
endcomponent;
componentart
port(clk:
instd_logic;
set:
instd_logic;
check:
instd_logic;
close:
instd_logic;
back:
instd_logic;
dn:
instd_logic_vector(3downto0);
sout:
outstd_logic_vector(15downto0);
lock:
outstd_logic
);
endcomponent;
componenttra
port(n:
instd_logic_vector(9downto0);
sout:
outstd_logic_vector(3downto0)
);
endcomponent;
signalsynthesized_wire_3:
std_logic_vector(15downto0);
signalsynthesized_wire_4:
std_logic_vector(3downto0);
begin
b2v_inst1:
leds
portmap(din=>synthesized_wire_3(15downto0),
clk=>clk2_1,
led7=>led_1(6downto0),
sn=>sn_1(2downto0)
);
b2v_inst2:
art
portmap(set=>set_1,
check=>check_1,
close=>close_1,
back=>back_1,
clk=>clk1_1,
dn=>synthesized_wire_4,
sout=>synthesized_wire_3(15downto0),
lock=>lock_1
);
b2v_inst3:
tra
portmap(n=>key_1(9downto0),
sout=>synthesized_wire_4
);
endbdf_type;
2.2.2顶层模块原理文件
顶层模块原理文件如图2.2
图2.2顶层模块原理图
3单元模块程序设计
3.1按键输入模块
按键输入与对应的编码输出之间的关系如表3-1所示
表3-1按键编码
按键输入
编码输出
对应的数字
0000000001
0001
1
0000000010
0010
2
0000000100
0011
3
0000001000
0100
4
0000010000
0101
5
0000100000
0110
6
0001000000
0111
7
0010000000
1000
8
010*******
1001
9
1000000000
0000
0
3.1.1输入模块程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitytrais
port(n:
instd_logic_vector(9downto0);---定义按键输入端口
sout:
outstd_logic_vector(3downto0));----定义编码输出端口
endtra;
architectureatoftrais-----定义结构体
signaltemp:
std_logic_vector(3downto0);
begin
process(n)
begin
casenis----输入键编码
when"0000000001"=>temp<="0001";
when"0000000010"=>temp<="0010";
when"0000000100"=>temp<="0011";
when"0000001000"=>temp<="0100";
when"0000010000"=>temp<="0101";
when"0000100000"=>temp<="0110";
when"0001000000"=>temp<="0111";
when"0010000000"=>temp<="1000";
when"0100000000"=>temp<="1001";
when"1000000000"=>temp<="0000";
whenothers=>temp<="1111";
endcase;
endprocess;
sout<=temp;
endat;
3.1.2输入模块元件
图3.1电子密码锁键盘输入
3.1.3输入模块仿真
图3.2键盘输入仿真
3.2电子密码锁系统控制模块
密码锁的控制电路是整个电路的控制中心。
设置set为密码设置端口,check为密码检验端口,close为关锁端口,back为删除密码端口,clk时钟输入端口,dn[3..0]为3位数字输入端口,sout[15..0]为16位输出端口,lock密码锁状态显示端口。
在此电路中每输一位数,密码在数码管上左移一位。
设置删除密码back,每按下一次back,删除最后输入的数字,左边空处补0。
设置密码确认信号set,当四位密码输入完毕,按下set,设置的密码被存储。
设置密码锁状态信号lock,lock=0表示锁未开,lock=1表示锁开。
设置关锁信号close,按下close,则锁关闭。
设置密码检验信号check,在lock=0下从数据开关书去四位开锁数字,按下check,若数据等于设置的密码或万能密码,则lock=1。
模块程序流程图如图3.3
图3.3控制模块程序流程图
3.2.1控制模块程序
密码锁控制电路的VHDL源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityartis
port(set,check,close,back,clk:
instd_logic;----set密码设置信号,check密码检验信号,close关锁信号back密码删除信号,clk时钟信号
dn:
instd_logic_vector(3downto0);
sout:
outstd_logic_vector(15downto0);---16位输入信号
lock:
outstd_logic);---设置密码锁状态信号
endart;
architectureatofartis-----定义结构体
signalch:
std_logic;
begin
process(clk,dn)----定义进程变量
variablelock_1:
std_logic;
variableacc:
std_logic_vector(15downto0);
variabletemp1,temp2,temp3,temp4:
st
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 电子 密码锁 设计 报告