EDA电子密码锁毕业设计论文Word格式文档下载.docx
- 文档编号:18121121
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:19
- 大小:385.51KB
EDA电子密码锁毕业设计论文Word格式文档下载.docx
《EDA电子密码锁毕业设计论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA电子密码锁毕业设计论文Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
控制模块
显示模块
图3.1电子密码锁系统总体框图
第4章功能模块
4.1输入模块
1)功能介绍
输入时有三个拨码键控制输入,每个拨码各控制一位密码,对于其中一个拨码键每拨一次码按一次按键,表示输入一位,当输入四位时输出一位数,用“888”作为初始密码。
2)输入模块与仿真图形
单脉冲控制如图5.1如下图
图5.1
上图为单脉冲控制输入,当M给一上升沿信号将在PUL输出一位与之对应的高或低电平。
四位串行输入并行输出寄存器如下图5.2
图5.2
上图为4为串行输入并行输出寄存器,它由4个D触发组成,当reset为高电平时,每给一脉冲输入数据将向右移一位二值代码,它能同时复位
3)程序的输入
在文本区输入程序,程序如下:
单脉冲信号控制
puls.vhd
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYpulsIS
PORT(PUL,M:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC);
ENDpuls;
ARCHITECTUREBEHAVEOFpulsIS
SIGNALTEMP:
STD_LOGIC;
BEGIN
PROCESS(M)
IFM'
EVENTANDM='
1'
THEN
IFPUL='
THEN
TEMP<
='
;
ELSETEMP<
0'
ENDIF;
ENDPROCESS;
Q<
=TEMP;
ENDBEHAVE;
4位串行输入并行输出寄存器
shifter.vhd
ENTITYshifterIS
PORT
(din:
reset,CLK:
INSTD_LOGIC;
qout:
bufferSTD_LOGIC_VECTOR(0TO3)
);
ENDshifter;
ARCHITECTUREactOFshifterIS
BEGIN
PROCESS(CLK)
VARIABLEq:
STD_LOGIC_VECTOR(0TO3);
IFreset='
q:
=(others=>
'
);
ELSE
ifclk'
eventandclk='
then
q(3):
=q
(2);
q
(2):
=q
(1);
q
(1):
=q(0);
q(0):
=din;
ENDIF;
qout<
=q;
ENDPROCESS;
ENDarchitectureact;
4.2控制模块
1)功能介绍
2)控制模块与仿真图形
输入译码器图5.3,如下图
图5.3
上图为译码器将4位二值代码转化成BCD码从“0000”~“1001”表示
0~9。
表5-1输入译码的真值表
输入输出
DCBAY1Y2Y3Y4字形
000000000
000100011
001000102
001100113
010001004
010101015
011001106
011101117
100010008
100110019
表5-1
总功能控制模块图5.4,如下图
图5.4
当CHANGE为高电平且rt为低电平时开始输入密码这时lockopen为高电平,而lockclose为低电平,当rt为高电平,change为低电平时开始检测密码,如上图开始密码为“108”当再次出现“108”时lockopen为高电平,而lockclose为低电平,当密码错误时lockopen为低电平,而lockclose为高电平。
4选1选择器与扫描器图5.5,如下图
图5.5
如上图多路选择器可以从多组数据来源中选取一组送入目的地,在本设计中利用多路选择器做扫描电路来分别驱动输出装置,可以将低成本消耗,如上图当输入“819”时,在时钟地控制下qout将输出“819”,而与之对应的sel扫描对应的数码管。
输入译码器
KEY.vhd
ENTITYKEYIS
PORT(clk:
data:
INSTD_LOGIC_VECTOR(3DOWNTO0);
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
q1:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDENTITYKEY;
ARCHITECTUREARTOFKEYIS
PROCESS(clk,data)IS
IFclk'
EVENTANDclk='
CASEdataIS
WHEN"
0000"
=>
q<
="
q1<
0001"
0010"
0011"
0100"
0101"
0110"
0111"
1000"
1001"
WHENOTHERS=>
ENDCASE;
ENDARCHITECTUREART;
总功能控制模块
Eleclock.vhd
ENTITYEleclockIS
PORT(NB:
NS:
NG:
CLK:
CHANGE,RT:
DB:
DS:
DG:
LOCKOPEN,LOCKCLOSE:
ENDENTITYEleclock;
ARCHITECTUREARTOFEleclockIS
COMPONENTKeyIS
PORT(CLK:
DATA:
Q:
Q1:
OUTSTD_LOGIC_VECTOR(3DOWNTO0)
ENDCOMPONENTKey;
SIGNALENABLE,C0,C1,S,ENABLE1:
SIGNALTB,TS,TG,D_B,D_S,D_G:
STD_LOGIC_VECTOR(3DOWNTO0);
ENABLE<
=CHANGEAND(NOTRT);
ENABLE1<
=RTAND(NOTCHANGE);
U0:
KEYPORTMAP(CLK=>
CLK,DATA=>
NB,Q=>
DB,Q1=>
D_B);
U1:
NS,Q=>
DS,Q1=>
D_S);
U2:
NG,Q=>
DG,Q1=>
D_G);
PROCESS(CLK,D_B,D_S,D_G)IS
IFCLK'
EVENTANDCLK='
IFENABLE='
TB<
=D_B;
TS<
=D_S;
TG<
=D_G;
IFENABLE1='
IF(TB<
=D_BANDTS<
=D_SANDTG<
=D_G)THEN
LOCKOPEN<
LOCKCLOSE<
ELSE
4选1选择器与扫描器
sel.vhd
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYselIS
PORT(QIN1,QIN2,QIN3:
CLK,RST:
QOUT:
sel:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDsel;
ARCHITECTUREARTOFselIS
PROCESS(CLK,RST)
VARIABLECNT:
INTEGERRANGE0TO2;
IF(RST='
)THEN
CNT:
=0;
sel<
00000000"
QOUT<
ELSIFCLK'
IFCNT=2THEN
=CNT+1;
CASECNTIS
WHEN0=>
=QIN1;
11111110"
WHEN1=>
=QIN2;
sel<
11111101"
WHEN2=>
=QIN3;
11111011"
11111111"
4.3显示模块
将密码用BCD七段数码管显示
2)显示模块与仿真波形图5.6,如下图
图5.6
上图将BCD码转化到七段译码电路上
表5-2BCD-七段数码管的真值表
DCBAY1Y2Y3Y4Y5Y6Y7字形
000011111100
000101100001
001011011012
001101110013
010001100114
010110110115
011010111116
011111100007
100011111118
100111100119
表5-2
Seg7.vhd
ENTITYSeg7IS
PORT(num:
led:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDSeg7;
ARCHITECTUREACTOFSeg7IS
LED<
1111110"
WHENnum="
"
0110000"
WHENnum="
"
1101101"
1111001"
0110011"
1011011"
1011111"
1110000"
1111111"
1111011"
1110111"
1010"
0011111"
1011"
1001110"
1100"
0111101"
1101"
1001111"
1110"
1000111"
1111"
ENDACT;
第5章总体设计电路图
将各个模块连接在一起实现。
2)顶层文件如下:
3)波形仿真如下:
图6﹒1
当change为高电平,rt为低电平时,输入“952”验证,当再次输入“952”时锁打开,设计正确。
第6章设计心得体会
通过这次设计,使我对EDA产生了浓厚的兴趣。
特别是当每一个子模块编写调试成功时,心里特别的开心。
在编写蜂鸣器模块时,我遇到了很大的困难,一直被定时问题所困扰,解决了这个问题时,我特别的高兴。
写控制文件的程序时,也遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了。
再对控制模块仿真时,虽然语确,但连最基本的输入输出都进不去,我们弄了很多遍都不行,后来在老师的指导下我们才解决了这个问题。
另一个问题就是三个时钟信号的配合,其中显示模块和控制模块的信号频率要高。
其次,在进行引脚连接时一定要细心,有些引脚不能使用,我因为没注意使得开始时一直不能得到正确的结果。
这次EDA课程设计历时两个星期,在整整两个星期的日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到的问题,反映出来我的许多不足之处,我以后要努力克服缺点。
总的来说,这次设计的密码锁还是比较成功的,在设计中遇到了很多问题,最后在同学和老师的辛勤的指导下外加上自己的努力,终于都得到了解决,因此很有成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的。
参考文献
[1]阎石主编.《数字电子技术基础》(第五版).高等教等育.,2007
[2]国丽朱维勇何剑春.《EDA与数字系统设计》(第2版).机械工业.,2002
[3]宋武烈,等.《EDA技术实用教程》.科学技术,2006
[4]谭会生,等.《EDA技术综合应用实例与分析》.电子科技,2003
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 电子 密码锁 毕业设计 论文