1、2.当开锁按扭开关(可设置8位或更多,其中只有4位有效, 其余位为虚设)的输入代码等于所设密码时启动开锁控制电 路,并且用绿灯亮、红灯灭表示开锁状态。3.从第一个按扭触动后的5秒内若未能将锁打开,则电路自动复位并发出报警信号,同时用绿灯灭、红灯亮表示关锁状态。二. 工作原理、系统方框图1.系统原理简图:2.组成原理:系统主要由四部分组成,分别是:数据输入触发器、计时器、密码修改兼比较器、主控元件。1 数据输入触发器:组成:8个数据输入端a,b,c,d,e,f,g,h、键入密码控制端inkey和时钟信号clk。触发原理:当inkey为有效值1时,锁存器锁存当前8个输入端的值并且输出,与相应输入端
2、输入值两两比较(使用异或门比较,相同输出0,不同输出1),再将比较结果相或运算输出,输出为1时即为需要触发计时,输出时钟,否则输出0值;电路如图:2 计时器: 输入:由数据输入触发器给出时钟源,control期间给定控制端re。原理:自定义的元器件,对给定的CBA,元件工作时会由CBA-000-CBA循环计数,控制时钟频率从而达到计时效果。同时输出端与七段译码器相连,译码器输出连接到显像管可实现计时显示。显示由两部分组成:输入倒计时(5-0)和可输入次数倒计时(3-0)组成,后者的时钟源由前者输出转换给定。(时钟输入、控制端输入、2个循环逆序计数器、2个七段译码器7448和异或门、非门、或门组
3、成)计时器VHDL代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count is port( clr : in std_logic; -同步复位 re : -同步置数 clk : -时钟信号 A : B : C : -置数值 s2,s1,s0 : out std_logic);end count ;architecture rtl of count issignal temp: std_logic_vector(2 DOWNTO 0);begin s2 =temp(2); s
4、1 =temp(1); s0 =temp(0); co:process(clk,re,clr) begin if (clr = 1and re =0 )then temp =000; elsif re = and clr = then temp(2) =C; temp(1) =B; temp(0) =A; elsif(clkevent and clk=) then if temp= temp(2) temp(1) temp(0) else temp =temp-1; end if; end if; end process co;end rtl ;3 密码修改兼比较器:由控制端cpa和O2组成;
5、当cpa=1时有效,此时主控元件control控制O2信号为高电平1,开始修改密码;当cpa=0时,主控元件control控制O2信号为低电平0,锁存密码。主控部分电路:输入: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
6、,否为0),O2(密码修改锁存信号,修改为1,锁存为0),WA(警告信号,警告为1,否为0),CLOCK(锁死状态,锁死为1,未锁死为0),red(红灯),green(绿灯),Bell(警告响铃)功能:依照输入信号值对其他部分电路进行实时控制主控元件代码:entity control is port( t0,t1,s0,s1,inkey,cpa: keep,wa,clock,o1,sc ,re ,o2:out std_logic);end control;architecture rtl of control isstd_logic:= sc =temp; wa when t0= else ;
7、 clock when t1= re when inkey=else msc:process(s1,inkey) begin if inkey = temp elsif inkey = and s1= then end process msc; mkeep:process(s0,t0) if(s0= keep elsif t0 = end process mkeep; mo1:process(t0,t1,inkey) o1 elsif t0= and inkey= end process mo1; mo2:process(cpa,inkey) if cpa= and temp= o2 else
8、 end process mo2;end rtl;三.各部分选定方案及电路组成、相关器件说明 数据输入触发器是由数据输入端,1个74LS373芯片,八个异或门,一个与门和一个或门组成。 计时器是由时钟输入、控制端输入、2个循环逆序计数器、2个七段译码器74LS48芯片和异或门、非门、或门组成。密码修改兼比较器是由1个74LS373芯片,异或门,与门、非门和或门组成的逻辑电路系统。四设计结论根据基本的数字逻辑和设计原理能够设计出一定复杂度的电子密码锁。本次课题设计完成的是基于FPGA的密码锁设计,通过一个多星期的不断努力、克服各种困难,最终实现了任务目标。本次设计解决的主要问题是是利用HDL语言
9、完成基于FPGA的电子密码锁的编程问题。 设计是理论知识与实践的完美结合,对于现代大学生的实践能力是个很好的培养。 短短的一个星期的时间的设计虽然短暂,但是它给我的收获确实难忘,不仅仅在智能仪器方面有了很大的进步,而且在FPGA、max+plus II软件等方面也学到了不少在上课学不到的知识。这段时间我查阅到很多关于课程设计的书籍,对我帮助也很大。我觉得自己以前的盲目,现在明白了很多。也对我们专业动手实践的兴趣提高了很多。有了这些经历对于我日后工作一定会有很大帮助。相信这次设计中学到的种种东西一定会存在我的脑海里,令我终身受益。 在课程设计的过程中也可以看到我的不足,如原理知识掌握不实,曾经学
10、过的知识如今却不会应用,软件的应用也不熟练,希望日后提供给我们更多的锻炼机会来培养我们的实践能力。五设计心得与总结xxx:我们学习了数字电子电路和模拟电子电路,对电子技术有了一些初步了解,但那都是一些理论的东西。通过这次数字电子钟的课程设计,我们才把学到的东西与实践相结合。从中对我们学的知识有了更进一步的理解。在此次的密码锁的设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。虽然这次的设计并没能顺利完成,但在实验中不断探索检验,也让我从中受益,设计的过程中对电路中的每一个环节,电路中各个部分的功能
11、的实现和修改不断推进的同时也在离成功不断接近。各个芯片能够完成什么样的功能,使用芯片时应该注意那些要点。同一个电路可以用那些芯片实现,各个芯片实现同一个功能的区别。同时对普通计数器如何构成n进制计数器有了更深的了解和掌握,对自我的实际操作能力也有了很高的提升。同时,我进一步巩固了自己运用max+plus II的能力和技巧。这次使用max+plus II的过程中,从软件的安装到程序的设计、调试都是我自己独立完成,只是最后小组成员进行了一定的内部讨论。电子密码锁虽然简单,但是在线路的连接上还是让我感受到细心很重要。在调试环节,逻辑发生器和示波器等工具都充分发挥了其作用,帮助我进一步完善程序。此外,
12、这次的实验还让我感受到做事时耐心的重要作用。自己独立完成一项任务时可能会有各种各样的困难,不骄不躁,不气不馁,以平和的心态应对一切,这才是一个工科学生应该具备的心里素质。这次实验让我从中学到了很多东西,做事的方法。做事的心态。也让我体验到了自主完成一项从未体验过的事物的快感。yy:在这次实验中我认为学习不仅需要智力、能力,更需要求真务实的科学精神。max+plus II的安装、调试 、运行、仿真数据的输入等都会影响实验结果,造成实践与理论的脱节。 这就要在实验过程中,要实事求是如实地记录实验仿真的波形,同时 在产生问题时,我时刻提醒自己要耐心的积极思考、认真分析错误和产生误差的原因。实验中总是
13、出错误,每一次实验都是对自己耐心的一次考验,所以我们要更有恒心的去面对实验。电路总体上的思路是很好设计的,当下达任务的时候我们就大体上有了构架。总体系统分为主控和实现功能的三部分组成。但是涉及到细节的时候我们遇到很多小的困难。像编译软件安装、运行、调试。计时器的设计,仿真波形的建立。分工的时候我简单的按照开始的思路设计了一个计时器,但是开始的几次都是不能使用于电路。只能不断的修改,使其与总体的电路吻合。感觉设计的时候应该全面的考虑一下各部分的功能,给出各部分详细的介绍,电路构架,和输入输出的配置和功能。总之实验又让我们笼统的了解了逻辑电路的设计思路,虽然不是很仔细的学习,但大部分知识都了解了一
14、下。也锻炼了我们团队协作的能力。通过了这三周自己孜孜不倦的学习以及不断摸索,我学到了很多知识拓展了自己的视野,同时增强了自己的同手操作能了。能分析问题和解决问题的应用型技术人才,这为以后的工作做好了准备!zzz:细节决定成败:VHDL语言和之前惯用的C语言代码截然不同,它的工作方式也相当特异,因为一些“小”错误,总是连编译都很难通过;好的工具很重要:max+plus II在我的XP系统上工作不正常,移动已经连好线路的器件,线路会断开!因为排版的问题必须移动器件导致我重画了好几次。然而过后才知道在其他同学的电脑上可以自由移动器件,让我好无语;学会了使用简单的OCR软件和在线网站;劳心者治人,劳力
15、者治于人:在整个项目中我主要做一些简单工作,但是这次max+plus II画图还真是特别不顺利;写文档虽然也用了点心思但重要性远远比不上核心技术;总的来说,时间花了却没什么价值。下次有项目争取做脑力劳动。 六.参考文献 1 刘昌华,管庶安,数字逻辑原理与FPGA设计,北京航空航天大学出版社,2009 2 陈耀和. VHDL语言设计技术.北京电子工业出版社,2004. 3 冯涛,可编程逻辑器件开发技术MAX+PLUS2 入门与提高.北京:人民邮电出版社,2002.七.附录总体器件表及相关器件的功能表、管脚分布 锁存器74LS373 * 2 、七段译码器74LS48 * 2 、计数器 * 2 、若
16、干异或门、或门、与门、非门等;74LS373的真值表(功能表),表中: L低电平; H高电平; X不定态; Q0建立稳态前Q的电平; G输入端,与8031ALE连高电平:畅通无阻低电平:关门锁存。图中OE使能端,接地。 当G=“1”时,74LS373输出端1Q8Q与输入端1D8D相同; 当G为下降沿时,将输入数据锁存。EG功能直通Qi = Di1保持(Qi保持不变)X输出高阻74ls373引脚(管脚)排列图:74LS48管脚图:74LS48真值表:总体设计图 仿真结果1、按钮触发计时功能模拟说明:inkey为0时,使锁存功能暂停,则锁存器输出与输入相同,当inkey为1时,锁存当前密码按钮各值
17、,一旦密码按钮触动(值变化),触控信号为1(S0)。O1、keep来自主控元件控制信号,CA-CH时锁存器输出值,a-h为键入值。Clk为输入时钟,Tclk为向计时器的时钟传递。2、计时器功能模拟计时器工作及复位功能验证,将主控复位信号固定为1,使的输出至“000”时复位,实际工作时主控复位信号将由inkey决定,当键入密码时,发出复位信号至“101”(图中模拟用“010”代替),当输入被触发,时钟送至计时器,便开始倒计时。3、主控元件功能模拟计数器计时结束信号t1为真(1)时,clock为1,锁住电路;倒计时结束信号t0为真(1)时,输入控制信号O1为0(inkey输入无效);cpa为1时,且SC为真(1,锁开),修改密码信号O2为真。4、密码修改及锁存功能模拟sc为真(锁开),cpa输入1,修改信号O2为真。小组各成员所做工作说明电路系统的整体构思、主控电路和数据输入触发器的设计、仿真波形的建立和应用。计时器的设计、实验电路的汇总。电路图修改整理、倒计时器测试设计、整理部分文档。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1