简易位数字密码锁控制电路设计实验报告Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-目录一、前言 (2)二、课设任务 (2)三、方案设计、原理分析 (2)四、译码电路设计 (8)五、报警信号产生器 (10)六、调试及结果..........................................(12)七、体会 (13)一、前言本次课程设计的基本任务是着重提高学生在EDA知识学习与应用方面的实践技能。
学生通过电路设计安装、调试、整理资料等环节,初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。
EDA技术是电子信息类专业的一门新兴学科,是现代电子产品设计的核心,其任务是掌握在系统可编程逻辑器件及其应用设计技术,为电子产品开发研制打下坚实基础。
本课程设计对学生有如下要求:根据设计任务和指标,初步电路;通过调查研究,设计计算,确定电路方案;选择元器件,在计算机上连好线路,独立进行试验,并通过调试、仿真、改进方案;分析实验结果,写出设计总结报告:学会自己分析,找出解决问题方法;对设计中遇到的问题,能独立思考、查阅资料,寻找答案。
二、课设任务1、14位数字密码分成高7位(DH6…DH0)和低7位(DL6…DL0),用数字逻辑开关预置,输出信号out为1表示开锁,否则关闭。
2、14位数字密码分时操作,先预置高7位,然后再置入低7位。
3、要求电路工作可靠,保密性强,开锁出错立即报警。
4、利用MAX plus2 软件进行设计、编译,并在FPGA芯片上实现。
5、简易14位数字密码锁模块的框图如下:三、方案设计、原理分析首先我是一班的三号,所以我的密码时0100010 0000011。
我所做的设计是先把高七位输入锁存,然后在输入低七位,最后判断密码是否正确,密码正确就开锁,密码错误就报警。
数字密码锁控制电路的组成部分: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的,而我的程序是八分频,即分为了,2s闪一下,达到灯光闪烁的效果。
四、译码电路设计译码电路VHDL语言设计LIBRARY IEEE;USE YMQ ISPORT (D: IN STD_LOGIC_VECTOR(6 DOWNTO 0);CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;OUT1: OUT STD_LOGIC);END YMQ;ARCHITECTURE ART OF YMQ ISSIGNAL S:STD_LOGIC_VECTOR(13 DOWNTO 0);BEGINS(6 DOWNTO 0)<=D;PROCESS(CLK)BEGINIF(CLK’EVENT AND CLK=’1’)THENIF(CLR=’1’)THENS(13 DOWNTO 7)<=D;END IF;END IF;END PROCESS;OUT1<=’1’ WHEN(S(13 DOWNTO 0)=”0”)ELSE’0’;END ART;波形图为:首先设定CLR为1,五、报警信号产生器声光控控制电路的分析:当密码输入错误时,Y的输出为0,无论CLK2是否为1,GBJ由于分频器输出端的脉冲控制,GBJ开始闪烁;SBJ为1处于高电平,控制蜂鸣器发声。
分频器的VHDL语言设计LIBRARY IEEE;USE DIV ISPORT(RESET,CLK_INPUT:IN STD_LOGIC;CLK_8:OUT STD_LOGIC);END DIV;ARCHITECTURE ART OF DIV ISSIGNAL COUNT: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINPROCESS(RESET,CLK_INPUT)BEGINIF(RESET='0')THENCOUNT<="000";ELSIF(CLK_INPUT'EVENT AND CLK_INPUT=’1’')THENCOUNT<=COUNT+1;ELSE NULL;END IF;波形图为:原理分析:本次设计选择八分频设计,设计原理为:NRESET为清零端,CLK为脉冲信号,当NRESET清零端为0时,输出QA……QH 都为0不产生信号;当NRESET清零端为1时,无清零信号,QA……QH分别产生1……8分频信号,在实际电路下载过程中,可根据实际情况接入不同级的分频信号。
六、调试及结果1、进行管脚锁定选择菜单MAX plus2 / Flooplan Editor,打开编辑窗口,并且显示出当前项目的选定的器件,可以通过选择菜单Lagout/Device 来选择器件试图,也可以通过选择菜单Lagout/LAB view 来选择LAB试图,还可以通过双击试图区的方法在这两种显示方式间切换。
再次选择 MAX plus2 / compiler ,单击start按钮,此时系统产生可以下载配置器件的文件。
2、将设计下载到实验箱在连接有实验箱的计算机上调出仿真原理图,在“MAX plus2”菜单下选择“Programmer”,单击按钮“configure”完成配置,在“Hardware Fype”下拉框中选择“Byte Blaster”单击“OK”即可,在实验板上进行操作。
七、体会这是一次综合性很强的实验,从最初的设想,到具体功能的实现,再到电路的连接,直至最后的电路调试,每一个环节都让我加深了对实际问题的思考,同时也让我动手能力有了很大的提高。
是我受益匪浅,明白了设计一个功能电路的具体要求和步骤,同时也对EDA知识有了更深刻的理解和认识,并将其运用到了实际生活中,使其为实际生活服务。
这次最大的收获就是学会了很系统地去解决一个实际问题,学会了巧妙运用模块化的思想。
在整个电路设计与实现中,最成功的地方就是有条理地将功能细化,分成一个一个小的功能来实现。
每做好一个小功能实现的电路,就将其集成为一块具有此功能的芯片,这样,在之后的电路连接中就只要将这块芯片接入即可,最后就这样一级一级地将电路集成,最后生成的密码锁控制电路。
在这个过程中,我更深刻地体会从分立元件到中下规模集成电路再到大规模集成电路的组成过程。
同时也更加深入地了解了MAX plus2这一软件的更多的功能。
更重要的是在此过程中,我学会了独立思考,遇到问题一步一步去研究与解决解决,对于电路出现的问题不急于拆线,而是一部分一部分地对其应有的功能进行调试,对问题进行各个击破。
总而言之,这次实验让我觉得受益匪浅,不再觉得学无所用。
实验所解决的问题与生活紧密相连,从而将平时学书本上的理论与实践很好地结合起来,最终当做出成品时,有很大的成就感。
遇到的问题及解决方案1、编译通过后,下载到硬件上之后,发现程序并没有预期的效果。
如显示乱序而没有规律等等,当加入适当的选通信号或者脉冲后发现问题得到了解决。
所以必须在实践中不断地修改以得到正确的结论。
2、高电平有效还是低电平有效,这是一个非常容易忽视的问题,有时就知道这个端口要控制信号但不考虑好什么电平有效,造成错误,使得使能端或者清零端的出现错误控制信号。
并且到底是脉冲控制,还是边沿控制一定要清楚。
在实验时候可以避免一些不必要的麻烦。
3、引脚重复使用也是一个问题,有时候输出信号必须输出到一个特定的引脚。
而输出来自两路信号,这时候必须加入一个选择器件选择输出信号输出。
在实际调试的时候我们必须耐心思考,遇到问题针对问题出现的原因认真思考以解决问题。
从这次设计中我收到了不少的收获,设计前有很多不懂的地方,但在设计过程中通过同学和老师的帮助我都一一解开了疑团,这就是我最大的收获。
感谢老师的指导和帮助!。