




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广东海洋大学寸金学院(课程设计论文) 广东海洋大学寸金学院EDA技术(课程设计论文) 论文题目: 电子密码锁 系 别: 信息技术系 专 业: 电子信息工程 班 级: 2012级电子信息工程1班 姓 名: 彭岸辉 学 号: 2012103180118 指导老师: 黄小容 日 期: 2015年6月20日 广东海洋大学寸金学院教务处制摘 要设计一个电子密码锁,在锁开的状态下输入密码,设置的密码共4位,用数据开关K1K10分别代表数字1、2、9、0,输入的密码用数码管显示,最后输入的密码显示在最右边的数码管上,即每输入一位数,密码在数码管上的显示左移一位。可删除输入的数字,删除的是最后输入的数字,每删除一位,密码在数码管的显示右移一位,并在左边空出的位上补充“0”。用一位输出电平的状态代表锁的开闭状态。为保证密码锁主人能打开密码锁,设置一个万能密码,在主人忘记密码时使用。关键词: 数码管;万能密码AbstractDesign an electronic trick lock, the lock open state of input password, set the password, a total of four, with data switch K1 k10/19 dated respectively represent Numbers 1, 2,. , 9, 0, enter the password using digital tube display, and finally enter the password shown on the right side of the digital tube, namely each input digits, the password on the digital tube display the left one. Can erase the number of input, delete is the last input number, every delete a password in the digital tube display one moves to the right, and on the left vacant seat 0. With a representative of the state of the output level lock state of opening and closing. In order to ensure the combination lock host can open a combination lock, set a master password, used in master forgot password.Key words: digital tube; master password目 录1 引言11.1 VHDL简介11.2 Quartus II11.3 课程设计背景21.4 课程设计目的22 电子密码锁设计思想22.1 系统设计方案22.2 密码输入电路设计32.2.1密码锁输入电路各主要功能模块的设计32.3 密码锁控制电路设计32.3.1数字按键输入响应控制32.3.2功能按键输入响应控制43 系统仿真43.1 模块仿真44 结论55 心得体会6广东海洋大学寸金学院(课程设计论文) 第 20 页 共 15 页1 引言1.1 VHDL简介 VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。1.2 Quartus II Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。1.3 课程设计背景利用EDA技术和VHDL语言,设计了一种新型的电子密码锁。它体积小、功耗低、价格便宜、安全可靠,维护和升级十分方便,具有较好的应用前景。随着社会物质财富的日益增长,安全防盗已成为全社会问题。人们对锁的要求越来越高,既要安全可靠地防盗,又要使用方便。弹子锁由于结构上的局限已难以满足当前社会管理和防盗要求,特别是在人员经常变动的公共场所,如办公室、宾馆等地方。电子密码锁由于其自身的优势,越来越受到人们的青睐,但是目前使用的电子密码锁大部分是基于单片机用分离元件实现的,其成本较高且可靠性得不到保证。1.4 课程设计目的 掌握电子密码锁的设计原理,并能运用VHDL编程语言写出实验程序,进一步对所学的知识巩固应用;熟悉Quartus II软件的使用与运行环境;锻炼自己获取信息能力,能独立解决问题和思考。2 电子密码锁设计思想2.1 系统设计方案 作为通用电子密码锁,主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。作为电子密码锁的输入电路,可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。 根据以上选定的输入设备和显示器件,并考虑到实现各项数字密码锁功能的具体要求,整个电子密码锁系统的总体组成框图如图2.1所示。从图可以看出: -密码锁输入电路包括时序产生电路、键盘电路等几个小的功能电路。 -密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。-七段数码管显示电路将待显示数据的BCD码转换成数码器的七段显示驱动编码。2.2 密码输入电路设计 电子密码锁的键盘电路、按键数据缓存器,键盘电路利用实验箱的系统键盘,它省去了矩阵键盘的扫描、消抖的繁琐,使代码更具备简洁性。 2.2.1密码锁输入电路各主要功能模块的设计(1) 时序产生电路 本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲,它是系统内部所有时钟脉冲的源头,且其频率最高。 (2)按键存储电路 因为每次按键按下会产生新的按键数据,可能会覆盖前面的数据,所以需要一个按键存储电路,将每次按键按下产生的按键数据的结果记录下来。按键存储电路可以使用移位寄存器构成。2.3 密码锁控制电路设计密码锁的控制电路是整个电路的控制中心,主要完成对数字按键输入和功能按键输入的响应控制。2.3.1数字按键输入响应控制 (1) 如果按下数字键,第一个数字会从显示器的最右端开始显示,此后每新按一个数字时,显示器上的数字必须左移一格,以便将新的数字显示出来。 (2) 假如要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有输入的数字,再重新输入四位数。 (3) 由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超过四个时,电路不予理会,而且不再显示第四个以后的数字。2.3.2功能按键输入响应控制 清除键:清除所有的输入数字,即做归零动作。激活电锁键:按下此键时可将密码锁的门上锁。(上锁前必须预先设定一个四位的数字密码。) 解除电锁键:按下此键会检查输入的密码是否正确,若密码正确无误则开门。图2.7 电子密码锁的三种模式及关系 3 系统仿真3.1 模块仿真 在进行编程的过程中,对每一模块都要进行波形仿真。键盘模块、控制模块、动态显示模块的波形仿真图分别如图1、图2、图3所示。图1 编码器仿真波形图2 控制电路仿真波形图3 动态现实仿真波形4 结论 在图1中可知,输入“001”、“002”、“004”、“008”、“010”、“020”、“040”、“080”、“080”、“100”、“200”分别表示选择开关k1、k2、.k9、k10,输出数据1,2,39,0,从波形中我们可以看出这是符合。图2所示,输入密码“6520”后按Close,Lock=“1”表示关锁,再次输入“6520”按Check,密码锁打开Lock=“0”。图3中,C-display计数到“0”、“1”、“2”、“3”时,SELOUT分别为“1110”、“1101”、“1011”、“0111”,表示片选第0、1、2、3个数码显示管,符合设计要求。5 心得体会 通过两星期的紧张工作,最后完成了我的设计任务基于VHDL语言的智能密码锁设计。通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。希望学校以后多安排一些类似的实践环节,让同学们学以致用。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件(C语言)顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。谢 辞 经过近半个月的忙碌和学习,本次课程设计已经顺利完成。由于经验的匮乏,难免有许多考虑不周全的地方,如果没有黄老师的督促指导,以及同小组成员的支持,想要完成此次设计是难以想象的。 本文是在黄老师的悉心指导下完成的。承蒙黄老师的亲切关怀和精心指导,虽然有繁忙的工作,但仍抽出时间给予我学术上的指导和帮助,特别是给我提供了许多参考资料,使我从中受益非浅。黄老师对学生认真负责的态度、严谨的科学研究方法、敏锐的学术洞察力、勤勉的工作作风以及勇于创新、勇于开拓的精神是我永远学习的榜样。在此,谨向黄老师致以深深的敬意和由衷的感谢! 其次,还要感谢所有指导过,教育过我的老师们,正是你们不倦的教诲,使我打下了扎实的专业基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励,此次设计才会顺利完成。 最后,我仅用一句话来表达我无法言语的心情:感谢你们!参考文献l 张亦华,数字电路EDA入门:VHDL程序实例集,北京:北京邮电大学出版社,2003.032 潘松、王国栋,VHDL实用教程,成都:电子科技大学出版社,2005.103 刘钰、张有志,一种VHDL语言设计的数字密码锁,山东:信息技术与信息化出版社,2004.44 沈明山,EDA技术及可编程器件应用实训,北京:科学出版社,2008.55 万隆、巴奉丽,EDA技术及应用,北京:清华大学出版社,2011.10附 录密码锁输入电路的VHDL源程序:-KEYBOARD.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY KEYBOARD ISPORT (CLK_1K: IN STD_LOGIC ; -系统原始时钟脉冲(1 kHz) KEY_IN: IN STD_LOGIC_VECTOR (2 DOWNTO 0); -按键输入 CLK_SCAN: OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; - 仿真时用 DATA_N: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; -数字输出DATA_F: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; -功能输出 FLAG_N: OUT STD_LOGIC ; -数字输出标志 FLAG_F: OUT STD_LOGIC ; -功能输出标志 CLK_CTR: OUT STD_LOGIC; -控制电路工作时钟信号 CLK_DEBOUNCE: OUT STD_LOGIC -仿真时用 ); END ENTITY KEYBOARD ; ARCHITECTURE ART OF KEYBOARD IS COMPONENT DEBOUNCING ISPORT(D_IN: IN STD_LOGIC ; CLK: IN STD_LOGIC ; D_OUT: OUT STD_LOGIC ) ; END COMPONENT DEBOUNCING; SIGNAL CLK: STD_LOGIC ; -电路工作时钟脉冲 SIGNAL C_KEYBOARD: STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL C_DEBOUNCE: STD_LOGIC ; -时钟信号SIGNAL C: STD_LOGIC_VECTOR(2 DOWNTO 0) ; SIGNAL N , F: STD_LOGIC_VECTOR(3 DOWNTO 0) ; -数字、功能按键译码值的寄存器SIGNAL FN , FF: STD_LOGIC ; -数字、功能按键标志值数字、功能按键SIGNAL SEL: STD_LOGIC_VECTOR (3 DOWNTO 0) ; BEGIN- 内部连接DATA_N = N ; DATA_F = F ; FLAG_N = FN ; FLAG_F = FF ; CLK_CTR = CLK ; -扫描信号发生器 COUNTER : BLOCK ISSIGNAL Q: STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL SEL: STD_LOGIC_VECTOR (3 DOWNTO 0); -1110-1101-1011-0111 BEGINPROCESS (CLK_1K) IS BEGIN IF CLK_1KEVENT AND CLK_1K =1 THEN Q = Q+1; END IF; C_DEBOUNCE = Q(2) ; -时钟信号, 大约125 Hz C_KEYBOARD = Q(6 DOWNTO 5) ; -C_DEBOUNCE = Q(1) ; -仿真时用 -C_KEYBOARD = Q(5 DOWNTO 4) ; -仿真时用 CLK = Q(0) ; END PROCESS; CLK_DEBOUNCE=C_DEBOUNCE; SEL = 1110 WHEN C_KEYBOARD=0 ELSE1101 WHEN C_KEYBOARD=1 ELSE1011 WHEN C_KEYBOARD=2 ELSE0111 WHEN C_KEYBOARD=3 ELSE1111; CLK_SCAN KEY_IN(0) , D_OUT = C(0), CLK = C_DEBOUNCE); U2: DEBOUNCING PORT MAP (D_IN = KEY_IN(1) , D_OUT = C(1), CLK = C_DEBOUNCE); U3: DEBOUNCING PORT MAP (D_IN = KEY_IN(2) , D_OUT = C(2), CLK = C_DEBOUNCE ); END BLOCK DEBOUNCING ; KEY_DECODER : BLOCK SIGNAL Z : STD_LOGIC_VECTOR(4 DOWNTO 0) ; -按键位置BEGINPROCESS(CLK) BEGIN Z N N N N N N N N N N N F F F = 1000 ; END CASE ; END IF ; END PROCESS ; FN = NOT ( N(3) AND N(2) AND N(1) AND N(0) ) ; FF = F(2) OR F(0) ; END BLOCK KEY_DECODER ; END ARCHITECTURE ART;密码锁控制电路的VHDL源程序:-CTRL.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CTRL ISPORT (DATA_N: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_F: IN STD_LOGIC_VECTOR(3 DOWNTO 0); FLAG_N: IN STD_LOGIC; FLAG_F: IN STD_LOGIC; CLK: IN STD_LOGIC; ENLOCK: OUT STD_LOGIC; -1: LOCK, 0: UNLOCK DATA_BCD: OUT STD_LOGIC_VECTOR (15 DOWNTO 0); END ENTITY CTRL ; ARCHITECTURE ART OF CTRL IS SIGNAL ACC, REG: STD_LOGIC_VECTOR (15 DOWNTO 0); -ACC用于暂存键盘输入的信息,REG用于存储输入的密码 SIGNAL NC: STD_LOGIC_VECTOR (2 DOWNTO 0); SIGNAL RR2, CLR, BB, QA, QB: STD_LOGIC; SIGNAL R1, R0: STD_LOGIC; BEGIN -寄存器清零信号的产生进程PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1 THEN R1=R0; R0=FLAG_F; END IF; RR2=R1 AND NOT R0; CLR=RR2; END PROCESS; -按键输入数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出资入股美甲店合同范本
- 办公用品合同范本
- 债券非交易过户合同范本
- 公司住宿协议合同范本
- 兼劳动合同范本
- 2024年台州海泊荟供应链有限公司招聘笔试真题
- 制作安装门窗合同范本
- 中英文加工合同范本
- 企业果菜订购合同范例
- 人力劳务合作合同范本
- TCWAN 0112-2024 不锈钢复合钢板焊材匹配标准
- 新闻采访与写作-马工程-第二章
- 精密陶瓷劈刀项目规划方案
- 周志华-机器学习-Chap01绪论-课件
- 共享厨房项目计划书
- 中石油加油站管理标准规范管理部分
- 北京市海淀区2024年七年级下学期数学期中考试试卷(附答案)
- 高中雷雨完整省公开课金奖全国赛课一等奖微课获奖课件
- 药物超敏反应综合征并人类免疫缺陷病毒感染1例及文献复习
- GB/T 43635-2024法庭科学DNA实验室检验规范
- 《社区康复》课件-第五章 脊髓损伤患者的社区康复实践
评论
0/150
提交评论