EDA课程设计 3位电子密码锁.docx

上传人:b****0 文档编号:12505170 上传时间:2023-04-19 格式:DOCX 页数:18 大小:175.71KB
下载 相关 举报
EDA课程设计 3位电子密码锁.docx_第1页
第1页 / 共18页
EDA课程设计 3位电子密码锁.docx_第2页
第2页 / 共18页
EDA课程设计 3位电子密码锁.docx_第3页
第3页 / 共18页
EDA课程设计 3位电子密码锁.docx_第4页
第4页 / 共18页
EDA课程设计 3位电子密码锁.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

EDA课程设计 3位电子密码锁.docx

《EDA课程设计 3位电子密码锁.docx》由会员分享,可在线阅读,更多相关《EDA课程设计 3位电子密码锁.docx(18页珍藏版)》请在冰豆网上搜索。

EDA课程设计 3位电子密码锁.docx

EDA课程设计3位电子密码锁

EDA课程设计报告

电子密码锁设计

 

学校:

海南大学

院(系):

信息学院

专业:

通信一班

学生姓名:

学号:

组员:

指导教师:

 

——2013年6月13日

目录

目录2

一.概述3

二.设计要求3

三.总体框图3

四.功能模块4

4.1输入模块4

4.2控制模块7

4.5显示模块12

五.总体设计电路图14

六.设计心得体会15

一.概述

电子密码锁在生活中十分常见,在这我将设计一个具有较低成本的电子密码锁,本文讲述了我整个设计过程及收获。

讲述了电子密码锁的的工作原理以及各个模块的功能,并讲述了所有部分的设计思路,对各部分电路方案的选择、元器件的筛选、以及对它们的调试、对波形图的分析,到最后的总体图的分析。

二.设计要求

本设计名称为电子密码锁,用四个模块,分别为输入模块、控制模块、扫描器模块、显示模块,来控制密码的输入、验证与显示。

设计所要实现的功能为:

1数码输入:

手动输入3组四位二进制密码。

2数码验证:

开锁时输入密码后,拨动RT键使其为高电平,而CHANGE为低电平检测,密码正确时开锁,输出LOCK灯亮,表示开锁成功。

3错误显示:

当密码输入错误时,LOCK灯亮,LOCK灭,表示开锁失败。

4更改密码:

当改变密码时,按下CHANGE键使其为高电平,而RT为低电平时,可改变密码。

5密码清除:

按下RST可清除前面的输入值,清除为“000”。

 

三.总体框图

1)设计方案:

电子密码锁,主要由三部分组成:

密码输入电路、密码锁控制电路和密码锁显示电路。

作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。

拨码与按键和触摸式4*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码与按键来作为该设计的输入设备。

数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。

液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED数码管。

根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。

整个密码锁系统的总体总体框图如下图

电子密码锁系统总体框图

 

四.功能模块

4.1输入模块

1)功能介绍

输入3组四位二进制密码,代表3为密码,每一组的取值从0000到1001

2)输入模块与仿真图形

3)程序输入

程序如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYSRIS

