简易14位数字密码锁控制电路设计实验报告Word格式.docx
- 文档编号:18011185
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:10
- 大小:337.21KB
简易14位数字密码锁控制电路设计实验报告Word格式.docx
《简易14位数字密码锁控制电路设计实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《简易14位数字密码锁控制电路设计实验报告Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
对设计中遇到的问题,能独立思考、查阅资料,寻找答案。
二、课设任务
1、14位数字密码分成高7位(DH6…DH0)和低7位(DL6…DL0),用数字逻辑开关预置,输出信号out为1表示开锁,否则关闭。
2、14位数字密码分时操作,先预置高7位,然后再置入低7位。
3、要求电路工作可靠,性强,开锁出错立即报警。
4、利用MAXplus2软件进行设计、编译,并在FPGA芯片上实现。
5、简易14位数字密码锁模块的框图如下:
三、方案设计、原理分析
首先我是一班的三号,所以我的密码时01000100000011。
我所做的设计是先把高七位输入锁存,然后在输入低七位,最后判断密码是否正确,密码正确就开锁,密码错误就报警。
数字密码锁控制电路的组成部分:
YMQ模块,
1、IC9A的设计
设计要求14位数字密码分时操作,先预置高七位0100010,而后置低七位0000011,首先可以使用寄存器将高七位存起来,而后与低七位一起进行译码,如果密码正确,输出OUT2为1,否则为0.
2、数字密码锁控制电路原理图:
输入密码正确时波形图
输入错误密码时波形图
数字密码锁控制电路的VHDL语言编程原理分析:
当CLR为0时,寄存器与D触发器被清零,此时在A……G输入高七位密码0100010,用CLK给一个脉冲,由于此时输出端Q为0,经过一个非门为1,与CLK一起经过一个与门,送入寄存器CLK端,产生上升沿;
而经过非门的CLR为1,送入寄存器中,将高七位通过寄存器送入译码器的高七位中。
然后在A……G输入低七位密码0000011,则输出端Y为1。
当译码器输出Y为1的时候,输出端OUT2即为1,输出发光管全亮,标志密码输入正确,后面的两个D触发器的输入为1,当用CLK2送入脉冲时,两个D触发器的Q端输出都为1,其中一个输出Q经过三态门,三态门开启,则OUT2B为1,开锁。
另一个输出1经过非门变为0,声报警不能进行,0与分频后的脉冲信号相与送入光报警,光报警不能进行工作。
当译码器输出Y为0的时候,输出端OUT2B为0,输出发光管不亮,标志密码输入错误,此时后面的两个D触发器的输入为0,当用CLK2送入脉冲时,两个D触发器的Q端输出都为0,其中一个输出Q经过三态门,三态门不能开启,则OUT1为0,不能开锁;
另一个输出Q经过非门变为1,声报警接蜂鸣器,蜂鸣器发声,1与分频后的脉冲信号相与送入光报警,光报警的发光二极管产生闪烁报警。
由于人眼有反应时间,所以频率要经过分频成很小的频率,才能使人眼可以分辨。
若频率比较高,则人眼只能看到灯一直在亮,不能显示灯光在闪。
所以我们要把频率分成小频率,由于试验箱上最小是4hz的,而我的程序是八分频,即分为了0.5hz,2s闪一下,达到灯光闪烁的效果。
四、译码电路设计
译码电路VHDL语言设计
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYYMQIS
PORT(D:
INSTD_LOGIC_VECTOR(6DOWNTO0);
CLK:
INSTD_LOGIC;
CLR:
OUT1:
OUTSTD_LOGIC);
ENDYMQ;
ARCHITECTUREARTOFYMQIS
SIGNALS:
STD_LOGIC_VECTOR(13DOWNTO0);
BEGIN
S(6DOWNTO0)<
=D;
PROCESS(CLK)
BEGIN
IF(CLK’EVENTANDCLK=’1’)THEN
IF(CLR=’1’)THEN
S(13DOWNTO7)<
ENDIF;
ENDPROCESS;
OUT1<
=’1’WHEN(S(13DOWNTO0)=”010*********”)ELSE’0’;
ENDART;
波形图为:
首先设定CLR为1,
五、报警信号产生器
声光控控制电路的分析:
当密码输入错误时,Y的输出为0,无论CLK2是否为1,GBJ由于分频器输出端的脉冲控制,GBJ开始闪烁;
SBJ为1处于高电平,控制蜂鸣器发声。
分频器的VHDL语言设计
ENTITYDIVIS
PORT(RESET,CLK_INPUT:
CLK_8:
OUTSTD_LOGIC);
ENDDIV;
ARCHITECTUREARTOFDIVIS
SIGNALCOUNT:
STD_LOGIC_VECTOR(2DOWNTO0);
PROCESS(RESET,CLK_INPUT)
IF(RESET='
0'
)THEN
COUNT<
="
000"
;
ELSIF(CLK_INPUT'
EVENTANDCLK_INPUT=’1’'
=COUNT+1;
ELSENULL;
原理分析:
本次设计选择八分频设计,设计原理为:
NRESET为清零端,CLK为脉冲信号,当NRESET清零端为0时,输出QA……QH都为0不产生信号;
当NRESET清零端为1时,无清零信号,QA……QH分别产生1……8分频信号,在实际电路下载过程中,可根据实际情况接入不同级的分频信号。
六、调试及结果
1、进行管脚锁定
选择菜单MAXplus2/FlooplanEditor,打开编辑窗口,并且显示出当前项目的选定的器件,可以通过选择菜单Lagout/Device来选择器件试图,也可以通过选择菜单Lagout/LABview来选择LAB试图,还可以通过双击试图区的方法在这两种显示方式间切换。
再次选择MAXplus2/compiler,单击start按钮,此时系统产生可以下载配置器件的文件。
2、将设计下载到实验箱
在连接有实验箱的计算机上调出仿真原理图,在“MAXplus2”菜单下选择“Programmer”,单击按钮“configure”完成配置,在“HardwareFype”下拉框中选择“ByteBlaster”单击“OK”即可,在实验板上进行操作。
电路的管脚锁定情况如下:
引脚
标志位置
管脚
CLKO
CP2
2
D5
LK5
36
CLK1
LK12
50
D6
LK6
37
CLK2
LK11
49
D7
LK7
38
CLR
LK10
48
D1
LK1
28
GBJ
L12
21
D2
LK2
29
SBJ
SP
27
D3
LK3
30
OUT1
L14
23
D4
LK4
35
OUT2
L13
22
七、体会
这是一次综合性很强的实验,从最初的设想,到具体功能的实现,再到电路的连接,直至最后的电路调试,每一个环节都让我加深了对实际问题的思考,同时也让我动手能力有了很大的提高。
是我受益匪浅,明白了设计一个功能电路的具体要求和步骤,同时也对EDA知识有了更深刻的理解和认识,并将其运用到了实际生活中,使其为实际生活服务。
这次最大的收获就是学会了很系统地去解决一个实际问题,学会了巧妙运用模块化的思想。
在整个电路设计与实现中,最成功的地方就是有条理地将功能细化,分成一个一个小的功能来实现。
每做好一个小功能实现的电路,就将其集成为一块具有此功能的芯片,这样,在之后的电路连接中就只要将这块芯片接入即可,最后就这样一级一级地将电路集成,最后生成的密码锁控制电路。
在这个过程中,我更深刻地体会从分立元件到中下规模集成电路再到大规模集成电路的组成过程。
同时也更加深入地了解了MAXplus2这一软件的更多的功能。
更重要的是在此过程中,我学会了独立思考,遇到问题一步一步去研究与解决解决,对于电路出现的问题不急于拆线,而是一部分一部分地对其应有的功能进行调试,对问题进行各个击破。
总而言之,这次实验让我觉得受益匪浅,不再觉得学无所用。
实验所解决的问题与生活紧密相连,从而将平时学书本上的理论与实践很好地结合起来,最终当做出成品时,有很大的成就感。
遇到的问题及解决方案
1、编译通过后,下载到硬件上之后,发现程序并没有预期的效果。
如显示乱序而没有规律等等,当加入适当的选通信号或者脉冲后发现问题得到了解决。
所以必须在实践中不断地修改以得到正确的结论。
2、高电平有效还是低电平有效,这是一个非常容易忽视的问题,有时就知道这个端口要控制信号但不考虑好什么电平有效,造成错误,使得使能端或者清零端的出现错误控制信号。
并且到底是脉冲控制,还是边沿控制一定要清楚。
在实验时候可以避免一些不必要的麻烦。
3、引脚重复使用也是一个问题,有时候输出信号必须输出到一个特定的引脚。
而输出来自两路信号,这时候必须加入一个选择器件选择输出信号输出。
在实际调试的时候我们必须耐心思考,遇到问题针对问题出现的原因认真思考以解决问题。
从这次设计中我收到了不少的收获,设计前有很多不懂的地方,但在设计过程过同学和老师的帮助我都一一解开了疑团,这就是我最大的收获。
感老师的指导和帮助!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 14 数字 密码锁 控制电路 设计 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)