哈尔滨工业大学计算机科学与技术学院第1页共22页2013数字逻辑-电子密码锁报告计算机科学与技术学院小组成员:2013年5月目录哈尔滨工业大学计算机科学与技术学院第2页共22页设计目的及要求…………………………………………………………3工作原理、系统方框图…………………………………………………4各部分选定方案及电路组成、相关器件说明…………………………9设计结论………………………………………………………..….…..10设计心得与总结……………………………………………...…..……11参考文献……………………………………………………………….14附录一:总体器件表及相关器件的功能表、管脚分布………….…15附录二:总体设计图………………………………………………….18附录三:仿真结果………………………………………………….…19附录四:小组各成员所做工作说明…………………………….....…22一.设计目的及要求哈尔滨工业大学计算机科学与技术学院第3页共22页[设计目的]实验大作业是在学完本门课程后,对所学知识的综合性考察.知识覆盖面宽,实验所需时间长。要求学生灵活运用学过的计数器、触发器、译码电路等方面的知识,独立完成从设计、选片、连线、调试、排除故障到实现一个数字系统的全过程,详细书写实验报告。通过综合设计性实验,培养学生灵活运用所学知识解决比较复杂的实际问题的能力。[设计要求]1.设计一个开锁密码至少为4位数字(或更多)的密码锁。2.当开锁按扭开关(可设置8位或更多,其中只有4位有效,其余位为虚设)的输入代码等于所设密码时启动开锁控制电路,并且用绿灯亮、红灯灭表示开锁状态。3.从第一个按扭触动后的5秒内若未能将锁打开,则电路自动复位并发出报警信号,同时用绿灯灭、红灯亮表示关锁状态。二.工作原理、系统方框图哈尔滨工业大学计算机科学与技术学院第4页共22页1.系统原理简图:2.组成原理:系统主要由四部分组成,分别是:①数据输入触发器、②计时器、③密码修改兼比较器、○4主控元件。①数据输入触发器:组成:8个数据输入端a,b,c,d,e,f,g,h、键入密码控制端inkey和时钟信号clk。触发原理:当inkey为有效值1时,锁存器锁存当前8个输入端的值并且输出,与相应输入端输入值两两比较(使用异或门比较,相同输出0,不同输出1),再将比较结果相或运算输出,输出为1时哈尔滨工业大学计算机科学与技术学院第5页共22页即为需要触发计时,输出时钟,否则输出0值;电路如图:②计时器:输入:由数据输入触发器给出时钟源,control期间给定控制端re。原理:自定义的元器件,对给定的CBA,元件工作时会由CBA-000-CBA循环计数,控制时钟频率从而达到计时效果。同时输出端与七段译码器相连,译码器输出连接到显像管可实现计时显示。显示由两部分组成:输入倒计时(5-0)和可输入次数倒计时(3-0)组成,后者的时钟源由前者输出转换给定。电路如图:(时钟输入、控制端输入、2个循环逆序计数器、2个七段译码器7448和异或门、非门、或门组成)哈尔滨工业大学计算机科学与技术学院第6页共22页计时器VHDL代码:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycountisport(clr:instd_logic;--同步复位re:instd_logic;--同步置数clk:instd_logic;--时钟信号A:instd_logic;B:instd_logic;C:instd_logic;--置数值s2,s1,s0:outstd_logic);endcount;architecturertlofcountissignaltemp:std_logic_vector(2DOWNTO0);begins2=temp(2);s1=temp(1);s0=temp(0);co:process(clk,re,clr)beginif(clr='1'andre='0')thentemp=000;哈尔滨工业大学计算机科学与技术学院第7页共22页elsifre='1'andclr='0'thentemp(2)=C;temp(1)=B;temp(0)=A;elsif(clk'eventandclk='1')theniftemp=000thentemp(2)=C;temp(1)=B;temp(0)=A;elsetemp=temp-1;endif;endif;endprocessco;endrtl;③密码修改兼比较器:输入:由控制端cpa和O2组成;原理:当cpa=1时有效,此时主控元件control控制O2信号为高电平‘1’,开始修改密码;当cpa=0时,主控元件control控制O2信号为低电平‘0’,锁存密码。○4主控部分电路:输入:T0(倒计时结束信号,结束为‘1’,否为‘0’),T1(输入次数计数结束信号,结束为‘1’,否为‘0’),S0(输入触控信号,inkey为‘1’,按钮值发生改变则返回‘1’,否为‘0’),S1(比较器返回结果,若比较密码与输入一致,返回‘1’,否为‘0’),inkey(键入密码),CPA(修改密码)输出:RE(计时器复位信号,真为‘1’,否为‘0’),KEEP(计时维持信号,真为‘1’,否为‘0’),SC(开锁状态,开为‘1’,锁为‘0’),O1(inkey输入有效信号,有效为‘1’,否为‘0’),O2(密码修改锁存信号,修改为‘1’,锁存为‘0’),WA(警告信号,警告为‘1’,否为‘0’),CLOCK(锁死哈尔滨工业大学计算机科学与技术学院第8页共22页状态,锁死为‘1’,未锁死为‘0’),red(红灯),green(绿灯),Bell(警告响铃)功能:依照输入信号值对其他部分电路进行实时控制主控元件代码:libraryieee;useieee.std_logic_1164.all;entitycontrolisport(t0,t1,s0,s1,inkey,cpa:instd_logic;keep,wa,clock,o1,sc,re,o2:outstd_logic);endcontrol;architecturertlofcontrolissignaltemp:std_logic:='0';beginsc=temp;wa='1'whent0='1'else'0';clock='1'whent1='1'else'0';re='1'wheninkey='1'else'0';msc:process(s1,inkey)beginifinkey='0'thentemp='0';elsifinkey='1'ands1='1'thentemp='1';endif;endprocessmsc;mkeep:process(s0,t0)begin哈尔滨工业大学计算机科学与技术学院第9页共22页if(s0='1')thenkeep='1';elsift0='1'thenkeep='0';endif;endprocessmkeep;mo1:process(t0,t1,inkey)beginifinkey='0'theno1='1';elsift0='1'andinkey='1'theno1='0';endif;endprocessmo1;mo2:process(cpa,inkey)beginifcpa='1'andtemp='1'theno2='1';elseo2='0';endif;endprocessmo2;endrtl;三.各部分选定方案及电路组成、相关器件说明数据输入触发器是由数据输入端,1个74LS373芯片,八个异或门,一个与门和一个或门组成。计时器是由时钟输入、控制端输入、2个循环逆序计数器、2个七段译码器74LS48芯片和异或门、非门、或门组成。密码修改兼比较器是由1个74LS373芯片,异或门,与门、非门和或门组成的逻辑电路系统。哈尔滨工业大学计算机科学与技术学院第10页共22页四.设计结论根据基本的数字逻辑和FPGA设计原理能够设计出一定复杂度的电子密码锁。本次课题设计完成的是基于FPGA的密码锁设计,通过一个多星期的不断努力、克服各种困难,最终实现了任务目标。本次设计解决的主要问题是是利用HDL语言完成基于FPGA的电子密码锁的编程问题。设计是理论知识与实践的完美结合,对于现代大学生的实践能力是个很好的培养。短短的一个星期的时间的设计虽然短暂,但是它给我的收获确实难忘,不仅仅在智能仪器方面有了很大的进步,而且在FPGA、max+plusII软件等方面也学到了不少在上课学不到的知识。这段时间我查阅到很多关于课程设计的书籍,对我帮助也很大。我觉得自己以前的盲目,现在明白了很多。也对我们专业动手实践的兴趣提高了很多。有了这些经历对于我日后工作一定会有很大帮助。相信这次设计中学到的种种东西一定会存在我的脑海里,令我终身受益。在课程设计的过程中也可以看到我的不足,如原理知识掌握不实,曾经学过的知识如今却不会应用,软件的应用也不熟练,希望日后提供给我们更多的锻炼机会来培养我们的实践能力。哈尔滨工业大学计算机科学与技术学院第11页共22页五.设计心得与总结xxx:我们学习了数字电子电路和模拟电子电路,对电子技术有了一些初步了解,但那都是一些理论的东西。通过这次数字电子钟的课程设计,我们才把学到的东西与实践相结合。从中对我们学的知识有了更进一步的理解。在此次的密码锁的设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。虽然这次的设计并没能顺利完成,但在实验中不断探索检验,也让我从中受益,设计的过程中对电路中的每一个环节,电路中各个部分的功能的实现和修改不断推进的同时也在离成功不断接近。各个芯片能够完成什么样的功能,使用芯片时应该注意那些要点。同一个电路可以用那些芯片实现,各个芯片实现同一个功能的区别。同时对普通计数器如何构成n进制计数器有了更深的了解和掌握,对自我的实际操作能力也有了很高的提升。同时,我进一步巩固了自己运用max+plusII的能力和技巧。这次使用max+plusII的过程中,从软件的安装到程序的设计、调试都是我自己独立完成,只是最后小组成员进行了一定的内部讨论。电子密码锁虽然简单,但是在线路的连接上还是让我感受到细心很重要。在调试环节,逻辑发生器和示波器等工具都充分发挥了其作用,帮助我进一步完善程序。哈尔滨工业大学计算机科学与技术学院第12页共22页此外,这次的实验还让我感受到做事时耐心的重要作用。自己独立完成一项任务时可能会有各种各样的困难,不骄不躁,不气不馁,以平和的心态应对一切,这才是一个工科学生应该具备的心里素质。这次实验让我从中学到了很多东西,做事的方法。做事的心态。也让我体验到了自主完成一项从未体验过的事物的快感。yy:在这次实验中我认为学习不仅需要智力、能力,更需要求真务实的科学精神。max+plusII的安装、调试、运行、仿真数据的输入等都会影响实验结果,造成实践与理论的脱节。这就要在实验过程中,要实事求是如实地记录实验仿真的波形,同时在产生问题时,我时刻提醒自己要耐心的积极思考、认真分析错误和产生误差的原因。实验中总是出错误,每一次实验都是对自己耐心的一次考验,所以我们要更有恒心的去面对实验。电路总体上的思路是很好设计的,当下达任务的时候我们就大体上有了构架。总体系统分为主控和实现功能的三部分组成。但是涉及到细节的时候我们遇到很多小的困难。像编译软件安装、运行、调试。计时器的设计,仿真波形的建立。分工的时候我简单的按照开始的思路设计了一个计时器,但是开始的几次都是不能使用于电路。只能不断的修改,使其与总体的电路吻合。感觉设计的时候应该全面的考虑一下各部分的功能,给出各部分详细的介绍,电路构架,和输入输出的配置和功能。哈尔滨工业大学计算机科学与技术学院第13