PORT(PUL1,PUL2,PUL3:

INSTD_LOGIC_VECTOR(3DOWNTO0);

Q1,Q2,Q3:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDSR;

ARCHITECTUREBEHAVEOFSRIS

SIGNALTEMP:

STD_LOGIC;

BEGIN

PROCESS(PUL1,PUL2,PUL3)

BEGIN

--IFM'EVENTANDM='1'THEN

--IFPUL='1'THEN

CASEPUL1IS

WHEN"0000"=>Q1<="0000";

WHEN"0001"=>Q1<="0001";

WHEN"0010"=>Q1<="0010";

WHEN"0011"=>Q1<="0011";

WHEN"0100"=>Q1<="0100";

WHEN"0101"=>Q1<="0101";

WHEN"0110"=>Q1<="0110";

WHEN"0111"=>Q1<="0111";

WHEN"1000"=>Q1<="1000";

WHEN"1001"=>Q1<="1001";

WHENOTHERS=>Q1<="0000";

ENDCASE;

CASEPUL2IS

WHEN"0000"=>Q2<="0000";

WHEN"0001"=>Q2<="0001";

WHEN"0010"=>Q2<="0010";

WHEN"0011"=>Q2<="0011";

WHEN"0100"=>Q2<="0100";

WHEN"0101"=>Q2<="0101";

WHEN"0110"=>Q2<="0110";

WHEN"0111"=>Q2<="0111";

WHEN"1000"=>Q2<="1000";

WHEN"1001"=>Q2<="1001";

WHENOTHERS=>Q2<="0000";

ENDCASE;

CASEPUL3IS

WHEN"0000"=>Q3<="0000";

WHEN"0001"=>Q3<="0001";

WHEN"0010"=>Q3<="0010";

WHEN"0011"=>Q3<="0011";

WHEN"0100"=>Q3<="0100";

WHEN"0101"=>Q3<="0101";

WHEN"0110"=>Q3<="0110";

WHEN"0111"=>Q3<="0111";

WHEN"1000"=>Q3<="1000";

WHEN"1001"=>Q3<="1001";

WHENOTHERS=>Q3<="0000";

ENDCASE;

--TEMP<='1';

--ELSETEMP<='0';

--ENDIF;

--ENDIF;

ENDPROCESS;

--Q<=TEMP;

ENDBEHAVE;

 

4.2控制模块

1)功能介绍

开锁时输入密码后,拨动RT键使其为高电平,而CHANGE为低电平检测,密码正确时开锁,输出LOCK灯亮,表示开锁成功。

当密码输入错误时,LOCK灯灭,表示开锁失败。

当改变密码时,按下CHANGE键使其为高电平,而RT为低电平时,可改变密码。

按下RST可清除前面的输入值,清除为“000”。

2)控制模块与仿真图形

 

当CHANGE为高电平且rt为低电平时开始输入密码这时lock为高电平,当rt为高电平,change为低电平时开始检测密码,如上图开始密码为“311”当再次出现“311”时lock为高电平,当密码错误时lock为低电平。

3)其程序如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYCONTROLIS

PORT(NB:

INSTD_LOGIC_VECTOR(3DOWNTO0);

NS:

INSTD_LOGIC_VECTOR(3DOWNTO0);

NG:

INSTD_LOGIC_VECTOR(3DOWNTO0);

CLK:

INSTD_LOGIC;

CHANGE,RT:

INSTD_LOGIC;

SB:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

SS:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

SG:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

LOCKOPEN,LOCKCLOSE:

OUTSTD_LOGIC);

ENDENTITYCONTROL;

ARCHITECTUREARTOFCONTROLIS

SIGNALENABLE,ENABLE1:

STD_LOGIC;

SIGNALDA,DB,DC:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

ENABLE<=CHANGEAND(NOTRT);

ENABLE1<=RTAND(NOTCHANGE);

PROCESS(CLK,NB,NS,NG)IS

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFENABLE='1'THEN

DA<=NB;

DB<=NS;

DC<=NG;

LOCKOPEN<='0';

LOCKCLOSE<='1';

elsifENABLE1='1'THEN

IF(DA=NBANDDB=NSANDDC=NG)THEN

LOCKOPEN<='1';

LOCKCLOSE<='0';

ELSE

LOCKOPEN<='0';

LOCKCLOSE<='1';

ENDIF;

ENDIF;

ENDIF;

--ENDIF;

SS<=NS;

SG<=NG;

SB<=NB;

ENDPROCESS;

ENDARCHITECTUREART;

 

4.3扫描器部:

其功能是从控制部分的3个输出中选择出一组四位二进制送往译码器,同时把扫描信号SEL送往二四译码器

1)控制模块与仿真图形:

2)其程序如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYselIS

PORT(QIN1,QIN2,QIN3:

INSTD_LOGIC_VECTOR(3DOWNTO0);

CLK,RST:

INSTD_LOGIC;

QOUT:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

sel:

OUTSTD_LOGIC_VECTOR(1DOWNTO0));

ENDsel;

