EDA电子密码锁设计报告Word格式文档下载.docx

上传人:b****0 文档编号:13254167 上传时间:2022-10-08 格式:DOCX 页数:17 大小:150.13KB
下载 相关 举报
EDA电子密码锁设计报告Word格式文档下载.docx_第1页
第1页 / 共17页
EDA电子密码锁设计报告Word格式文档下载.docx_第2页
第2页 / 共17页
EDA电子密码锁设计报告Word格式文档下载.docx_第3页
第3页 / 共17页
EDA电子密码锁设计报告Word格式文档下载.docx_第4页
第4页 / 共17页
EDA电子密码锁设计报告Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

EDA电子密码锁设计报告Word格式文档下载.docx

《EDA电子密码锁设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA电子密码锁设计报告Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

EDA电子密码锁设计报告Word格式文档下载.docx

收获与体验-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:

close_1:

back_1:

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:

set:

check:

instd_logic;

close:

back:

dn:

instd_logic_vector(3downto0);

sout:

outstd_logic_vector(15downto0);

lock:

outstd_logic

);

componenttra

port(n:

instd_logic_vector(9downto0);

outstd_logic_vector(3downto0)

);

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=>

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

3.1.1输入模块程序

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"

;

0000000010"

0010"

0000000100"

0011"

0000001000"

0100"

0000010000"

0101"

0000100000"

0110"

0001000000"

0111"

0010000000"

1000"

0100000000"

1001"

1000000000"

0000"

whenothers=>

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源程序

entityartis

port(set,check,close,back,clk:

instd_logic;

----set密码设置信号,check密码检验信号,close关锁信号back密码删除信号,clk时钟信号

dn:

instd_logic_vector(3downto0);

outstd_logic_vector(15downto0);

---16位输入信号

lock:

outstd_logic);

---设置密码锁状态信号

endart;

architectureatofartis-----定义结构体

signalch:

std_logic;

process(clk,dn)----定义进程变量

variablelock_1:

variableacc:

std_logic_vector(15downto0);

variabletemp1,temp2,temp3,temp4:

st

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

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1