ARCHITECTUREARTOFselIS

BEGIN

PROCESS(CLK,RST)

VARIABLECNT:

INTEGERRANGE0TO2;

BEGIN

IF(RST='0')THEN

CNT:

=0;

sel<="00";

QOUT<="0000";

ELSIFCLK'EVENTANDCLK='1'THEN

IFCNT=2THEN

CNT:

=0;

ELSE

CNT:

=CNT+1;

ENDIF;

CASECNTIS

WHEN0=>QOUT<=QIN1;

sel<="00";

WHEN1=>QOUT<=QIN2;

sel<="01";

WHEN2=>QOUT<=QIN3;

sel<="10";

WHENOTHERS=>QOUT<="1111";

sel<="11";

ENDCASE;

ENDIF;

ENDPROCESS;

ENDARCHITECTUREART;

4.4二四译码器:

1)控制模块与仿真图形:

2)其程序如下:

--DECODER24A.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYDECODER24AIS

PORT(A:

INSTD_LOGIC_VECTOR(1DOWNTO0);

B:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDENTITYDECODER24A;

ARCHITECTUREARTOFDECODER24AIS

BEGIN

PROCESS(A)IS

BEGIN

CASEAIS

WHEN"00"=>B<="0001";

WHEN"01"=>B<="0010";

WHEN"10"=>B<="0100";

WHENOTHERS=>B<="1111";

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREART;

 

4.5显示模块

1)功能介绍

将密码用BCD七段数码管显示

2)显示模块与仿真波形图如下图:

 

上图将BCD码转化到七段译码电路上

BCD-七段数码管的真值表

输入输出

DCBAY1Y2Y3Y4Y5Y6Y7字形

000011111100

000101100001

001011011012

001101110013

010001100114

010110110115

011010111116

011111100007

100011111118

100111100119

表5-2

3)程序如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSEG7IS

PORT(num:

INSTD_LOGIC_VECTOR(3DOWNTO0);

LED:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDSEG7;

ARCHITECTUREACTOFSEG7IS

BEGIN

LED<="1111110"WHENnum="0000"ELSE

"0110000"WHENnum="0001"ELSE

"1101101"WHENnum="0010"ELSE

"1111001"WHENnum="0011"ELSE

"0110011"WHENnum="0100"ELSE

"1011011"WHENnum="0101"ELSE

"1011111"WHENnum="0110"ELSE

"1110000"WHENnum="0111"ELSE

"1111111"WHENnum="1000"ELSE

"1111011"WHENnum="1001"ELSE

"1110111"WHENnum="1010"ELSE

"0011111"WHENnum="1011"ELSE

"1001110"WHENnum="1100"ELSE

"0111101"WHENnum="1101"ELSE

"1001111"WHENnum="1110"ELSE

"1000111"WHENnum="1111";

ENDARCHITECTUREACT;

 

五.总体设计电路图

1)功能介绍

将各个模块连接在一起实现。

波形仿真如下:

当change为高电平,rt为低电平时,输入“142”验证,当再次输入“142”时锁打开,设计正确。

六.设计心得体会

通过这次设计,使我对EDA产生了浓厚的兴趣。

特别是当每一个子模块编写调试成功时,心里特别的开心。

在编写扫描模块时,我遇到了很大的困难,一直被定时问题所困扰,解决了这个问题时,我特别的高兴。

写控制文件的程序时,也遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了。

再对控制模块仿真时,虽然语法正确,但连最基本的输入输出都进不去,我们弄了很多遍都不行,后来在老师的指导下我们才解决了这个问题。

其次,在进行引脚连接时一定要细心,有些引脚不能使用,我因为没注意使得开始时一直不能得到正确的结果。

这次EDA课程设计历时两个星期,在整整两个星期的日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到的问题,反映出来我的许多不足之处,我以后要努力克服缺点。

总的来说,这次设计的密码锁还是比较成功的,在设计中遇到了很多问题,最后在队友和老师的辛勤的指导下外加上自己的努力,终于都得到了解决,因此很有成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的。

 

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

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

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

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